Firewall под Юниксами - настройка и использование
Спецвыпуск Хакера, номер #005, стр. 005-088-4
block in log quick on ppp0 from any to 195.34.1.0/32
block in log quick on ppp0 from any to 195.34.1.255/32
Если после внесения изменений в файл правил IPFilter'a потребуется активировать новые правила, юзай следующую команду: ipf -Fa -f /etc/ipf.rules.
Для полного описания использования и возможностей IPFilter рекомендую тебе прочитать IPF-HowTo на http://www.obfuscation.org/ipf/
IPChains
Chain по-английски значит "цепочка". Этот firewall по умолчанию присутствует в Linux-системах с ядром 2.1.102+ и 2.2.*. Он пришел на смену ipfwadm, который сидит в Линуксах с ядрами серии 2.0.*. В свою очередь, ipfwadm являлся переписанной версией ipfw с FreeBSD.
Для работы IPChains в конфигурации ядра должны быть обязательно отмечены следующие опции:
Networking Options:
-Packet Socket
-Network firewalls
-IP: firewalling
Новые правила в ipchains добавляются из командной строки, но существует возможность сохранения внесенных правил в файл и затем их загрузки при необходимости. Это делается следующим образом:
# ipchains-save > /etc/ipchains.rules
Правила сохранены в файле etc/ipchains.rules. Для того чтобы загрузить их снова - например, после перезагрузки, набери:
# ipchains-restore < /etc/ipchains.rules
В IPChains есть три встроенные цепочки: input (входящие пакеты), ouput (исходящие пакеты) и forward. Я опишу основные опции, используемые для конфигурации ipchains:
-N создание новой цепочки
-X удаление пользовательской цепочки
-P изменение параметров встроенной цепочки
-L вывод списка всех используемых цепочек и правил
-F удаление правил из всех цепочек
-A добавление правила к цепочке
-D удаление заданного правила из цепочки или заданного номера правила
-R замена заданного номера правила в цепочке
-I вставить новое правило в определенную позицию цепочки
-p протокол может быть задан как словом, так и по номеру
-s исходящие адрес пакета и порт
-d адресат пакета и порт
-icmp-type типа ICMP пакета может быть задан как словом, так и номером
-i сетевой интерфейс
-j действие фильтра (ACCEPT, DENY, REDIRECT (порт), MASQ)
-l запись пакета в лог
-y TCP пакеты с флагом SYN
-v вывод детальной информации
Фильтровка по IP-адресам, портам и протоколам
Для фильтровки по адресам используются флаги: -s (исходящие адрес/порты) и -d (адресованные адрес/порты). Чтобы задать любой возможный IP-адрес, используется маска 0/0. Например, запретим все подключения на порт 514 (syslog) по протоколу udp (для задания любого протокола используется слово all):
# ipchains -A input -j DENY -p udp -s 0/0 -d 0/0 514
Или, например, разрешим использование только WWW сервиса из нашей локальной сети:
# ipchains -A output -j DENY -p tcp -s 192.168.0.0/24 -d 0/0 ! www
Фильтровка по интерфейсам
Предположим, что наша машина имеет два сетевых интерфейса: eth0 и eth1. Один смотрит в сторону локальной сети, а другой - в сторону Интернета. Нам требуется запретить ICMP пакеты типа 8, идущие с интерфейса eth1: