В сети есть ftp-сервер (в пассивном режиме), который должен быть доступен снаружи. На шлюзе OpenBSD.
http://www.openbsd.org/faq/pf/ftp.html читал. Сделал следующее:
/etc/rc.conf.local
ftpproxy_flags="-R 192.168.2.3 -p 21 -b 123.123.123.123 -v -D7
/etc/pf.conf
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
pass in log quick on $ext_if inet proto tcp from any to $ext_ip port 21 synproxy state
pass out log quick on $int_if inet proto tcp from any to $ftp port 21 keep state
anchor "ftp-proxy/*"
Пытаюсь соединиться снаружи через FileZilla:
Статус: Соединяюсь с 123.123.123.123:21...
Статус: Соединение установлено, ожидание приглашения...
Ответ: 220- Hi all! If you can read this message, that means this ftp-server is works.
Команда: USER user
Ответ: 331 Password required for user.
Команда: PASS **********
Ответ: 230 User user logged in, access restrictions apply.
Статус: Соединение установлено
Статус: Получение списка каталогов...
Команда: PWD
Ответ: 257 "/" is current directory.
Команда: TYPE I
Ответ: 200 Type set to I.
Команда: PASV
Ответ: 227 Entering Passive Mode (192,168,2,3,224,74)
Статус: Сервер отправил пассивный ответ с неопределяемым адресом. Использую существующий адрес сервера.
Команда: LIST
Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!
Собственно, кто виноват, что делать, куда копать?