Имеется:
на одном конце сервер vsftpd на CentOS 7 с одной eth и адресом 192.168.1.100 и слушает по нестандартному порту 45632(например)
сервер находится за NAT'ом, наружу проброшен порт. фаервол iptables с нарезкой портов. клиенты снаружи нормально достукиваются причем разными способами: браузерами, FileZilla, Total Commander, etc. и вроде все в порядке.
недавно у нас появился партнер, с которым нам необходимо обмениваться данными через ФТП. это довольно объемные выгрузки SQL.
соответственно на втором конце имеем клиентскую часть в виде Microsoft BizTalk Server 2013 с адаптером ФТП и адресом вида 192.168.2.10
клиент находится тоже за NAT'ом и кроме того закрыт KerioСитуация:
клиент стучится на ФТП. все команды проходят до момента запроса списка каталогов. причем ФТП отдает список но клиент его не воспринимает. после 3 запросов клиент командует перевод в пассивный режим и как только ФТП в него переходит, клиент командует quit вместо retr или stor. лог "диалога" прилагаю ниже.
Что пробовали:
меняли порт сервера на стандартный 21й - связь тут же налаживается и обмен проходит идеально. при возврате обратно на нестандартный снова имеем проблему. но оставить стандартный 21й не можем из соображений безопасности и кроме того на ФТП ходит еще порядка 100 клиентов и менять настройки у всех из-за одного - ИМХО бред. пробовал отключать iptables со стороны ФТП, результата нет.
сразу оговорюсь я нахожусь на стороне ФТП, с этого конца могу дать любую инфу(в разумных пределах конечно :) ) и конфиги. за вторую сторону могу только транслировать ответы админа партнеров.
Вопрос:
в какую сторону посоветуете копать. понятное дело что готовое решение не прошу, слишком много допущений и неизвестных.
Заранее спасибо.
Собственно лог:
< 220 Welcome to ХХХХХ FTP server!-наш сервер высылает приветствие-баннер
> USER имя юзера-вы представляетесь
< 331 Please specify the password.-мы просим пасс для аутентификации
> PASS xxxx - вы аутентифицируетесь
< 230 Login successful.- мы подтверждаем
> PWD - вы просите листинг домашней папки
< 257 "/" - мы указываем вам вашу корневую папку.
> PWD - снова вы просите листинг домашней папки
< 257 "/" - мы отвечаем тем же
> PWD - 3й запрос домашней папки
< 257 "/" - мы отвечаем тем же
> SYST - вы запрашиваете тип нашей системы
< 215 UNIX Type: L8 мы отвечаем что мы UNIX
> PWD - вы снова просите домашнюю папку
< 257 "/" - мы вам ее говорим
> CWD out - вы просите сменить папку на "out"
< 250 Directory successfully changed. - мы рапортуем об успешной смене
> PWD - запрос листинга папки "out"
< 257 "/out" - мы отвечаем списком файлов/папок
> TYPE A - вы выполняете запрос на переход в режим ASCII
< 200 Switching to ASCII mode. - мы переходим в режим ASCII
> PASV - вы просите перейти в пассивный режим для начала трансфера данных
< 227 Entering Passive Mode (192,168,ХХ,ХХХ,ХХХ,ХХХ). - мы переходим в пассивный режим и сообщаем вам наш айпи(192.168.ХХ.ХХХ) и порт Passive Mode (ХХХ*256+181=ХХХХХ)
> QUIT - вы командуете выход
< 221 Goodbye. - мы его выполняем
далее все повторяется в той же последовательности