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


В некоторых случаях механизм определения состояния не может распознать
протокол обмена и, соответственно, не может выбрать стратегию обработки
этого соединения. В этом случае он переходит к заданному по-умолчанию
поведению. Поведение по-умолчанию используется, например при обслуживании
протоколов NETBLT, MUX и EGP. Поведение по-молчанию во многом схоже с
трассировкой UDP соединений. Первому пакету присваивается статус NEW, а всем
последующим - статус ESTABLISHED.
При использовании поведения по-умолчанию, для всех пакетов используется
одно и то же значение таймаута, которое можно изменить в
/proc/sys/net/ipv4/netfilter/ip_ct_generic_timeout. По-умолчанию это
значение равно 600 секундам, или 10 минутам В зависимости от типа трафика,
это время может меняться, особенно когда соединение устанавливается по
спутниковому каналу.

4.8. Трассировка комплексных протоколов

Имеется ряд комплексных протоколов, корректная трассировка которых
более сложна. Прмером могут служить протоколы ICQ, IRC и FTP. Каждый из этих
протоколов несет дополнительную информацию о соединении в области данных
пакета. Соответственно корректная трассировка таких соединений требует
подключения дополнительных вспомогательных модулей.
В качестве первого примера рассмотрим протокол FTP. Протокол FTP
сначала открывает одиночное соединение, которое называется "сеансом
управления FTP" (FTP control session). При выполнении команд в пределах
этого сеанса, для передачи сопутствующих данных открываются дополнительные
порты. Эти соединения могут быть активными или пассивными. При создании
активного соединения клент передает FTP серверу номер порта и IP адрес для
соединения. Затем клент открывает порт, сервер подключает к заданному порту
клиента свой порт с номером 20 (известный как FTP-Data) и передает данные
через установленное соединение.
Проблема состоит в том, что брандмауэр ничего не знает об этих
дополнительных подключениях, поскольку вся информация о них передается через
область данных пакета. Из-за этого брандмауэр не позволит серверу
соединиться с указанным портом клиента.
Решение проблемы состоит в добавлении специального вспомогательного
модуля трассировки, который отслеживает, специфичную для данного протокола,
информацию в области данных пакетов, передаваемых в рамках сеанса
управления. При создании такого соединения, вспомогательный модуль корректно
воспримет передаваемую информацию и создаст соответствующую запись в таблице
трассировщика со статусом RELATED, благодаря чему соединение будет
установлено. Рисунок ниже поясняет порядок выполнения подобного соединения.

Пассивный FTP действует противоположным образом. Клиент посылает запрос
серверу на получение данных, а сервер возвращает клиенту IP адрес и номер
порта для подключения. Клиент подключает свой 20-й порт (FTP-data) к
указанному порту сервера и получает запрошенные данные. Если ваш FTP сервер
находится за брандмауэром, то вам потребуется этот вспомогательный модуль
для того, чтобы сервер смог обслуживать клиентов из Интернет. То же самое
касается случая, когда вы хотите ограничить своих пользователей только