7.2. Использование IPTables

Первым этапом в использовании IPTables является запуск службы IPTables. Это можно сделать с помощью команды:

service iptables start

ПредупреждениеПредупреждение
 

Чтобы служба IPTables смогла работать, следует выключить IP6Tables, выполнив следующие команды:

service ip6tables stop
chkconfig ip6tables off

Чтобы IPTables по умолчанию запускалась при загрузке системы, вы должны изменить уровень выполнения этой службы с помощью chkconfig.

chkconfig --level 345 iptables on

Синтаксис IPTables поделён на ярусы. Основной ярус — это цепочка (chain). Параметр chain определяет состояние, в котором будет обрабатываться пакет. Используется это так:

iptables -A chain -j target

Параметр -A добавляет правило в конец существующего набора правил. В параметре chain задаётся имя цепочки правил. В IPTables встроены три цепочки (или состояния, которые проходят пакеты, пересылаемые по сети): INPUT, OUTPUT и FORWARD. Эти цепочки фиксированы и удалить их нельзя.

ВажноВажно
 

При добавлении правил IPTables важно помнить о том, что их порядок имеет значение. Например, если правило отбрасывает все пакеты из локальной подсети 192.168.100.0/24, и добавляется (-A) ещё одно правило, пропускающее пакеты от узла 192.168.100.13 (расположенного в запрещённой локальной подсети), добавленное правило не будет работать. Сначала вы должны добавить правило, пропускающее 192.168.100.13, а затем правило, блокирующее подсеть.

Чтобы вставить правило в произвольное место существующей цепочки, укажите -I, затем название этой цепочки и позицию (1,2,3,...,n), в которой правило должно располагаться. Например:

iptables -I INPUT 1 -i lo -p all -j ACCEPT

Это правило, пропускающее трафик устройства замыкания на себя, оказывается в цепочке INPUT первым правилом.

7.2.1. Основные политики брандмауэра

Несколько основных политик, заданных с самого начала, могут стать фундаментом для построения более точных правил, определяемых пользователем правил. Для создания правил по умолчанию в IPTables используются политики (-P). Думающие о безопасности администраторы обычно применяют политику отбрасывания всех пакетов и задают разрешающие правила только для каждого конкретного случая. Следующие правила блокируют все входящие и исходящие пакеты:

iptables -P INPUT DROP
iptables -P OUTPUT DROP

Кроме этого рекомендуется, чтобы все пересылаемые пакеты (пакеты, маршрутизируемые брандмауэром к точке назначения) также были запрещены — это защитит внутренних клиентов от нежелательного влияния Интернета. Для этого добавьте следующее правило:

iptables -P FORWARD DROP 

ЗамечаниеЗамечание
 

Назначения REJECT и DROP, указанные в добавленных правилах, действуют по разному. REJECT запрещает доступ и возвращает пользователям, пытающимся обратиться к службе, ошибку connection refused (в соединении отказано). DROP отбрасывает пакет, никак не сообщая пользователям telnet об этом. Администраторы могут использовать эти назначения по-своему; однако, чтобы не смущать пользователей и предотвратить повторные попытки соединения рекомендуется применять REJECT.

Определив цепочки политики, создавайте новые правила для конкретной сети и требований безопасности. В следующих разделах рассматриваются некоторые правила, которые вы можете внедрить, настраивая брандмауэр IPTables .

7.2.2. Сохранение и восстановление правил IPTables

Правила брандмауэра существуют только при включённом компьютере. Если компьютер перезагружается, правила автоматически сбрасываются. Чтобы сохранить правила для последующей загрузки, выполните команду:

/sbin/service iptables save

Правила сохранятся в файле /etc/sysconfig/iptables и будут применяться при запуске, перезапуске службы или при перезагрузке компьютера.