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