The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"ipfw + natd - не работает исходящий активный FTP"
Отправлено Pahanivo, 07-Ноя-08 09:24 
>что то думается то натд и механизм отслеживания команды PORT это разные
>уровни сетевой модели. дайте ссылку как натд отслеживает команду PORT.
>приведенные правила были для пассинвного фтп

Немного покапавшись в natd выяснилось, что natd использует libalias(3). А
немного покопавшись в libalias выяснилось, что  эта либа умеет отслеживать фтп команды.
(см /usr/src/sys/netinet/libalias/alias_ftp.c).
    
    Alias_ftp.c performs special processing for FTP sessions under
    TCP.  Specifically, when a PORT/EPRT command from the client
    side or 227/229 reply from the server is sent, it is intercepted
    and modified.  The address is changed to the gateway machine
    and an aliasing port is used.

Так что можно сказать что natd так же отслеживает и меняет команды ftp.

Теперь на счет punch_fw. Читаем маны и видим.

man libalias(3):

PKT_ALIAS_PUNCH_FW
                   This option makes libalias `punch holes' in an
                   ipfirewall(4) based firewall for FTP/IRC DCC connections.
                   The holes punched are bound by from/to IP address and port;
                   it will not be possible to use a hole for another connec-
                   tion.  A hole is removed when the connection that uses it
                   dies.

Ептыть.. можете в меня плюнуть если это не STATEFULL и если это не просто
динамическое создание временного правила в ipfw.

А вот опция -s
man natd:

-use_sockets | -s
                 Allocate a socket(2) in order to establish an FTP data or IRC
                 DCC send connection.  This option uses more system resources,
                 but guarantees successful connections when port numbers con-
                 flict.

Она же в libalias(3):

PKT_ALIAS_USE_SOCKETS
                   This bit should be set when the packet aliasing host origi-
                   nates network traffic as well as forwards it.  When the
                   packet aliasing host is waiting for a connection from an
                   unknown host address or unknown port number (e.g. an FTP
                   data connection), this mode bit specifies that a socket be
                   allocated as a place holder to prevent port conflicts.
                   Once a connection is established, usually within a minute
                   or so, the socket is closed.

И создает сокет (как написано для предотвращения конфилктов портов) на который
"соединяется" сервер со своего 20 порта.

Таки образом, если правла ipfw уже разрешают прохождение заначеных/разначеных
пакетов, то активный режим будет работать без дополнительных опций.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру