Черно-белые списки в IPFW

Листинг файла /etc/rc.conf

firewall_enable=»YES»
firewall_script=»/etc/rc.firewall»

Для начала создадим 2 обычных текстовых файла, содержащих списки «хороших» и «плохих» ip-адресов и сетей. Назовем их badip.cfg и goodip.cfg:

# cd /etc
# touch badip.cfg
# touch goodip.cfg

Заполняем файлы ip-адресами и сетями в формате CIDR, например:

# echo "10.10.10.10/24" > badip.cfg

Затем напишем небольшой скрипт addip.sh, который будет загружать ip-адреса из файлов в таблицы ipfw:

#!/bin/sh
##################
fwcmd="/sbin/ipfw"
goodip="/usr/local/etc/webmin/ipfw/allow"
badip="/usr/local/etc/webmin/ipfw/deny"
##################
$fwcmd -f table all flush # очищаем все таблицы
##################
cat $goodip |while read line; do
$fwcmd table 1 add $line
done
##################
cat $badip |while read line; do
$fwcmd table 2 add $line
done
##################

Редактируем скрипт ipfw, добавляя в него следующие строки:

cmd="/sbin/ipfw -q add"
ipfw -f table all flush
/usr/local/etc/webmin/ipfw/addip.sh
...
$cmd 0100 allow ip from "table(1)" to me # разрешаем доступ от "хороших" хостов и сетей
$cmd 0200 deny ip from "table(2)" to me  # баним всех "плохишей"

В дальнейшем, мы можем вносить изменения в файлы и, выполняя скрипт addip.sh, динамически менять содержимое таблиц ipfw, подгружая в них новую информацию.

Содержимое таблиц можно посмотреть командой:

# ipfw table 1 list

Полностью очистить таблицу можно так:

# ipfw table 1 flush



Полезный совет:
Во FreeBSD есть хорошая утилита at, которая позволяет однократно выполнить ту или иную команду в заданное время. Таким образом, настраивая фаервол удаленно, Вы можете подстраховать себя, введя отключение фаервола через указанное время. Например, вы настроили все правила и думаете — Сейчас я включу все, а вдруг потеряю доступ? Ответ — Легко может такое произойти. Но, используя утилиту at, мы себя подстрахуем:
Синстаксис у нее простой:
# at time
Используем его, введем:
at 23:55
ipfw -q -f flush
Что бы выйти из режима, нажмите CTRL+D
Job 10 will be executed using /bin/sh
Все. Можно включать наш фаервол, через 1 минуту он будет отключен автоматически и в случае чего Вы вернете себе доступ


Источник: http://www.dwolfix.ru/tablitsy-fayervola-ipfw.html

Примеры использования таблиц файрвола IPFW.

Очень удобно, если нужно заблокировать много ip адресов.

ipfw table 10 add 192.168.1.5		#добавление в таблицу
ipfw table 10 add 192.168.1.0/24	#добавление в таблицу подсеть
ipfw table 10 list			#посмотреть что в таблице
ipfw add deny ip from table(10) to me # Все с таблицы 50 ко мне
ipfw table 10 delete 192.168.1.5	#удаляем из таблицы
ipfw table 10 flush			#чистим всю таблицу
Довольны?
[Оценок: 0 средняя: 0]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *