Введение
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.