Linux IPTables
Виды МЭ (условно):
- линейный (ipfw)
- табличный (pf)
- графовый (iptables)
IPTables
Ключевая ссылка IPTables HowTo
Общее устройство https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html (довольно старый перевод):
ядерная часть + утилита управления iptables
- «Пакеты» транспортного и сетевого уровня
Правила обработки пакетов: условие → действие по принципу «кто первый попал»
- Правила объединены в цепочки (действие выглядит как переход в другую цепочку)
- Цепочки бывают разного типа (это называется «цепочка из таблицы»)
- Переход между цепочками по умолчанию:
Естественный граф обработки проходящих пакетов:
- Возврат из пользовательских цепочек
Команды (над цепочками):
- -A, -D, -R №, -I №
- -F, -Z
- -N, -X
Параметры:
- -t Table (по умолчанию — filter)
Действия:
- ACCEPT, DROP, REJECT, RETURN
- SNAT, DNAT, MASQUERADE, NETMAP
- LOG, ULOG
- MARK, CONNMARK
- QUEUE
- …
Условия:
- -s, -d (IP); -i, -o (iface)
- -p протокол, --sport, --dport
- --icmp-type №
-m подмодуль
- mark, connmark
- conntrack, state (TCP)
- helper (прикладной уровень)
- owner (как имя процесса, так и IDs)
- recent