windows FTP-клиент (total commander, FAR, cmd, Ftp commander и т.д.) замечательно работают в пассивном режиме через pf (NAT) (FreeBSD6.1)
и не работают в активном режиме.
Connecting to ftp.narod.ru , 21 àâã 2007 11:34:54
< 220 first-ftp.narod.ru (Libra FTP daemon 0.17 20070613)
> USER *****< 331 Password required
> PASS (hidden)< 230 Logged in, proceed
> SYST< 215 UNIX (L8)
> PWD< 257 "/"
> TYPE A< 200 Type: A N
> PORT XXX,XXX,XXX,XXX,8,229< 200 PORT command OK
> LIST< 150 Opening data connection
UNIX FTP-client работает в любом режиме:
[ЮНИКС] # ftp ftp.narod.ru
Connected to ftp.narod.ru.
220 first-ftp.narod.ru (Libra FTP daemon 0.17 20070613)
Name (ftp.narod.ru:admin1): ******
331 Password required
Password:
230 Logged in, proceed
Remote system type is UNIX.
ftp> pass
Passive mode: off; fallback to active mode: off.
ftp> pass
Passive mode: on; fallback to active mode: on.
ftp> dir
500 EPSV command not understood
227 Entering Passive Mode (XXX,XXX,XXX,XXX,253,233)
125 Using existing data connection
drwxr-xr-x 2 0 0 512 Aug 21 09:11 XXX
drwxr-xr-x 2 0 0 512 Aug 21 11:15 ZZZ
-rw-r--r-- 1 0 0 224 Aug 21 11:15 CCC
drwxr-xr-x 2 0 0 512 Aug 21 08:53 SSS
drwxr-xr-x 2 0 0 512 Aug 21 08:53 AAA
226 Transfer completed
ftp> pass
Passive mode: off; fallback to active mode: off.
ftp> dir
200 PORT command OK
150 Opening data connection
drwxr-xr-x 2 0 0 512 Aug 21 09:11 XXX
drwxr-xr-x 2 0 0 512 Aug 21 11:15 ZZZ
-rw-r--r-- 1 0 0 224 Aug 21 11:15 CCC
drwxr-xr-x 2 0 0 512 Aug 21 08:53 SSS
drwxr-xr-x 2 0 0 512 Aug 21 08:53 AAA
226 Transfer completed
ftp>Могу конечно привести все настройки
inetd.conf и pf.confНо думаю, что ответ на поверхности.
помогите пожалуйста - умучался.
>[оверквотинг удален]
> 0
> 512 Aug 21 08:53 AAA
>226 Transfer completed
>ftp>
>
>Могу конечно привести все настройки
>inetd.conf и pf.conf
>
>Но думаю, что ответ на поверхности.
>помогите пожалуйста - умучался.Unix ftp client understands the regime of work, but win client - doesn't. Did you permit 20 and 21 ports in your firewall? If you permitted only 21 , you'd have the same problem which you have now.
порты 20 и 21 открытыpass in on $ext_if inet proto tcp from any port 20 to $ext_if port > 1023 user proxy flags S/SA keep state
pass in on $ext_if inet proto tcp from any to any port 21 keep state
соответственно в inetd.conf
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy -u proxy -m 65001 -M 65029 -t 120
схема такаяrdr pass on $int_if proto tcp from <c-banks> to any port 21 -> 127.0.0.1 port 8021
Т.е. насколько я понимаю, pf НАТит запрос к FTP-серверу и отбрасывает привелегии root-а
обратно на порты из диапазона 65001-65029 сервер отправляет данные.все работает, если в Windows-клиентах ставить галку passive mode, если не ставить то сеанс зависает на
< 150 Opening data connection
>[оверквотинг удален]
>>Могу конечно привести все настройки
>>inetd.conf и pf.conf
>>
>>Но думаю, что ответ на поверхности.
>>помогите пожалуйста - умучался.
>
>Unix ftp client understands the regime of work, but win client -
>doesn't. Did you permit 20 and 21 ports in your firewall?
>If you permitted only 21 , you'd have the same problem
>which you have now.Did you set your firewall for logging? What do firewall logs show? Use tcpdump for understanding your case. I think you have something wrong with natting or network filtering.
да, весь блокируемый трафик попадает на Pflog0.
я использую tcpdump -n -i pflog0
для настройки фаервола и ната.собственно правила pass in all и pass out all не решают проблемы Win-клиентов
в общем при всех тех же самых настройках, я просто установил pftpx вместо прежнего ftp-proxy. Все прекрасно работает.если кто-то решил подобную задачу средством ftp-proxy + pf (FreeBSD) очень хотел бы перенять опыт
UNIX FTP-client работает случайно не с роутера ?
>UNIX FTP-client работает случайно не с роутера ?нет. из той же подсети, что и WIN-client. Права у машин идентичные во всем.