Что такое iptables и как это используется?

«Что такое iptables и как это используется?» — вопрос из категории Linux, который задают на 28% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

iptables — это утилита командной строки для настройки и управления правилами межсетевого экрана (брандмауэра) в ядре Linux. Это стандартный инструмент для фильтрации сетевого трафика, трансляции адресов (NAT) и изменения пакетов.

Основные концепции:

  • Таблицы: filter (по умолчанию, для фильтрации), nat (для трансляции адресов), mangle (для модификации пакетов), raw (для настройки исключений из трассировки соединений).
  • Цепочки: Встроенные цепочки в таблице filterINPUT (входящий на хост), OUTPUT (исходящий с хоста), FORWARD (транзитный).
  • Правила: Состоят из критериев (-s, -p, --dport) и цели (-j), такой как ACCEPT, DROP, REJECT.

Практические примеры правил:

# Разрешить входящие SSH-подключения (порт 22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Заблокировать весь трафик с конкретного IP-адреса
iptables -A INPUT -s 192.168.1.100 -j DROP

# Включить маскарадинг (SNAT) для исходящего трафика с интерфейса eth0 (типично для шлюза)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Разрешить loopback-интерфейс
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

Управление и сохранение: Правила применяются немедленно, но не сохраняются после перезагрузки. Для сохранения в Debian/Ubuntu: iptables-save > /etc/iptables/rules.v4. Для загрузки: iptables-restore < /etc/iptables/rules.v4.

Эволюция: iptables считается legacy-решением. Современной заменой является nftables, которая объединяет функциональность iptables, ip6tables, arptables и ebtables в единую подсистему с более простым синтаксисом и улучшенной производительностью.