Шпаргалка по iptables: полное руководство для настройки firewall в Linux

Author Admin Reading time 3 minutes

Для системных администраторов Linux настройка firewall с помощью iptables — важнейший аспект защиты серверов. В этой статье вы найдете подробные примеры команд, которые помогут быстро и эффективно управлять правилами сетевой фильтрации. Мы рассмотрим управление цепочками, удаление и сохранение правил, NAT, логирование и многое другое.

Проверка правил iptables

Для начала, чтобы увидеть текущие установленные правила firewall, используйте команду:

iptables -L

Чтобы получить подробный, числовой вывод:

iptables -L -v -n

А для отображения в читаемом и экспортируемом формате:

iptables -S

Сброс правил iptables

Иногда требуется полностью очистить конфигурацию. Сбросить все правила во всех цепочках можно так:

iptables -F

Или сбросить только одну цепочку:

iptables -F INPUT
iptables -F OUTPUT

Установка политик по умолчанию

Задать основное поведение firewall можно через настройки политик по умолчанию:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Замените ACCEPT на DROP, если хотите по умолчанию блокировать все входящие или исходящие подключения.

Работа с цепочками в iptables

Создайте свою пользовательскую цепочку:

iptables -N custom-chain

Удалите ненужную цепочку:

iptables -X custom-chain

Добавьте правило для передачи управления:

iptables -A INPUT -j custom-chain

Разрешение и блокировка трафика с условиями

Чтобы разрешить трафик от определенного IP-адреса на нужный порт:

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT

Для блокировки трафика по такому же принципу:

iptables -A INPUT -p tcp -s 192.168.1.200 --dport 80 -j DROP

Разрешение и блокировка трафика

Открыть входящий порт для всех:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Разрешить трафик от определенного IP:

iptables -A INPUT -s 10.0.0.1 -j ACCEPT

Блокировать входящий порт:

iptables -A INPUT -p tcp --dport 25 -j DROP

Блокировка по порту и IP:

iptables -A INPUT -p tcp -s 203.0.113.5 --dport 25 -j DROP

Разрешение диапазона портов:

iptables -A INPUT -p tcp --dport 8000:8080 -j ACCEPT

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

Удалить правило можно по его номеру:

iptables -D INPUT 3

Или по самому содержимому:

iptables -D INPUT -p tcp --dport 22 -j ACCEPT

Сохранение, восстановление и логирование правил

Чтобы сохранить текущие настройки:

iptables-save > /etc/iptables/rules.v4

Восстановить правила можно командой:

iptables-restore < /etc/iptables/rules.v4

Логирование отброшенных пакетов:

iptables -A INPUT -p tcp --dport 23 -j LOG --log-prefix "IPTables-Dropped: " --log-level 4

NAT и перенаправление портов в iptables

Для включения NAT (маскарадинг):

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Перенаправить порт на другой сервер (DNAT):

iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.10:22

Локальное перенаправление портов:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080