Прозрачное проксирование локального FTP-сервера
13 июля 2010, 08:42Дано: роутер FreeBSD с NAT и внешними ip, nginx проксирует некий веб-ресурс на локальный веб-сервер. Задача - организовать FTP доступ к локальному веб-серверу извне.
Задача усложняется тем, что на роутере тоже есть свои FTP ресурсы, но наличие дополнительного внешнего ip решает проблему.
Итак: xx.xx.xx.xx - внешний ip, yy.yy.yy.yy - локальный сервер, ftpuser - аккаунт, который нужно проксировать, abcde.ru - домен веб-ресурса.
Решение: jftpgw. Конфиг:
<global>
serverport 21
defaultmode passive
debuglevel 6
dropprivileges startsetup
runasuser nobody
runasgroup nogroup
loginstyle 0
logintime user
transparent-proxy on
welcomeline Alert will come in need
allowreservedports no
allowforeignaddress yes
passiveportrange 44000:44999
</global>
<servertype standalone>
listen xx.xx.xx.xx:21
logstyle files
logfile /var/log/jftpgw.log
pidfile /var/run/jftpgw.pid
</servertype>
<servertype inetd>
logstyle syslog
</servertype>
<from 0.0.0.0/0>
access allow
<user ftpuser>
<to abcde.ru>
forward yy.yy.yy.yy:21
</to>
</user>
</from>
<from yy.yy.yy.0/24>
access allow
</from>
P.S. NAT на этом внешнем ip не дивертит. На всякий случай.