"Oskar Andreasson. Iptables Tutorial 1.1.19 " - читать интересную книгу автора


6.1. Основы

Как уже говорилось выше, каждое правило - это строка, содержащая в себе
критерии определяющие, подпадает ли пакет под заданное правило, и действие,
которое необходимо выполнить в случае выполнения критерия. В общем виде
правила записываются примерно так:
iptables [-t table] command [match] [target/jump]
Нигде не утверждается, что описание действия (target/jump) должно
стоять последним в строке, однако, такая нотация более удобочитаема. Как бы
то ни было, но чаще всего вам будет встречаться именно такой способ записи
правил.
Если в правило не включается спецификатор [-t table], то по умолчанию
предполагается использование таблицы filter, если же предполагается
использование другой таблицы, то это требуется указать явно. Спецификатор
таблицы так же можно указывать в любом месте строки правила, однако более
или менее стандартом считается указание таблицы в начале правила.
Далее, непосредственно за именем таблицы, должна стоять команда. Если
спецификатора таблицы нет, то команда всегда должна стоять первой. Команда
определяет действие iptables, например: вставить правило, или добавить
правило в конец цепочки, или удалить правило и т.п.
Раздел match задает критерии проверки, по которым определяется
подпадает ли пакет под действие этого правила или нет. Здесь мы можем
указать самые разные критерии - IP-адрес источника пакета или сети, IP-адрес
места назначения,порт, протокол, сетевой интерфейс и т.д. Существует
множество разнообразных критериев, но об этом - несколько позже.
И наконец target указывает, какое действие должно быть выполнено при
условии выполнения критериев в правиле. Здесь можно заставить ядро передать
пакет в другую цепочку правил, "сбросить" пакет и забыть про него, выдать на
источник сообщение об ошибке и т.п.

6.2. Таблицы

Опция -t указывает на используемую таблицу. По умолчанию используется
таблица filter. С ключом -t применяются следующие опции.
Таблица 6-1. Таблицы
(Таблица - Описание)

Таблица: nat
Описание: Таблица nat используется главным образом для преобразования
сетевых адресов (Network Address Translation). Через эту таблицу проходит
только первый пакет из потока. Преобразования адресов автоматически
применяется ко всем последующим пакетам. Это один из факторов, исходя из
которых мы не должны осуществлять какую-либо фильтрацию в этой таблице.
Цепочка PREROUTING используется для внесения изменений в пакеты на входе в
брандмауэр. Цепочка OUTPUT используется для преобразования адресов в
пакетах, созданных приложениями внутри брандмауэра, перед принятием решения
о маршрутизации. И последняя цепочка в этой таблице - POSTROUTING, которая
используется для преобразования пакетов перед выдачей их в сеть.