Доброго времени суток. О сабже: в джейле сидит proftpd. Не выходит получить доступ к нему из внешнего мира:
#ipfw show
00010 0 0 fwd 192.168.0.10,20 ip from any to me dst-port 20
00020 26 1491 fwd 192.168.0.10,21 ip from any to me dst-port 21
00030 0 0 fwd 192.168.0.10 ip from any to me dst-port 49200-49300
00100 101 9220 fwd 192.168.0.8 ip from any to me dst-port 80
$ ftp 46.98.187.165
Connected to 46.98.187.165.
220 ProFTPD 1.3.4a Server (BASIN) [46.98.187.165]
Name (46.98.187.165:wagner): files
331 Password required for files
Password:
230 User files logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful
421 Service not available, remote server has closed connection
Как видим авторизация проходит, а вот данные - фиг, в то-же время обращение с хост машины на айпишник джейла вполне нормально прокатывает, так-что фтп сервер живой. Диапазон портов указал в proftpd.conf, так-что тут тоже все ок. Вопрос: куда копать? А гугле копался, ничего конкретного на тему форварда не нашел. natd не подходит по той простой причине, что не юзаю его. Правило 100 (для веб сервера, находящегося в другом джейле) отрабатывает на отлично (сервер легко и непринужденно отдает странички)
> Диапазон портов указал в proftpd.conf, так-что тут тоже
> все ок.Этого не достаточно. профтпд когда отдает ответ на команду PORT, указывает в ней свой айпи, а вам надо чтобы он указывал адрес хост-машины.
счетчик по нулям:
00030 0 0 fwd 192.168.0.10 ip from any to me dst-port 49200-49300
соответственно до проброса портов дело не дошло.. Кстати, достаточно пробрасывать только TCP-порты =)
Там в профтпд есть какая-то опция, которая позволяет этот адрес задать, на память не помню.
> Правило 100 (для веб сервера, находящегося в
> другом джейле) отрабатывает на отлично (сервер легко и непринужденно отдает странички)=) кто бы сомневался.
DefaultAddress зовут. Поменял на адрес хост-машины, результат - как не работало, так и не работает. Может какие-нибудь другие идеи есть?
> DefaultAddress зовут. Поменял на адрес хост-машины, результат - как не работало, так
> и не работает. Может какие-нибудь другие идеи есть?дебажить tcpdump-ом содержимое пакетов
> DefaultAddress зовут. Поменял на адрес хост-машины, результат - как не работало, так
> и не работает. Может какие-нибудь другие идеи есть?* Поискать в серьёзной ОС fbsd conntrack helper для ftp NAT-а (в пионэрском линуксе, вроде так называется).
* Сказать клиентам, чтоб пользовали только пассивный ftp, если это таки поможет беде -- проверить для начала.
>Может какие-нибудь другие идеи есть?* Поставить вместо NAT-а app.level proxy на хост. (Из головы помню только delegate, но, надо полагать, миллионы их. гугль:// ftp+proxy ftp+frontend ftp+relay итп)