Ответ
iptables — это утилита командной строки для настройки и управления правилами межсетевого экрана (брандмауэра) в ядре Linux. Это стандартный инструмент для фильтрации сетевого трафика, трансляции адресов (NAT) и изменения пакетов.
Основные концепции:
- Таблицы:
filter(по умолчанию, для фильтрации),nat(для трансляции адресов),mangle(для модификации пакетов),raw(для настройки исключений из трассировки соединений). - Цепочки: Встроенные цепочки в таблице
filter—INPUT(входящий на хост),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 в единую подсистему с более простым синтаксисом и улучшенной производительностью.