The OpenNET Project / Index page

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

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

"помогите закрепить материал по freebsd + pf + ftp-proxy"  +/
Сообщение от netc email(ok) on 09-Фев-10, 11:25 
Давно уже работал у меня vsftpd на FreeBSD 7.1-RELEASE
Машина одним интерфейсом смотрит в Интернет другим в ЛВС.
На на внешнем $ext_if_ppp включен NAT

Требуется сделать правильный FTP сервер как для ЛВС и Интернета.

Все мы знаем про режимы работы FTP, я решил что мой FTP будет работать в пассивном режиме.

Если я не прав поправьте : Пассивный режим будет работать у клиента всегда, лижь бы мой сервер был правильно настроен ?

Следуя рекомендациям на

http://house.hcn-strela.ru/BSDCert/BSDA-course/apcs02.html#p...
и
man ftp-proxy

сделал следующее:
в /etc/rc.conf добавил:


echo "ftpproxy_enable="YES"
ftpproxy_flags="-v -D 7" >

кстати где посмотреть его лог ? или его ещё нужно настроить? и где если да ?

как только мы его включили мы должны знать, что он будет работать на порте 8021

и еще вопрос в чем разница между запуском из rc.conf и из inetd например так:


ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy

добавим в pf.conf правило, которое будет делать проброс пакетов, с ним работает пассивный режим как из локалки так и из инета


rdr pass on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021

но тут вопрос! А может правильнее сделать так :

rdr pass on $int_if proto tcp from $trusted_lan to $int_if port 21 -> 127.0.0.1 port 8021

тогда как быть с инет-клиентами может так

rdr pass on $ext_if_ppp proto tcp from any to $ext_if_ppp port 21 -> 127.0.0.1 port 8021

а вот с последним правилом перестает работать доступ к ftp из вне, клиенты говорят, что не могут подключиться типа connection refused
тогда вопрос как бы мне пропустить пакеты через шлюз до ftp-proxy и от него до клиентов
правильными правилами, т.к. все что я писал - не помогают

просто ведь у меня в сети клиенты могут ходить на ftp сервера интернета, точнее будут это делать и нужно чтобы у них все работало. я правильно считаю, по идее не все пакеты должны заворачиваться на локальный ftp-proxy?

и еще если убрать

       nat-anchor "ftp-proxy/*"
       rdr-anchor "ftp-proxy/*"

из правил, то клиент зависает(пытается договориться) на установке пассивного режима, например total commander

поэтому вопрос что делают эти правила, я если честно не понял, точнее я понял, что они позволяют вставлять динамически правила для клиентов при работе в пассивном режиме, но какие именно правила вставляются в цепочки ?

и еще как и почему ftp-proxy получает доступ к pfctl?

у меня есть предположение, что я что-то кардинально напутал, имеется в виду что то довольно общее

есть подозрение что тут что то лишнее или наоборот чего то не хватает

пока как бы все работает в итоге следующие правила у меня для работы включены:


        # Делаем просто проброс на ftp-proxy ПРОСТО ПРОБРОС
        rdr pass on $int_if proto tcp from $trusted_lan to $int_if port 21 -> 127.0.0.1 port 8021
#       rdr pass on $ext_if_ppp proto tcp from any to $ext_if_ppp port 21 -> 127.0.0.1 port 8021

второе закаментировано, т.к. если его включить, то извне не достучаться, не знаю что разрешить правильно


        nat-anchor "ftp-proxy/*"
        rdr-anchor "ftp-proxy/*"

        # FTP for Internet
        pass in on $ext_if_ppp proto tcp from any to $ext_if_ppp port 21

        # Требуеться для работы клиента в пассивном режиме с ftp сервером
        # если отключить вход пакетов SYN на эти порты, то клиент не сможет использовать get, ls и т.д.
        pass in on $int_if inet proto tcp from $trusted_lan to $int_if port 50000><50100 keep state
        pass in on $ext_if_ppp inet proto tcp from any to $ext_if_ppp port 50000 >< 50100 keep state

кстати еще один вопрос как мне ограничить ftp_proxy на то чтобы он работал в диапазоне от 50000 до 50100 портах ?

дело в том. что man ни чего не написано про такие параметры
и также странно, то, что если отключить эти два последних правила то пассивный ftp не работает
хотя в клиенте видно, что порты вовсе не из этого диапазона, я понимаю что бред но ...
я использую для тестирования два клиента
1-й тотал комендер
2-й ftp на внутреннем личном компьютере с freebsd  
так вот если их отключить тотал(2-й) работает собака а вот 2-й(т.е. ftp) ни хрена виснет на


331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||58342|)
200 EPRT command successful. Consider using EPSV.
425 Failed to establish connection.

Я понимаю, что все просто, но как говаривал Рич в нашем мире все настолько просто что надо быть гением чтобы это понять ;)

Помогите привести мысли в порядок пожалуйста.

если будет время отпишу наверное даже статью на наш любимый сайт, только если конечно полностью разберусь
думаю будет не лишним

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

Оглавление

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


1. "помогите закрепить материал по freebsd + pf + ftp-proxy"  +/
Сообщение от netc email(ok) on 09-Фев-10, 13:26 
есть и еще один момент не понятный мне
дело в том, что все работает только если в vsftpd установить параметр

#securely risk, but no variants by netc
pasv_promiscuous=YES

иначе вот такая вот беда выдаеться ftp клиентом с freebsd внутри локальной сети на отдельной машине


331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||51318|)
425 Security: Bad IP connecting.

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

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

Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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