Доступ к локальному ftp через WAN?
-
@werter Любая сеть, которая не "снаружи" провоцирует глюки при соединении с FTP. Клиент подключается нормально к серверу, нормально логинится, но дальше не получает ответ и сессия как-бы зависает. В терминале ничего не происходит.
-
@luha В логах фтп-сервера что при этом? Не может быть , чтобы там ничего не было.
-
@werter На вот, полюбуйся что творится.
Статус: Определение IP-адреса для ftp.bobik.com
Статус: Соединяюсь с 192.168.1.18:21...
Статус: Соединение установлено, ожидание приглашения...
Статус: Небезопасный сервер, не поддерживает FTP через TLS.
Статус: Авторизовались
Статус: Получение списка каталогов...
Команда: PWD
Ответ: 257 "/" is the current directory
Команда: TYPE I
Ответ: 200 Type set to I
Команда: PASV
Ответ: 227 Entering Passive Mode (XXX,XX,XX,XX,XXX,XX). - тут я подправил адрес
Команда: MLSD
Ошибка: Соединение прервано после 20 секунд неактивности
Ошибка: Не удалось получить список каталогов
Статус: Отключен от сервера
Статус: Определение IP-адреса для ftp.bobik.com
Статус: Соединяюсь с 192.168.1.18:21...
Статус: Соединение установлено, ожидание приглашения...
Статус: Небезопасный сервер, не поддерживает FTP через TLS.
Статус: Авторизовались
Статус: Получение списка каталогов...... и так бесконечно.
-
@werter А вот я соединяюсь с vsftpsd сервером
Статус: Определение IP-адреса для ftp.tuzik.com
Статус: Соединяюсь с 192.168.1.23:21...
Статус: Соединение установлено, ожидание приглашения...
Статус: Небезопасный сервер, не поддерживает FTP через TLS.
Статус: Сервер не поддерживает символы не ASCII.
Статус: Авторизовались
Статус: Получение списка каталогов...
Статус: Список каталогов "/" извлечен))
-
@luha
На втром листинге нет пассив моде.Покажите iptables -L -v -n на проблемном сервере.
-
@werter Браво! Я же говорю - два сервера. На одном работает на другом нет.
Оба настроены с пассивным режимом. Вот настройки со второго сервера:
by luha
** Use the hostname in the PASV response (DNS must be setup and match!)
pasv_addr_resolve=YES
** Enable Passive Mode
pasv_enable=YES
** Set the passive port range (1000 ports)
pasv_min_port=20000
pasv_max_port=20999 -
@luha
Есть предположение что при переходе в пассивный режим, ваш FTP-сервер переключается на порт который заблокирован фаерволом.Я могу посоветовать временно отключить фаервол для проверки
Проверь этот момент.
-
@luha
https://docs.netgate.com/pfsense/en/latest/recipes/ftp-without-proxy.html# Do not allow the client to use PORT **port_enable=NO** # Use the hostname in the PASV response (DNS must be setup and match!) pasv_addr_resolve=YES # Enable Passive Mode pasv_enable=YES # Set the passive port range (1000 ports) pasv_min_port=20000 pasv_max_port=20999
-
@werter Я думаю что клиент в случае с proftpd получает жёстко установленный адрес IP и в локальной сети это создаёт проблемы. У vsftpd не надо жёстко указывать IP, он его сам вычисляет, видимо сам находит нужный в зависимости какой адрес видит клиент.
@werter Я с этих доков и брал эти настройки. ))
Ссылку на доки выше кинул. -
** Use the hostname in the PASV response (DNS must be setup and match!)
pasv_addr_resolve=YESПолучается, что клиент получает ВНЕШНЕЕ имя фтп-сервера и пытается работать с ним. Поставь там NO, рестартани службу фтп и проверь. Должно сработать внутри сети.
Или настраивай split dns для разрешения имени фтп-сервера в ЛОКАЛЬНЫЙ ip.
-
@werter Да. Всё именно так. Клиент получает внешний адрес и пытается работать с ним. Если выключить то будет работать и снаружи и изнутри. Но только для тех клиентов у кого активный режим действует. Остальные идут лесом плакать.
Ладно. Я пойду работать. У меня проблем нету, мы с этого FTP считываем по локалке папки по SMB.
-
@luha said in Доступ к локальному ftp через WAN?:
Да. Всё именно так. Клиент получает внешний адрес и пытается работать с ним. Если выключить то будет работать и снаружи и изнутри. Но только для тех клиентов у кого активный режим действует. Остальные идут лесом плакать.
Что и требовалось доказать.
Настраивай сплит днс и спи спокойно. И снаружи и ВНУТРИ все будет работать в пассивном режиме.
-
@werter У нас свой DNS, всё настроено, имена правильно разрешаются, дело совсем не в этом. Не работает по причине которую ты сам выше озвучил. Пассивный режим мешает тем что там IP внешний в настройках.
-
Имя РАЗРЕШАЕТСЯ в IP. Если внутри имя будет разрешаться в ЛОКАЛЬНЫЙ ip для ЛОКАЛЬНЫХ клиентов и во ВНЕШНИЙ ip для ВНЕШНИХ клиентов, то все будет ок.
-
@werter Внутри имя разрешается внутренним сервером DNS во внутренний IP. Снаружи имя разрешается внешними публичными серверами DNS во внешний IP. Если бы были проблемы с разрешением имени то не нашло бы сервера, не залогинилось бы и т.д.. А он логинит и потом сливается! Короче proftpd лучше не использовать с PF - вот такой можно делать вывод. Юзайте vsftpd
-
Спасибо за проявленное внимание к проблеме.
Именно в моём случае проблема доступа в локальной сети по локальному IP сервера в пассивном режиме кроется в нерабочей галочке "Don't use external IP for local connection".Почему же она "не работает"?
Потому что на этой фирме ещё задолго до моего трудоустройства адресация локальной сети была в диапазоне, отличающимся от стандарта RFC1918 (передаю привет всем причастным к этому товарищам).
Из-за того, что согласно международным стандартам адресации, IP, c которого пытается зайти программа-клиент в локальной сети, не является частным сервер Filezilla считает, что подключение в пассивном режиме идёт откуда-то извне и не соединяет.Так что осуществлю давно задуманное мной желание сделать локальную сеть в правильном диапазоне. Осталось лишь договориться с руководством когда можно сделать простой в работе фирмы, т.к. у нас круглосуточный режим работы предприятия.
Перевод на нормальную адресацию хотел сделать уже года 2, но вроде всё это время проблем не было. Поэтому идти договариваться с руководством насчёт приостановки деятельности предприятия на несколько часов желания не было. А теперь есть повод.P.S. Хотя сегодня ночью мне удалось сделать так, чтобы работало напрямую по локальной сети. На основном ftp-сервере filezilla и на клиентской машине с программой задал дополнительные ip из стандартизированного диапазона частных сетей. И подключение с доп. адреса клиентской программы на доп. адрес FZ осуществляется без проблем. Но это чёртов костыль, поэтому перестройке адресации в LAN быть!
-
@igor-filth said in Доступ к локальному ftp через WAN?:
Потому что на этой фирме ещё задолго до моего трудоустройства адресация локальной сети была в диапазоне, отличающимся от стандарта RFC1918 (передаю привет всем причастным к этому товарищам).
Найти предыдущего. Набить морду. Отобрать трудовую, написать в ней матом отзыв.
-
@luha said in Доступ к локальному ftp через WAN?:
Внутри имя разрешается внутренним сервером DNS во внутренний IP
И ip этого ДНС клиент получает подключившись по ви-фи себе в кач-ве ДНС? Или он получает в кач-ве ПЕРВОГО ДНС ip ви-фи роутера? Сдается мне, что последнее.
Я бы перепроверил ) -
@werter У нас на всю контору только один сервер DHCP и он выдаёт настройки. Все клиенты получают адрес внутреннего сервера DNS и там регистрируются, чтобы я видел кто у нас тут чем занят. Даже те что по VPN подключаются попадают на эту штуку.
Поздравим топикстартера с успешным осознанием причин и механизмов и желаем успехов в настройке. Я бы не догадался просто так что у них диапазон из публичных.
-
У нас на всю контору только один сервер DHCP
И ви-фи работает как простая АП?
Попробуйте в proftpd.conf добавить:
...
ExtendedLog /var/log/ftp.log
TransferLog /var/log/xferlog
SystemLog /var/log/syslog.log
...Сделать рестарт proftpd, запустить tail -F -n 20 /var/log/ftp.log и попробовать подключиться к фтп с проблемного клиента. Возможно, ситуация и прояснится.
Зы. Покажите вывод
sed -n '/<Global/,//Global/p' /etc/proftpd.conf /etc/proftpd.d/* | grep PassivePorts