The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PF ftp-proxy OPEN vs FreeBSD"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (FTP / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 16-Сен-10, 17:40 
Есть необходимость указать диапазон портов для ftp-proxy, однако ключи для указания данных параметров отсутствуют на FreeBSD в отличие от OpenBSD. Кто сталкивался, есть обходные пути?

Кусок из "man ftp-proxy" по OpenBSD:

2. Activate and configure ftp-proxy

We now must activate ftp-proxy and configure it. This is done by editing the /etc/inetd.conf file. When needed, ftp-proxy will be summoned by the inetd daemon.ftp-proxy       stream  tcp     nowait  root    /usr/libexec/ftp-proxy  ftp-proxy -u proxy -m 55000 -M 57000 -t 180

The -u proxy specifies what user ftp-proxy will run under. Make sure this user exists.
The -m 55000 is the lower end of the port range the proxy will use for the data connections it establishes.
The -M 57000 is the upper end of the port range the proxy will use for the data connections it establishes.
The -t 180 specifies a timeout, in seconds. The proxy will exit and close open connections if it sees no data for the duration of the timeout.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от Aquarius (ok) on 16-Сен-10, 20:24 
кажется, в портах есть ftp-proxy из OpenBSD
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 17-Сен-10, 09:36 
>кажется, в портах есть ftp-proxy из OpenBSD

была надежда, пока порты обновлял, но:

===>  ftp-proxy-4.4p1_2 is a part of base for 7.0 and above.
*** Error code 1
Stop in /usr/ports/ftp/ftp-proxy.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от guest email(??) on 17-Сен-10, 12:02 
>Есть необходимость указать диапазон портов для ftp-proxy, однако ключи для указания данных
>параметров отсутствуют на FreeBSD в отличие от OpenBSD. Кто сталкивался, есть
>обходные пути?

Эти опции и из Open 5лет назад выкинули.
Кроме как пытаться патчить текущий код кусочком из старого OpenBSD (3.8) нечего и посоветовать.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 17-Сен-10, 17:07 
>Эти опции и из Open 5лет назад выкинули.
>Кроме как пытаться патчить текущий код кусочком из старого OpenBSD (3.8) нечего
>и посоветовать.

Интересно узнать историю с удалением опций, траблы с лицензированием или по другой причине..? Плохо ищу наверное :)
Но если не задать этот диапазон, для работы пассивного режима, получается проделываем большую дыру на входящие соединения. Как-то нелогично получается...

На Вики пишут, что на nix-системах в вопросе реализации работы FTP, царствует iptables. Эх!

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от guest email(??) on 17-Сен-10, 19:00 
>Интересно узнать историю с удалением опций, траблы с лицензированием или по другой
>причине..? Плохо ищу наверное :)

Ну как я понимаю сабж переписали с нуля на libevent попутно похерив эти ключики.

>Но если не задать этот диапазон, для работы пассивного режима, получается проделываем
>большую дыру на входящие соединения. Как-то нелогично получается...

Там такое правило вставляется.
/*
* pass [quick] [log] inet[6] proto tcp \
*     from $src to $dst port = $d_port flags S/SA keep state
*     (max 1) [queue qname] [tag tagname]
*/
Вроди и не такая уж и дыра...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 18-Сен-10, 23:38 
...>Вроди и не такая уж и дыра...

Предположим, за NAT есть FTP-сервер, настроенный на passive в диапазоне 60100:60150.
Для того чтобы он был доступен извне, логично будет открыть на шлюзе порты 21 и 60100:60150, но такой способ не даст результата. Т.к. ftp-proxy не сам сервер, откуда ему знать этот диапазон? Поэтому и получается, чтобы FTP был доступен извне, открываем всё выше 1023, красота неописуемая!


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от guest email(??) on 19-Сен-10, 08:58 
>Предположим, за NAT есть FTP-сервер, настроенный на passive в диапазоне 60100:60150.
>Для того чтобы он был доступен извне, логично будет открыть на шлюзе
>порты 21 и 60100:60150, но такой способ не даст результата. Т.к.
>ftp-proxy не сам сервер, откуда ему знать этот диапазон? Поэтому и
>получается, чтобы FTP был доступен извне, открываем всё выше 1023, красота
>неописуемая!

если у вас есть ftp сервер за NAT, то для проброса через прокси соединений к нему используйте ключик -R. Порты для пассивного режима прокси обработает сам распарсив ответ сервера. Ничего лишнего открывать не надо.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 20-Сен-10, 12:16 
>если у вас есть ftp сервер за NAT, то для проброса через
>прокси соединений к нему используйте ключик -R. Порты для пассивного режима
>прокси обработает сам распарсив ответ сервера. Ничего лишнего открывать не надо.
>

Про ключ само собой разумеется, но если не добавить правила в секцию фильтрации, к серверу за НАТ доступа не будет.
Вот пример конфига, где все работает, но открыт очень большой диапазон на вх. соединения.

#----- Секция нат/радирект -----#

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr on $ext_if proto tcp from any to any port 21 -> 127.0.0.1 port 8022
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021


#----- Секция фильтра -----#

pass in on $ext_if inet proto tcp from any to any port 21 \
    flags S/SA keep state
