Пакеты iptablesмогут быть загружены с домашней страницы проекта Netfilter. Кроме того, для работы iptables соответствующим образом должно быть сконфигурировано ядро вашей Linux-системы. Настройка ядра будет обсуждаться ниже.
Для обеспечения базовых возможностей iptables, с помощью утилиты make configили ей подобных ( make menuconfigили make xconfigприм. перев.), в ядро должны быть включены следующие опции:
CONFIG_PACKET – Эта опция необходима для приложений, работающих непосредственно с сетевыми устройствами, например: tcpdump или snort.
ПРИМЕЧАНИЕ:Строго говоря, опция CONFIG_PACKET не требуетсядля работы iptables, но, поскольку она используется довольно часто, я включил ее в список. Если вам эта опция не нужна, то можете ее не включать.
CONFIG_NETFILTER – Эта опция необходима, если вы собираетесь использовать компьютер в качестве сетевого экрана (firewall) или шлюза (gateway) в Интернет. Другими словами, вам она определенно понадобится, иначе зачем тогда читать это руководство!
И конечно нужно добавить драйверы для ваших устройств, т.е. для карты Ethernet, PPP и SLIP . Эти опции необходимы для обеспечения базовых возможностей iptables, для получения дополнительных возможностей придется включить в ядро некоторые дополнительные опции. Ниже приводится список опций для ядра 2.4.9 и их краткое описание:
CONFIG_IP_NF_CONNTRACK – Трассировка соединений. Трассировка соединений, среди всего прочего, используется при трансляции сетевых адресов и маскарадинге ( NAT и Masquerading ). Если вы собираетесь строить сетевой экран (firewall) для локальной сети, то вам определенно потребуется эта опция. К примеру, этот модуль необходим для работы rc.firewall.txt .
CONFIG_IP_NF_FTP – Трассировка FTP соединений. Обмен по FTP идет слишком интенсивно, чтобы использовать обычные методы трассировки. Если не добавить этот модуль, то вы столкнетесь с трудностями при передаче протокола FTP через сетевой экран (firewall).
CONFIG_IP_NF_IPTABLES – Эта опция необходима для выполнения операций фильтрации, преобразования сетевых адресов (NAT) и маскарадинга (masquerading). Без нее вы вообще ничего не сможете делать с iptables.
CONFIG_IP_NF_MATCH_LIMIT – Этот модуль необязателен, однако он используется в примерах rc.firewall.txt . Он предоставляет возможность ограничения количества проверок для некоторого правила. Например, -m limit –limit 3/minuteуказывает, что заданное правило может пропустить не более 3-х пакетов в минуту. Таким образом, данный модуль может использоваться для защиты от нападений типа «Отказ в обслуживании».
CONFIG_IP_NF_MATCH_MAC – Этот модуль позволит строить правила, основанные на MAC –адресации. Как известно, каждая сетевая карта имеет свой собственный уникальный Ethernet-адрес, таким образом, существует возможность блокировать пакеты, поступающие с определенных MAC –адресов (т.е. с определенных сетевых карт). Следует, однако, отметить что данный модуль не используется в rc.firewall.txt или где либо еще в данном руководстве.
CONFIG_IP_NF_MATCH_MARK – Функция маркировки пакетов MARK. Например, при использовании функции MARKмы получаем возможность пометить требуемые пакеты, а затем, в других таблицах, в зависимости от значения метки, принимать решение о маршрутизации помеченного пакета. Более подробное описание функции MARKприводится ниже в данном документе.
CONFIG_IP_NF_MATCH_MULTIPORT – Этот модуль позволит строить правила с проверкой на принадлежность пакета к диапазону номеров портов источника/приемника.
CONFIG_IP_NF_MATCH_TOS – Этот модуль позволит строить правила, отталкиваясь от состояния поля TOS в пакете. Поле TOS устанавливается для Type Of Service. Так же становится возможным устанавливать и сбрасывать биты этого поля в собственных правилах в таблице mangle или командами ip/tc.
CONFIG_IP_NF_MATCH_TCPMSS – Эта опция добавляет возможность проверки поля MSS в TCP –пакетах.
CONFIG_IP_NF_MATCH_STATE – Это одно из самых серьезных усовершенствований по сравнению с ipchains. Этот модуль предоставляет возможность управления TCP пакетами, основываясь на их состоянии (state). К примеру, допустим, что мы имеем установленное TCP соединение, с траффиком в оба конца, тогда пакет полученный по такому соединению будет считаться ESTABLISHED(установленное соединение – прим. ред). Эта возможность широко используется в примере rc.firewall.txt .
CONFIG_IP_NF_MATCH_UNCLEAN – Этот модуль реализует возможность дополнительной проверки IP , TCP , UDP и ICMP пакетов на предмет наличия в них несоответствий, «странностей», ошибок. Установив его мы, к примеру, получим возможность «отсекать» подобного рода пакеты. Однако хочется отметить, что данный модуль пока находится на экспериментальной стадии и не во всех случаях будет работать одинаково, поэтому никогда нельзя будет быть уверенным, что мы не «сбросили» вполне правильные пакеты.
Читать дальше