Первым этапом в использовании IPTables является запуск службы IPTables. Это можно сделать с помощью команды:
service iptables start |
Предупреждение | ||
---|---|---|
Чтобы служба IPTables смогла работать, следует выключить IP6Tables, выполнив следующие команды:
|
Чтобы 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), в которой правило должно располагаться. Например:
Это правило, пропускающее трафик устройства замыкания на себя, оказывается в цепочке INPUT первым правилом. |
Несколько основных политик, заданных с самого начала, могут стать фундаментом для построения более точных правил, определяемых пользователем правил. Для создания правил по умолчанию в IPTables используются политики (-P). Думающие о безопасности администраторы обычно применяют политику отбрасывания всех пакетов и задают разрешающие правила только для каждого конкретного случая. Следующие правила блокируют все входящие и исходящие пакеты:
iptables -P INPUT DROP iptables -P OUTPUT DROP |
Кроме этого рекомендуется, чтобы все пересылаемые пакеты (пакеты, маршрутизируемые брандмауэром к точке назначения) также были запрещены — это защитит внутренних клиентов от нежелательного влияния Интернета. Для этого добавьте следующее правило:
iptables -P FORWARD DROP |
Замечание | |
---|---|
Назначения REJECT и DROP, указанные в добавленных правилах, действуют по разному. REJECT запрещает доступ и возвращает пользователям, пытающимся обратиться к службе, ошибку connection refused (в соединении отказано). DROP отбрасывает пакет, никак не сообщая пользователям telnet об этом. Администраторы могут использовать эти назначения по-своему; однако, чтобы не смущать пользователей и предотвратить повторные попытки соединения рекомендуется применять REJECT. |
Определив цепочки политики, создавайте новые правила для конкретной сети и требований безопасности. В следующих разделах рассматриваются некоторые правила, которые вы можете внедрить, настраивая брандмауэр IPTables .
Правила брандмауэра существуют только при включённом компьютере. Если компьютер перезагружается, правила автоматически сбрасываются. Чтобы сохранить правила для последующей загрузки, выполните команду:
/sbin/service iptables save |
Правила сохранятся в файле /etc/sysconfig/iptables и будут применяться при запуске, перезапуске службы или при перезагрузке компьютера.