Заметки о работе с ОС FreeBSD. Статьи об установке и настройке ПО для FreeBSD.

25 марта 2010 г.

Редирект протокола FTP через PF в локальную сеть

Итак, есть роутер на FreeBSD, у которого два интерфейса (локальный и интернет) и есть FTP-сервер на FreeBSD только с локальным интерфейсом.

Нужно пробросить FTP-сессии из инета в локальную сеть причем так, чтобы у клиентов работал и active mode и passive mode.
В качестве FTP-сервера используется proftpd.
В качестве файервола на роутере используется Packet Filter (PF).

В /etc/pf.conf в секции NAT пишем:
binat on $ext_if from 192.168.0.253 to any -> 199.99.88.88
, где
$ext_if - внешний интерфейс
192.168.0.253 - IP-адрес FTP-сервера в локальной сети
199.99.88.88 - IP-адрес роутера в интернете

rdr pass on $ext_if proto tcp from any to any port ftp -> 192.168.0.253
, где
$ext_if - внешний интерфейс
192.168.0.253 - IP-адрес FTP-сервера в локальной сети

Подразумевается, что остальные разрешающие правила в pf.conf уже написаны.

Переходим к настройке FTP-сервера, а именно proftpd, а именно proftpd.conf
MasqueradeAddress 199.99.88.88

Всё.

Работают и активный и пассивный режимы подключения.

Литература: