Firewall под Юниксами - настройка и использование

Спецвыпуск Хакера, номер #005, стр. 005-088-1

MegaBoklan <mb@policeoffice.com>

В этой статье мы поговорим о двух Firewall'aх, которые присутствуют в большинстве современных некоммерческих ЮНИКС-систем. А именно: о прогах IPFilter и IPChains. Вот расшифровка некоторых терминов, которые мы будем юзать в этой статье или которые просто тебе понадобятся, если ты хочешь работать с firewall'ами.

Firewall - программа, выполняющая фильтрацию сетевого трафика по заданным правилам.

IP - Internet Protocol.

ICMP - Internet Control Message Protocol.

UDP - User Datagram Protocol.

TCP - Transmission Control Protocol.

IGMP - Internet Group Management Protocol.

broadcast - адреса для широковещательных запросов x.x.x.0 и x.x.x.255

Сетевой интерфейс - физическое устройство (сетевая карта) или псевдоустройства, PPP интерфейс.

IPFilter

Данный Firewall по умолчанию присутствует в системах OpenBSD, FreeBSD и NetBSD, он также доступен для систем Linux, Solaris и IRIX. Он представляет собой фильтр пакетов семейства TCP/IP. IPFilter может быть установлен как в виде отдельного модуля ядра, загружаемого при необходимости, так и в виде компонента, встроенного в само ядро. В пакет IPFilter входят следующие программы:

ipf - выполняет чтение правил из файла или из командной строки и добавляет их в ядро.

ipfstat - выполняет вывод детальной статистики фильтра пакетов.

ipftest - читает правила из файла и затем для каждого создает примерный пакет для тестирования.

ipmon - выполняет чтение логов ipf.

ipsend - создает пакеты с заданными параметрами и выполняет их отсылку.

ipresend - выполняет чтение сохраненных пакетов из файла (snoop, tcpdump, etherfind) и посылает их снова.

iptest - программа для тестирования надежности TCP/IP стека.

Домашняя страница IPFilter находится по адресу: http://coombs.anu.edu.au/~avalon/.

Если ты работаешь на OpenBSD, FreeBSD или NetBSD, то для того чтобы включить IPFilter, тебе потребуется внести изменения в файл конфигурации /etc/rc.conf. Открой его твоим любимым текстовым редактором и найди следующую строчку:

ipfilter=NO

и вместо NO напиши YES :). Для того чтобы активировать ipf без перезагрузки, набери:

# ipf -Fa -f /etc/ipf.rules -E

По умолчанию файл, содержащий список правил для IPFilter'a, находится по адресу /etc/ipf.rules. По желанию это можно изменить путем модифицирования файла /etc/rc.conf. Просто пропиши новый адрес в этой строке:

ipfilter_rules=/etc/ipf.rules # Rules for IP packet filtering

Впервые открыв файл с правилами, ты найдешь в нем нечто подобное:

pass in from any to any

pass out from any to any

Эти две строчки разрешают все входящие и все исходящие соединения. Каждое правило должно начинаться с ключевого слова 'pass' - пропустить, или 'block' - блокировать. Ключевое слово 'in' означает входящие пакеты, а 'out', соответственно, исходящие. Далее следуют условия для этого правила. Во время работы IPFilter начинает чтение правил для поступившего пакета сверху вниз. Например:

block in all

pass in all

Первое правило говорит, что следует блокировать все пакеты, однако IPFilter продолжает чтение правил дальше и в данном случае пропустит пакет, потому что последнее правило это позволяет.

Содержание  Вперед на стр. 005-088-2

ttfb: 3.8797855377197 ms