ЗдравствуйтеЕсть виртуальная машина под FreeBSD 11.0 на WMSphere с адресом IntIP, с проброшенными наружу на адрес RealIP несколькими сервисами.
Проброс через стандартный WMSphere Edge Gateway, сервисы проброшены наружу через DNAT.
Потребовалось поднять vsftpd с ssl на этой машине, с тем, чтобы дать на нее доступ с нескольких внешних IP.
Пакет vsftpd-ssl-3.0.3
В Edge Gateway был выполнен проброс с инета к виртуалке (DNAT TCP) с портов 21 и на всякий случай с TCP 989-990.
Из виртуалки наружу есть SNAT с полным доступом.
В ipfw внесены правила, разрешающие TCP 21,989,990 и диапазон пассивных портов (см. конфиг vsftpd) для нескольких внешних IP.
В сам vsftpd добавлен корректный pem-сертификат с паблик и приват ключами, выданный внешним CA (RapidSSL) с dns именем, совпадающим с внешним именем сервера (ftp.company.ru)
После всех телодвижений подключение по обычному FTP в пассивном режиме и выполнение команд идет прекрасно, а вот по FTPS - нет.
Лог подключения (FileZilla):
15:29:31 Status: Resolving address of ftp.company.ru
15:29:31 Status: Connecting to RealIP:21...
15:29:31 Status: Connection established, waiting for welcome message...
15:29:31 Response: 220 "Welcome to FTP service."
15:29:31 Command: AUTH TLS
15:29:31 Response: 234 Proceed with negotiation.
15:29:31 Status: Initializing TLS...
15:29:31 Status: Verifying certificate...
15:29:31 Status: TLS connection established.
15:29:31 Command: USER **********
15:29:31 Response: 331 Please specify the password.
15:29:31 Command: PASS **********
15:29:31 Response: 230 Login successful.
15:29:31 Command: OPTS UTF8 ON
15:29:31 Response: 200 Always in UTF8 mode.
15:29:31 Command: PBSZ 0
15:29:31 Response: 200 PBSZ set to 0.
15:29:31 Command: PROT P
15:29:31 Response: 200 PROT now Private.
15:29:31 Status: Logged in
15:29:31 Status: Retrieving directory listing...
15:29:31 Command: PWD
15:29:31 Response: 257 "/" is the current directory
15:29:31 Command: TYPE I
15:29:31 Response: 200 Switching to Binary mode.
15:29:31 Command: PASV
15:29:31 Response: 227 Entering Passive Mode (IntIP,197,115).
15:29:31 Status: Server sent passive reply with unroutable address. Using server address instead.
15:29:31 Command: LIST
15:29:33 Error: The data connection could not be established: ECONNREFUSED - Connection refused by server
15:29:40 Error: Directory listing aborted by user
15:29:41 Status: Disconnected from server
Конфиг vsftpd:
ftpd_banner="Welcome to FTP service."
anonymous_enable=NO
listen=YES
background=YES
chroot_local_user=YES
local_enable=YES
local_umask=0002
file_open_mode=0755
chmod_enable=YES
write_enable=YES
download_enable=YES
force_dot_files=YES
max_clients=12
max_per_ip=4
dirmessage_enable=YES
idle_session_timeout=300
port_enable=YES
pasv_enable=YES
#pasv_address=RealIP
pasv_min_port=50000
pasv_max_port=50999
allow_writeable_chroot=YES
xferlog_enable=YES
# SSL
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/usr/local/etc/cert.pem
Пытался:
+ пробовать подключение explicit/implicit и соотв. настройки в vsftpd
+ задать директивой pasv_address в конфиге vsftpd на RealIP (т.к. в логе подключения было "Server sent passive reply with unroutable address")
+ пробовать другой ftp клиент
В любом случае подключение валится на команде LIST со стороны клиента.
Что-то подсказывает, что проблема именно из-за nat-а...