pass in on $ext_if inet proto tcp from any to any port > 1023 \
    flags S/SA keep state
anchor "ftp-proxy/*"

если есть другие варианты, буду рад посмотреть.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "PF ftp-proxy OPEN vs FreeBSD"  +1 +/
Сообщение от guest email(??) on 20-Сен-10, 15:30 
>>если у вас есть ftp сервер за NAT, то для проброса через
>>прокси соединений к нему используйте ключик -R. Порты для пассивного режима
>>прокси обработает сам распарсив ответ сервера. Ничего лишнего открывать не надо.
>>
>
>Про ключ само собой разумеется, но если не добавить правила в секцию
>фильтрации, к серверу за НАТ доступа не будет.

Не будет почему???

Вот вам кусочек лога ftp сессии от 1.2.3.4 к хосту 5.6.7.8 на котором прокси пробрасывает запросы за NAT
bash-4.0$ sudo /usr/sbin/ftp-proxy/ftp-proxy -D 7 -d -R 192.168.2.101
Password:
using fixed server 192.168.2.101
listening on 127.0.0.1 port 8021
#1 accepted connection from 212.65.160.43
#1 FTP session 1/100 started: client 1.2.3.4 to server 192.168.2.101 via proxy 192.168.2.1
#1 server: 220- smallftpd 1.0.3\r\n
...
#1 client: PASV\r\n
#1 server: 227 Entering Passive Mode (192,168,2,101,19,136) \r\n
#1 passive: client to server port 5000 via port 56479
#1 proxy: 227 Entering Passive Mode (5,6,7,8,220,159)\r\n

Само собой такого ужаса нет.
>pass in on $ext_if inet proto tcp from any to any port > 1023 \
>    flags S/SA keep state

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 21-Сен-10, 11:19 
>>>если у вас есть ftp сервер за NAT, то для проброса через
>Не будет почему???
>Само собой такого ужаса нет.
>>pass in on $ext_if inet proto tcp from any to any port > 1023 \
>>    flags S/SA keep state

Спасибо, навели на мысль :)
В секции фильтрации достаточно добавить:

pass in on $ext_if inet proto tcp from any to any port 8022 \
    flags S/SA keep state
anchor "ftp-proxy/*"

Думал, фильтр ведёт себя по другому.
Обычно, клиенты подкл. к 21 порту, и, логично предположить, потом происходит внутренняя переброска на 8022... но ftp-proxy работает иначе :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от guest email(??) on 21-Сен-10, 11:37 
>Думал, фильтр ведёт себя по другому.
>Обычно, клиенты подкл. к 21 порту, и, логично предположить, потом происходит внутренняя
>переброска на 8022... но ftp-proxy работает иначе :)

Кажется Вы чего-то не так поняли)))
Клиет подключается к какому-то порту (21 обычно) на внешнем интерфейсе, правилами файрвола
его пакеты заворачиваются на прокси, остальное (добавление pass/nat/rdr) для каждого клиента делает прокси. Т.е. все что от вас требуется это разрешить редирект входящих ftp пакетов на прокси и разрешить исходящий трафик от прокси.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 21-Сен-10, 12:34 
>>Думал, фильтр ведёт себя по другому.
>>Обычно, клиенты подкл. к 21 порту, и, логично предположить, потом происходит внутренняя
>>переброска на 8022... но ftp-proxy работает иначе :)
>
>Кажется Вы чего-то не так поняли)))
>Клиет подключается к какому-то порту (21 обычно) на внешнем интерфейсе, правилами файрвола
>
>его пакеты заворачиваются на прокси, остальное (добавление pass/nat/rdr) для каждого клиента делает
>прокси. Т.е. все что от вас требуется это разрешить редирект входящих
>ftp пакетов на прокси и разрешить исходящий трафик от прокси.

Ну почему же? :) Все FTP-клиенты, по умолчанию, стучатся на 21 порт. Разумно предположить, что потом эти пакеты заворачиваются на прокси...

Так вот, если открыть 21 порт, то ftp-proxy в режиме отладки ничего не фиксирует.
Если так, то решил проверить, как он поведет себя при открытии порта, на котором он запущен (8022). После, FTP сразу все заработал.

Получается, что ftp-proxy сразу заворачивает соединения с 21 на 8022 порт, до того как 21 порт будет запрещен правилами фильтрации.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

13. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от guest email(??) on 21-Сен-10, 12:50 
>Ну почему же? :) Все FTP-клиенты, по умолчанию, стучатся на 21 порт.
>Разумно предположить, что потом эти пакеты заворачиваются на прокси...
>Так вот, если открыть 21 порт, то ftp-proxy в режиме отладки ничего
>не фиксирует.

А вы его повесили на внешний интерфейс???
по дефолту он слушает на lo0

>Получается, что ftp-proxy сразу заворачивает соединения с 21 на 8022 порт, до
>того как 21 порт будет запрещен правилами фильтрации.

rdr работает до pass/block.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

14. "PF ftp-proxy OPEN vs FreeBSD"  +/
Сообщение от kvasik (ok) on 21-Сен-10, 13:03 
>А вы его повесили на внешний интерфейс???

Дефолт не менял, просто редирект раньше фильтра отрабатывает, как вы и говорите.


Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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