iptables

Утилита командной строки для управления правилами фильтрации сетевых пакетов и трансляции адресов (NAT) в ядре Linux.

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

Работа системы основана на таблицах (filter, nat, mangle, raw), которые содержат цепочки правил (INPUT, OUTPUT, FORWARD). Когда пакет проходит через сетевой стек, он последовательно проверяется на соответствие условиям. При совпадении выполняется действие (TARGET), такое как ACCEPT (пропустить), DROP (отбросить) или REJECT (отклонить с уведомлением).

Принципы работы

  • Таблица filter: используется для базовой фильтрации трафика по умолчанию.
  • Таблица nat: применяется для изменения адресов или портов назначения и источника.
  • Состояние соединений: модуль conntrack позволяет фильтровать пакеты на основе состояния сессии (например, ESTABLISHED).

Несмотря на развитие nftables, iptables остается базовым инструментом для сетевой изоляции в Docker и Kubernetes. Пример блокировки трафика с конкретного адреса: iptables -A INPUT -s 192.168.1.10 -j DROP. Эта команда добавляет правило в цепочку INPUT, запрещая любые входящие пакеты от указанного узла.