Настройка IPTables: правила и примеры

8 мин чтенияОбновлено 6 декабря 2025

Это подсистема для работы с сетевыми пакетами, которая пропускает через свой фильтр все соединения на сервере. Разберем подробнее настройку IPTables.

#Общая информация

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

#Debian / Ubuntu

bash
[sudo] apt install iptables

Sudo предназначена для использования на ОС Ubuntu. Для Debian используется обыкновенная команда.

#CentOS [Fedora]

bash
sudo yum install iptables

#Настройка

После установки утилиты перейдем к ее подробной настройке.

#Аргументы

-A — добавить правило в раздел.

-С — проверить все правила.

-D — удалить правило.

-I — вставить правило с необходимым номером.

-L — вывести все правила в текущем разделе.

-S — вывести все правила.

-F — очистить все правила.

-N — создать раздел.

-X — удалить раздел.

-P — установить действие по умолчанию.

-p — установить протокол.

-s — указать адрес отправителя.

-d — указать адрес получателя.

-i — входной сетевой интерфейс.

-o — исходящий сетевой интерфейс.

-j — выполнить при соответствии правила.

INPUT — отвечает за обработку входящих пакетов и подключений.

FORWARD — применяется для проходящих соединений. Именно сюда попадают соответствующие пакеты, которые отправлены на Ваш сервер, но не определяют его как цель доставки.

OUTPUT — полностью противоположно первому. Используется для исходящих пакетов и соединений.

ACCEPT — пропустить пакет.

DROP — удалить пакет.

REJECT — отклонить пакет.

LOG — сделать лог-файл соответствующего пакета.

QUEUE — отправить пакет приложению пользователя.

#Открытие порта(-ов)

Для начала давайте проверим список наших правил:

bash
iptables -L
Список правил IPTables

Попробуем открыть один TCP-порт 80 для входящих соединений:

bash
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

Проверим список еще раз...

Правило для TCP-порта 80 в списке IPTables

Теперь давайте попытаемся открыть диапазон UDP-портов от 25565 до 25570 для исходящих подключений:

bash
iptables -t filter -A OUTPUT -p udp --dport 25565:25570 -j ACCEPT

Проверим результат.

Правило для диапазона UDP-портов в IPTables

Хотите закрыть все входящие подключения для TCP 250? Не проблема.

bash
iptables -t filter -A INPUT -p tcp --dport 250 -m state --state ESTABLISHED -j DROP
Правило для закрытия входящих подключений TCP 250

#Удаление правил

Теперь попробуем удалить правило, которое разрешает входящие соединения для TCP 80:

bash
iptables -t filter -D INPUT -p tcp --dport 80 -j ACCEPT
Удаление правила для TCP 80 из IPTables

#Удаление всех правил

Для этого используйте команду

bash
iptables -F
Удаление всех правил IPTables

#Сохранение созданных правил

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

bash
iptables-save
Сохранение правил IPTables

Получилось. Правила сохранены и будут активны даже после перезагрузки нашего сервера!

Не нашли ответ? Мы на связи 24/7.Написать в поддержку