Страница 1 из 1
IPFW add table FILE
Добавлено: 2011-06-10 12:11:45
Virtus
Привет.
Перепробовал кучу конструкций - уже руки опускаются (
Хочу по крону импортировать файл 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
В чем может быть причина? Куда копать? Спасибо
p.s. freebsd 8.1
Re: IPFW add table FILE
Добавлено: 2011-06-10 12:17:06
rmn
Код: Выделить всё
cat /usr/local/www/ip.txt |
(
while read ip
do
/sbin/ipfw ipfw table 1 add $ip
done
)
Re: IPFW add table FILE
Добавлено: 2011-06-10 12:47:11
Virtus
rmn писал(а):Код: Выделить всё
cat /usr/local/www/ip.txt |
(
while read ip
do
/sbin/ipfw table 1 add $ip
done
)
вообще не работает (
Re: IPFW add table FILE
Добавлено: 2011-06-10 16:19:11
rmn
Код: Выделить всё
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#
Re: IPFW add table FILE
Добавлено: 2011-06-10 18:24:11
FreeBSP
я бы написал похоже
Код: Выделить всё
#!/bin/sh
cat ip.txt | { while read ip;
do
/sbin/ipfw table 1 add $ip;
done;
}
Re: IPFW add table FILE
Добавлено: 2011-06-14 9:30:26
virtus
Спасибо!
Re: IPFW add table FILE
Добавлено: 2011-06-22 9:32:56
slb51
Могу предложить такой вариант:
Создаём текстовый файл для 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 надо перезапускать:
И так каждый раз после внесения изменений в текстовые файлы либо в сам скрипт.
Re: IPFW add table FILE
Добавлено: 2011-06-22 11:03:44
hizel
Re: IPFW add table FILE
Добавлено: 2011-06-22 11:47:57
slb51
Можно по-всякому. Вариантов масса.