Библиотека сайта rus-linux.net
Установка Firewall в Linux
Чтобы запустить Linux IP firewall, нужно построить ядро с поддержкой IP firewall и соответствующие конфигурационные утилиты. В ядрах до серии 2.2, нужно использовать утилиту ipfwadm. Ядра 2.2.x имеют третье поколение IP firewall для Linux, называемое IP Chains. IP chains использует программу ipchains. Ядра Linux 2.3.15 и старше поддерживают четвертое поколение Linux IP firewall: netfilter. Код пакета netfilter результат больших изменений потока обработки пакетов в Linux. netfilter обеспечивает обратную совместимость с ipfwadm и ipchains. Настраивается эта версия командой iptables. В следующих разделах я подробно рассмотрю отличия этих трех реализаций.
Настройка ядра для IP Firewall
make menuconfig
. Подробно настройка ядра описана в
главе 3. В ядрах 2.2 надо выбрать следующие опции:
Networking options ---> [*] Network firewalls [*] TCP/IP networking [*] IP: firewalling [*] IP: firewall packet logging |
Networking options ---> [*] Network packet filtering (replaces ipchains) IP: Netfilter Configuration ---> . <M> Userspace queueing via NETLINK (EXPERIMENTAL) <M> IP tables support (required for filtering/masq/NAT) <M> limit match support <M> MAC address match support <M> netfilter MARK match support <M> Multiple port match support <M> TOS match support <M> Connection state match support <M> Unclean match support (EXPERIMENTAL) <M> Owner match support (EXPERIMENTAL) <M> Packet filtering <M> REJECT target support <M> MIRROR target support (EXPERIMENTAL) <M> Packet mangling <M> TOS target support <M> MARK target support <M> LOG target support <M> ipchains (2.2-style) support <M> ipfwadm (2.0-style) support |
Утилита ipfwadm
Утилита ipfwadm (IP Firewall Administration) нужна для управления правилами в ядрах до версии 2.2.0. Ее синтаксис очень сложен, но я приведу несколько наиболее простых примеров.
Утилита ipfwadm есть во всех современных
дистрибутивах Linux, но, возможно, не ставится по умолчанию. Может иметься
специальный сетевой пакет, который надо поставить отдельно. Найти исходный
код можно на ftp.xos.nl в каталоге
/pub/linux/ipfwadm
.
Утилита ipchains
Аналогично ipfwadm, утилита ipchains может несколько сбивать с толку, пока к ней не привыкнешь. Она обеспечивает всю гибкость ipfwadm с упрощенным синтаксисом и дополнительно обеспечивает механизм наборов или цепочек (“chaining”), который позволяет Вам управлять множеством правил и связывать их друг с другом. Я рассмотрю формирование цепочки правил в отдельном разделе чуть позже.
Команда ipchains появилась в дистрибутивах Linux на ядрах серии 2.2. Исходники можно взять на http://www.rustcorp.com/linux/ipchains. В этот пакет исходников входит скрипт ipfwadm-wrapper, который имитирует работу ipfwadm, используя возможности ipchains. Это существенно упрощает к новой версии firewall.
Утилита iptables
Синтаксис iptables очень похож на синтаксис ipchains. Разница в поддержке модулей расширения и ряде новшеств в фильтрации пакетов. Разумеется, я приведу пример и для iptables, так что Вы сможете сравнить эти две утилиты.
Утилита iptables входит в пакет netfilter, исходники которого можно скачать с http://www.samba.org/netfilter. Она также входит в дистрибутивы Linux на ядре 2.4. Правда, поскольку это ядро еще находится на стадии тестирования, я пока не встречал дистрибутивов на нем.
Мы будем говорить относительно огромного шага вперед, сделанного netfilter, в соответствующем разделе этой главы чуть позже.
Назад | Глобальное оглавление | Вперед |
Что такое IP Filtering? | Локальное оглавление | Три способа фильтрации |