EMZETT.
Войти

iptables и Netfilter

Коротко: Netfilter — каркас фильтрации пакетов в ядре Linux, iptables — классический инструмент для написания для него правил.

Подробнее: Каждый пакет проходит через хуки в ядре. Правила в таблицах и цепочках решают, принять ли его, отбросить или переписать. Преемник называется nftables.

Подробности

  • Таблицы: filter (разрешить/запретить), nat (переписать адреса), mangle (изменять пакеты).
  • Цепочки: INPUT (на эту машину), OUTPUT (с неё), FORWARD (транзитные), а также PREROUTING и POSTROUTING.
  • Правило: Условие плюс цель, например -p tcp --dport 22 -j ACCEPT. Побеждает первое подходящее правило, иначе действует политика цепочки по умолчанию.
  • Отслеживание соединений: -m conntrack --ctstate ESTABLISHED,RELATED разрешает ответы на собственные соединения.
  • Применение: Домашние маршрутизаторы, межсетевые экраны серверов, Docker (создаёт собственные правила), проброс портов.
  • Сегодня: Новые системы используют nftables или оболочки вроде ufw и firewalld. См. NAT.

См. также: fail2ban