IPFW add table FILE

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Virtus
проходил мимо

IPFW add table FILE

Непрочитанное сообщение Virtus » 2011-06-10 12:11:45

Привет.
Перепробовал кучу конструкций - уже руки опускаются (
Хочу по крону импортировать файл IP в таблицу, но из всего файла импортируется только первая строка и все (

Код: Выделить всё

файл ip.txt:
192.168.0.1
192.168.0.2
192.168.0.4
192.168.0.5
Пробовал

Код: Выделить всё

for i in `cat /usr/local/www/ip.txt`
do
/sbin/ipfw table 1 add $i
done
и

Код: Выделить всё

cat /usr/local/www/ip.txt | while read ip;
 do
/sbin/ipfw ipfw table 1 add $ip
done
АНАЛОГИЧНО и

Код: Выделить всё

 cat /usr/local/www/ip.txt | xargs ipfw table 1 add

Код: Выделить всё

ipfw table 1 list:
192.168.0.1/32 0
В чем может быть причина? Куда копать? Спасибо

p.s. freebsd 8.1
Последний раз редактировалось f_andrey 2011-06-10 18:29:00, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: IPFW add table FILE

Непрочитанное сообщение rmn » 2011-06-10 12:17:06

Код: Выделить всё

cat /usr/local/www/ip.txt | 
(
    while read ip
    do
        /sbin/ipfw ipfw table 1 add $ip
    done
)

Virtus
проходил мимо

Re: IPFW add table FILE

Непрочитанное сообщение Virtus » 2011-06-10 12:47:11

rmn писал(а):

Код: Выделить всё

cat /usr/local/www/ip.txt | 
(
    while read ip
    do
        /sbin/ipfw table 1 add $ip
    done
)
вообще не работает (

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: IPFW add table FILE

Непрочитанное сообщение rmn » 2011-06-10 16:19:11

Код: Выделить всё

remcomp# ipfw table 1 flush
remcomp# ipfw table 1 list
remcomp# cat ip.txt 
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
remcomp# cat script.sh 
#!/bin/sh

cat ip.txt |
(
        while read ip
        do
                /sbin/ipfw table 1 add $ip
        done
)

remcomp# ./script.sh 
remcomp# ipfw table 1 list
192.168.0.1/32 0
192.168.0.2/32 0
192.168.0.3/32 0
192.168.0.4/32 0
remcomp#

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: IPFW add table FILE

Непрочитанное сообщение FreeBSP » 2011-06-10 18:24:11

я бы написал похоже

Код: Выделить всё

#!/bin/sh

cat ip.txt | { while read ip; 
do 
/sbin/ipfw table 1 add $ip; 
done;
 }
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!


Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: IPFW add table FILE

Непрочитанное сообщение slb51 » 2011-06-22 9:32:56

Могу предложить такой вариант:
Создаём текстовый файл для table 1 (допустим, это группа компьютеров с неограниченным доступом в инет, назовём его full_allow):

Код: Выделить всё

#ee /usr/tables/full_allow	
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5
192.168.0.6
В скрипте (допустим, это файл /usr/local/etc/ipfw.rules) допишем:

Код: Выделить всё

#ee /usr/local/etc/ipfw.rules:
# Переменные
fwcmd='/sbin/ipfw'
if_out='bge0' # Внешний интерфейс
ip_out='215.87.24.33' # IP внешнего интерфейса
if_in='bge1' # Внутренний интерфейс
ip_in='192.168.0.254'  # IP внутреннего интерфейса
MyLan='192.168.0.0/24' # Локальная сеть
dns='213.177.98.1,213.177.97.1'  # DNS-серверы
${fwcmd} -f -q flush # Сброс всех правил
${fwcmd} add check-state # Контроль соответствия пакетов динамическим правилам
# Заполнение таблиц
${fwcmd} table 1 flush
   cat /usr/tables/full_allow | while read ip; do
      # echo ${fwcmd} table 1 add $ip 1
      ${fwcmd} table 1 add $ip 1
   done
# Неограниченный доступ
${fwcmd} add allow ip from table\(1\) to any in via ${if_in}
${fwcmd} add allow ip from any to table\(1\) out via ${if_in}
Ясное дело, это не весь скрипт, а только фрагмент, относящийся к использованию текстового файла для заполнения таблиц.
После этого Firewall надо перезапускать:

Код: Выделить всё

/etc/rc.d/ipfw restart
И так каждый раз после внесения изменений в текстовые файлы либо в сам скрипт.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: IPFW add table FILE

Непрочитанное сообщение hizel » 2011-06-22 11:03:44

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
slb51
мл. сержант
Сообщения: 126
Зарегистрирован: 2009-10-27 12:04:47
Откуда: Нижний Новгород

Re: IPFW add table FILE

Непрочитанное сообщение slb51 » 2011-06-22 11:47:57

Можно по-всякому. Вариантов масса.