Введение
Iptables — это мощная утилита Linux, которая позволяет системным администраторам настраивать встроенный в ядро брандмауэр. Iptables использует набор правил для определения того, как фильтровать сетевой трафик. Каждое правило определяет, какой тип трафика фильтровать и какие действия предпринимать в отношении соответствующего трафика.
В этом руководстве мы рассмотрим некоторые основные правила и команды iptables, которые помогут защитить ваш сервер. По умолчанию iptables блокирует весь входящий трафик и разрешает весь исходящий. Это не очень безопасно, поэтому нам нужно добавить некоторые правила, чтобы сделать наш сервер более защищенным.
Основной синтаксис
Прежде чем приступить к работе, давайте рассмотрим основной синтаксис iptables. Общий синтаксис iptables выглядит следующим образом:
$ iptables -A <chain> -p <protocol> -s <source> -d <destination> -j <action>
Где:
<chain>название цепочки (объясняется ниже)<protocol>протокол трафика (обычно TCP, UDP или ICMP)<source>IP-адрес источника<destination>IP-адрес назначения<action>действие, которое необходимо предпринять (обычно ACCEPT или DROP)
Цепочки
Цепочки используются для объединения связанных правил iptables. Существует три встроенных цепочки:
INPUT: для входящего трафикаOUTPUT: для исходящего трафикаFORWARD: в случае трафика, направляемого из одной сети в другую.
Также можно создавать собственные цепочки.
Действия
Существует два основных действия, которые мы можем выполнять с помощью iptables: ACCEPT и DROP.
- ACCEPT: разрешает прохождение трафика
- DROP: блокирует трафик
Основные команды
Правила листинга
Сайт iptables -L используется для перечисления всех правил в цепочке.
$ iptables -L
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
Команда -v используется для вывода списка правил с подробным выводом.
$ iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Добавление правил
Сайт iptables -A используется для добавления правила в конец цепочки.
$ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
Команда -I используется для добавления правила в указанную позицию в цепочке.
$ iptables -I INPUT 2 -s 192.168.1.0/24 -j ACCEPT
[-p опция используется для указания протокола и --dport опция используется для указания порта назначения.
$ iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Удаление правил
Сайт iptables -D используется для удаления правила в указанной позиции в цепочке.
$ iptables -D INPUT 2
-F : используется для удаления всех правил в цепочке.
$ iptables -F INPUT
-X : Опция используется для удаления заданной пользователем цепочки.
$ iptables -X mychain
-P Эта опция используется для указания политики по умолчанию для цепочки.
$ iptables -P INPUT DROP
Сохранение правил
The iptables-save используется для сохранения текущих правил iptables.
$ iptables-save > /etc/iptables.rules
[iptables-restore используется для восстановления сохраненных правил iptables.
$ iptables-restore < /etc/iptables.rules
Заключение
В этом руководстве мы узнали, как составлять список, удалять, сохранять и восстанавливать правила iptables.