Совет
Опции, включающие поддержку ipchains
и ipfwadm
, являются взаимоисключающими и не совместимы с опциями IP Tables Supportи Connection Tracking. Поэтому нельзя одновременно включать опции, предназначенные для работы с iptables
и более старыми инструментами подобного назначения. Однако вы можете скомпилировать все необходимые средства как модули и загружать тот или иной модуль по мере необходимости. Такая конфигурация оправдана в том случае, если вы применяете один из старых инструментов, но планируете переходить на использование iptables
. Во многих дистрибутивных пакетах ядро скомпилировано подобным образом по умолчанию.
Если вы скомпилировали некоторые средства ядра в виде модулей, вам необходимо организовать загрузку этих модулей. Обычно загрузку модулей предусматривают в сценарии запуска брандмауэра. Например, если средства поддержки работы iptables
находятся в модуле ip_tables
, в сценарии запуска должна присутствовать команда insmod ip_tables
. Чтобы найти другие модули, предназначенные для загрузки, надо просмотреть каталог /lib/modules/ версия /net/ipv4/netfilter
. Включив требуемые средства в состав ядра, вы избавитесь от необходимости загружать модули, но при этом увеличатся размеры ядра.
Проверка текущей конфигурации iptables
Перед тем как приступать к решению каких-либо задач, предполагающих использование iptables
, необходимо проверить текущую конфигурацию. В составе некоторых дистрибутивных пакетов поставляются инструменты для создания брандмауэров, и не исключено, что к данному моменту они уже были запущены. Чтобы проверить конфигурацию системы, надо указать при вызове iptables
опцию -L
. Добавив опцию -t имя-таблицы
, вы сможете получить информацию о состоянии конкретной таблицы. (Чаще всего проверяется состояние таблицы filter
, но вы можете также указать при вызове iptables
таблицу nat
или mangle
.) При запуске с использованием опции -L
программа iptables
выведет данные, подобные приведенным ниже.
# iptables -L -t filter
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Данные, отображаемые при вызове этой программы, указывают на то, что в стандартной таблице filter
правила отсутствуют. Если правила, определяющие действия брандмауэра, уже заданы, вам необходимо выяснить, какой сценарий создает их, и запретить его выполнение. (Часто для установки правил используется сценарий содержащийся в файле firewall
, или сценарий с другим подобным именем.) Для того чтобы исключить правила из цепочки, надо использовать опцию -F
.
# iptables -F INPUT -t filter
Подобные команды для цепочек, содержащихся в таблице filter
и в других таблицах, часто включают в начало сценария брандмауэра. Это гарантирует, что вновь определяемые правила не будут конфликтовать с правилами, созданными ранее.
Создание брандмауэра средствами iptables
Утилита iptables
может решать различные задачи. Одной из таких задач является создание брандмауэров. Брандмауэр можно реализовать как на компьютере, выполняющем функции маршрутизатора, так и на рабочих станциях или серверах. При настройке брандмауэра, осуществляющего фильтрацию пакетов, сначала задается политика по умолчанию, а затем определяются исключения. В процессе работы брандмауэр анализирует IP-адреса, номера портов и другие характеристики пакетов.
Обычно, когда говорят о брандмауэре, имеют в виду компьютер, расположенный между двумя сетями и управляющий доступом из одной сети в другую. Несмотря на то что маршрутизатор также управляет обменом пакетами между различными сетями, эти инструменты существенно отличаются друг от друга. Брандмауэр может блокировать доступ компьютеров одной сети к некоторым службам другой сети. Например, брандмауэр может запретить обращения по протоколу Telnet из Internet к компьютерам локальной сети. Маршрутизатор не выполняет подобных действий. Брандмауэр, в свою очередь, также осуществляет не все операции, выполняемые маршрутизатором. Так, например, брандмауэры, выступающие в роли proxy-серверов, частично обрабатывают запросы, направленные другим системам, преобразуют их так, что они выглядят как сформированные самим брандмауэром, и перенаправляют ответы системам, от которых были получены запросы. Брандмауэры, выполняющие функции proxy-серверов, представляют собой мощные средства защиты. Они позволяют даже защитить компьютеры от вирусов, встроенных в программы Java и JavaScript.
Читать дальше