Доступ к локальному ftp через WAN?
-
@werter )))
Сервер это линукс машина в шкафу. Она в работе уже много лет.
Клиенты это фотографы по всему миру, которые работают в разных полевых условиях, начиная от встречи глав государств и заканчивая удобрением грядок в нагорье Испании. Они берут зеркалку NIKON, у неё есть втроенная функция описать IPTC и выслать на FTP.
В какой винде мне надо что проверить, какие порты, какой антивирус и как поступить с клиентами? И почему годами работало нормально, а поставили PF и перестало?
-
@luha said in Доступ к локальному ftp через WAN?:
Сервер это линукс машина в шкафу. Она в работе уже много лет.
ПО на нем обновляли? apt update\yum update давно делали ?
Давайте доступ - разберемся вместе. Самому интересно. В сказки давно не верю, извините.
ЗЫ. Passive mode на Никонах - https://www.youtube.com/watch?t=238. Другой вопрос, что порты для пассива могут быть закрыты в том месте, где клиент подключается. Но это проблема не фтп-сервера и не пф.
-
@werter Да всё у нас с сервером FTP нормально. Там свежее актуальное ПО. Рядом стоит другой сервер, тоже свежее ПО, но вместо proftpd там используется другой пакет - vsftpd (кстати его упоминают в доках PF). И на нём работает как в локалке, так и снаружи. А у proftpd или надо отключить пассивный режим или не будет работать в локалке.
Из конфига proftpd:
"If your host was NATted, this option is useful in order to allow passive tranfers to work. You have to use your public address and opening the passive ports used on your firewall as well."MasqueradeAddress 000.000.000.000 (тут внешний ip сервера, я спрятал ноликами)
Я с сервером сам могу разобраться, но спасибо большое за предложение.
Вот. Всётаки пришлось поискать ссылку, ато вижу начинается недопонимание в наших рядах:
https://docs.netgate.com/pfsense/en/latest/recipes/ftp-without-proxy.html -
@luha
https://www.dpreview.com/forums/post/63624307The issue is definately a question of active vs. Passive FTP.
Passive FTP works by: Client calls server on port 21. Here they negotiate a dataport the Client should use to contact the server on to transmit data. If you are accessing Internet via a NAT (You do - almost nothing is Public when it comes to clients), the firewall/NAT device needs to allow that port outbound as well - ussually that’s not a big problem - which is why passive FTP mostly works.
Active FTP works by: The same process, but the negotiation ends up with a port that the CLIENT needs to open so the server can access the client.. If you are behind a firewall/NAT device, that device needs to “inspect” the FTP session to see which port the server/client agrees upon and open that port up (Otherwise inbound ports are never open). It also needs to do a more advanced NAT as it needs to replace something within the packet for the session to work (apart from sender IP). This is a HORRIBLE HORRIBLE solution, and basically never works on Carriergrade NAT solutions that many ISP use, and is starting to be blocked by default on most homegrade firewalls as well because it’s a massive security hole.
-
@werter Да. У никонов странно реализовано. Причём бывает что в одной сети только активный фурычит, а в другой только пассивный. Когда появляется новый фотограф то я первое время с ним устаю учить как эти настройки менять.
-
@luha
И написал ,что на пф надо открывать TCP\21 + перечень портов для пассива ТАКОЙ ЖЕ как на фтп-сервере. Всё. Больше ничего не надо делать со стороны сервера и пф. -
@werter Всё открыто как надо. Я этой фигнёй несколько дней занимался, всё надеялся поправить как-то. Пойми - оно работает. Но только снаружи.
-
@luha
Вкл. дампинг трафика и смотри. Клиент же через ви-фи к фтп подключается? На ви-фи он не в ГОСТЕВОЙ сети? -
@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?:
Да. Всё именно так. Клиент получает внешний адрес и пытается работать с ним. Если выключить то будет работать и снаружи и изнутри. Но только для тех клиентов у кого активный режим действует. Остальные идут лесом плакать.
Что и требовалось доказать.
Настраивай сплит днс и спи спокойно. И снаружи и ВНУТРИ все будет работать в пассивном режиме.