Источник:
http://iptables.ru/ (Так же там более подробная информация по настройке iptables)
А теперь рассмотрим порядок движения пакета, предназначенного локальному
процессу/приложению:
Для локального приложения
Шаг
|
Таблица
|
Цепочка
|
Примечание
|
1
|
|
|
Кабель
(т.е. Интернет)
|
2
|
|
|
Входной
сетевой интерфейс (например, eth0)
|
3
|
mangle
|
PREROUTING
|
Обычно
используется для внесения изменений в заголовок пакета, например для
установки битов TOS и пр.
|
4
|
nat
|
PREROUTING
|
Преобразование
адресов (Destination Network Address Translation). Фильтрация
пакетов здесь допускается только в исключительных случаях.
|
5
|
|
|
Принятие
решения о маршрутизации.
|
6
|
mangle
|
INPUT
|
Пакет
попадает в цепочку INPUT таблицы mangle. Здесь внесятся изменения в
заголовок пакета перед тем как он будет передан локальному приложению.
|
7
|
filter
|
INPUT
|
Здесь
производится фильтрация входящего трафика. Помните, что все входящие пакеты,
адресованные нам, проходят через эту цепочку, независимо от того с какого
интерфейса они поступили.
|
8
|
|
|
Локальный
процесс/приложение (т.е., программа-сервер или программа-клиент)
|
Важно помнить, что на этот раз пакеты идут через цепочку
INPUT, а
не через
FORWARD.
Порядок движения пакетов, созданных локальными процессами.
От локальных процессов
Шаг
|
Таблица
|
Цепочка
|
Примечание
|
1
|
|
|
Локальный
процесс (т.е., программа-сервер или программа-клиент).
|
2
|
|
|
Принятие
решения о маршрутизации. Здесь решается куда пойдет пакет дальше -- на какой
адрес, через какой сетевой интерфейс и пр.
|
3
|
mangle
|
OUTPUT
|
Здесь
производится внесение изменений в заголовок пакета. Выполнение фильтрации в
этой цепочке может иметь негативные последствия.
|
4
|
nat
|
OUTPUT
|
Эта
цепочка используется для трансляции сетевых адресов (NAT) в пакетах,
исходящих от локальных процессов брандмауэра.
|
5
|
Filter
|
OUTPUT
|
Здесь
фильтруется исходящий траффик.
|
6
|
mangle
|
POSTROUTING
|
Цепочка
POSTROUTING таблицы mangle в основном используется для правил,
которые должны вносить изменения в заголовок пакета перед тем, как он покинет
брандмауэр, но уже после принятия решения о маршрутизации. В эту цепочку
попадают все пакеты, как транзитные, так и созданные локальными процессами
брандмауэра.
|
7
|
nat
|
POSTROUTING
|
Здесь
выполняется Source Network Address Translation. Не следует в этой
цепочке производить фильтрацию пакетов во избежание нежелательных побочных
эффектов. Однако и здесь можно останавливать пакеты, применяя политику
по-умолчанию DROP.
|
8
|
|
|
Сетевой
интерфейс (например, eth0)
|
9
|
|
|
Кабель
(т.е., Internet)
|
Порядок движения транзитных
пакетов
Шаг
|
Таблица
|
Цепочка
|
Примечание
|
1
|
|
|
Кабель
(т.е. Интернет)
|
2
|
|
|
Сетевой
интерфейс (например, eth0)
|
3
|
mangle
|
PREROUTING
|
Обычно
эта цепочка используется для внесения изменений в заголовок пакета, например
для изменения битов TOS и пр..
|
4
|
nat
|
PREROUTING
|
Эта
цепочка используется для трансляции сетевых адресов (Destination Network
Address Translation). Source Network Address Translation выполняется
позднее, в другой цепочке. Любого рода фильтрация в этой цепочке может
производиться только в исключительных случаях
|
5
|
|
|
Принятие
решения о дальнейшей маршрутизации, т.е. в этой точке решается куда пойдет
пакет -- локальному приложению или на другой узел сети.
|
6
|
mangle
|
FORWARD
|
Далее
пакет попадает в цепочку FORWARD таблицы mangle, которая должна
использоваться только в исключительных случаях, когда необходимо внести
некоторые изменения в заголовок пакета между двумя точками принятия решения о
маршрутизации.
|
7
|
Filter
|
FORWARD
|
В
цепочку FORWARD попадают только те пакеты, которые идут на другой
хост Вся фильтрация транзитного трафика должна выполняться здесь. Не
забывайте, что через эту цепочку проходит траффик в обоих направлениях,
обязательно учитывайте это обстоятельство при написании правил фильтрации.
|
8
|
mangle
|
POSTROUTING
|
Эта
цепочка предназначена для внесения изменений в заголовок пакета уже после
того как принято последнее решение о маршрутизации.
|
9
|
nat
|
POSTROUTING
|
Эта
цепочка предназначена в первую очередь для Source Network Address
Translation. Не используйте ее для фильтрации без особой на то
необходимости. Здесь же выполняется и маскарадинг (Masquerading).
|
10
|
|
|
Выходной
сетевой интерфейс (например, eth1).
|
11
|
|
|
Кабель
(пусть будет LAN).
|
Теперь мы знаем, что есть три различных варианта прохождения пакетов.
1. Из вне на локальную службу (сервер) этого компьютера (INPUT).
2. От локальной службы (сервера) этого компьютера во вне (OUTPUT).
3. Прохождение мимо, шлюзование, мимо этого сетевого интерфейса этого
компьютера (FORWARD).