Содержание

Netfilter

Наиболее полная статья: https://ru.wikibooks.org/wiki/Iptables

Netfilter - межсетевой экран (брандмауэр), встроенный в ядро Linux с версии 2.4.
Разделение функциональности с помощью таблиц, позволило обрабатывать пакеты не только исходя из информации в самом пакете, но и учитывать данные о соединении в целом (stateful - фильтрация), контекст передачи.
Это одно из превосходств над своим предшественником - ipchains (в настоящее время устарел и не используется).

Архитектура

Правило - состоит из критерия, действия и счетчика (критерий и действие можно пропускать, останется только счетчик).
Цепочка - последовательность правил, есть пользовательские (нижний регистр, только для своей таблицы) и базовые (стандартные, верхний регистр).
Таблица - совокупность цепочек, объединенных функциональным назначением (имена в нижнем регистре).

Существует 5 типов стандартных цепочек:

Цепочки организованы в таблицы: 4 стандартных (raw, mangle, nat и filter) и бывают 2 дополнительных (security, rawpost), цепочки с одинаковым названием, но в разных таблицах - независимые объекты.

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

Все пакеты пропускаются через цепочки правил.
При прохождении к нему последовательно применяются правила этой цепочки, если он соответствует указанному критерию, применяется действие (в т.ч. переход к другой цепочке, например пользовательской).
Действие может быть терминальным (заканчивающее обработку в данной цепочке (ACCEPT, REJECT)) или нетерминальным (MARK, TOS).
Действие по умолчанию обязательно терминальное.

Таблицы

raw

Выполнение действий с пакетами до их обработки в conntrack.

Цепочки: PREROUTING, OUTPUT.
Действия:

rawpost

Является следствием реализации RAWDNAT в таблице raw т.е. для обратной пересылки проброшенных адресов (портов) на уровне пакетов.

Цепочки: POSTROUTING.
Действия: RAWSNAT - обратный, «сырой» проброс адресов (портов).

mangle

Классификация и маркировка пакетов и соединений, а также модификация заголовков пакетов (TTL и TOS).

Цепочки: все 5 стандартных цепочек.
Действия:

nat

Stateful-преобразование сетевых адресов и портов.

Цепочки: PREROUTING, OUTPUT и POSTROUTING.
Действия:

filter

Фильтрация трафика, т.е. запрет/разрешение пакетов (соединений).

Цепочки: INPUT, FORWARD и OUTPUT.
Действия:

+= Модуль xtables-addons:

security

Предназначена для изменения маркировки (SELinux).
Все цепочки проходят после одноименных в таблице filter.

Цепочки: INPUT, FORWARD и OUTPUT.
Действия: SECMARK, CONNSECMARK.