проброс ftp в версии 2.2



  • После обновления до 2.2 перестал работать проброс с WAN на внутренний FTP сервер. откатываться? или есть какие новые тонкости?



  • Аналогично, из локалки на внешние ftp через NAT и снаружи на мой ftp перестало бегать. Я в легком шоке как такое обновление можно было выложить для рабочих шлюзов (squid+Lightsquid перестали работать, ftp через NAT перестал), причем по ftp это похоже осознанно сделали "pfSense 2.2-RELEASE does not include an FTP Proxy" (https://doc.pfsense.org/index.php/FTP_without_a_Proxy).
    В итоге решил пока так:
    1. Для клиентов из локалки наружу - перенастроил их не через NAT, а через Squid3 (он поддерживает ftp проксирование).
    2. Для клиентов снаружи на мой ftp сервер - на ftp сервере указал диапазон портов для пассивных соединений клиентов и его пробросил на ftp сервер с WAN интерфейса шлюза (потому что в 2.1 релизе автоматом открывались и пробрасывались порты пассивного соединения передачи данных ftp протокола, а в 2.2 придется по старинке вручную жестко закреплять пул портов проброса)



  • @lamerrrr:

    После обновления до 2.2 перестал работать проброс с WAN на внутренний FTP сервер. откатываться? или есть какие новые тонкости?

    В каком режиме работает ftp ?



  • Аналогично, из локалки на внешние ftp через NAT и снаружи на мой ftp перестало бегать. Я в легком шоке как такое обновление можно было выложить для рабочих шлюзов (squid+Lightsquid перестали работать, ftp через NAT перестал), причем по ftp это похоже осознанно сделали "pfSense 2.2-RELEASE does not include an FTP Proxy" (https://doc.pfsense.org/index.php/FTP_without_a_Proxy).
    В итоге решил пока так:
    1. Для клиентов из локалки наружу - перенастроил их не через NAT, а через Squid3 (он поддерживает ftp проксирование).

    http://peterhost.ru/wiki/Активный-и-пассивный-режим-работы-FTP/

    В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

    Попробуйте разрешить временно на адрес внешнего ftp всё tcp и попробовать подключиться.

    Что при этом в логах fw ?

    2. Для клиентов снаружи на мой ftp сервер - на ftp сервере указал диапазон портов для пассивных соединений клиентов и его пробросил на ftp сервер с WAN интерфейса шлюза (потому что в 2.1 релизе автоматом открывались и пробрасывались порты пассивного соединения передачи данных ftp протокола, а в 2.2 придется по старинке вручную жестко закреплять пул портов проброса)

    Странно, у меня и в 2.0.х - 2.1.х приходилось для пассива порты явно пробрасывать. Ибо не работало и с ftp proxy.

    P.s. Как вариант, поставить 2.2 с нуля и проверить работу проблемных мест
    P.p.s. Попробуйте set "Firewall Optimization Options" to Conservative under System -> Advanced



  • @paulroot:

    Аналогично, из локалки на внешние ftp через NAT и снаружи на мой ftp перестало бегать. Я в легком шоке как такое обновление можно было выложить для рабочих шлюзов (squid+Lightsquid перестали работать, ftp через NAT перестал), причем по ftp это похоже осознанно сделали "pfSense 2.2-RELEASE does not include an FTP Proxy" (https://doc.pfsense.org/index.php/FTP_without_a_Proxy).
    В итоге решил пока так:
    1. Для клиентов из локалки наружу - перенастроил их не через NAT, а через Squid3 (он поддерживает ftp проксирование).
    2. Для клиентов снаружи на мой ftp сервер - на ftp сервере указал диапазон портов для пассивных соединений клиентов и его пробросил на ftp сервер с WAN интерфейса шлюза (потому что в 2.1 релизе автоматом открывались и пробрасывались порты пассивного соединения передачи данных ftp протокола, а в 2.2 придется по старинке вручную жестко закреплять пул портов проброса)

    О! Всё так и есть, лучше не напишешь :( Я на момент создания поста еще не столкнулся с "клиентской частью"…

    @werter:

    @lamerrrr:

    После обновления до 2.2 перестал работать проброс с WAN на внутренний FTP сервер. откатываться? или есть какие новые тонкости?

    В каком режиме работает ftp ?

    И так и так все не работает. Раньше эксплуатировался в пассивном, был проброшен только 21 порт и ВСЁ!
    теперь на одном из шлюзов пробросил 21,20 и диапазон, на нем заработало в активном режиме с машин имеющих белые адреса, а которые за любым НАТом так и не работают… В пассивном так и не работает.
    жуть :(



  • теперь на одном из шлюзов пробросил 21,20 и диапазон, на нем заработало в активном режиме с машин имеющих белые адреса, а которые за любым НАТом так и не работают… В пассивном так и не работает.
    жуть

    Покажите скрины правил fw на этом шлюзе.



  • http://peterhost.ru/wiki/Активный-и-пассивный-режим-работы-FTP/

    В обоих направлениях используется пассивный режим ftp (как самый удобный).

    Что при этом в логах fw ?

    Без поддержки фаером трассировки комплексного ftp протокола (чтения номера порта ftp-data внутри пакета и последующее автоматическое открытие этого порта с NAT), что внутрь, что наружу ftp клиенты после нормального общения по 21 порту управления пытаются подключится к пассивным (непривилегированным,  высоким) портам данных, указанным ftp сервером, но не проходят фаервол (т.к. в фаерволе правило о проходе ftp-data автоматически не появляется), в логе фаера соответственно - отметка о блокировке этого соединения клиента (при этом ftp клиент внутри или снаружи неважно - ответа на свой посланный TCP SYN не получит никогда).
      Решение было давно найдено, либо фаер должен поддерживать трассировку протокола ftp, например iptables помню с параметром related в правиле это делал (модуль IPTABLES_MODULES="ip_nat_ftp" http://www.tudimon.com/2009/04/16/razreshenie-dostupa-k-ftp-sredstvami-iptables.html). Здесь pf думаю не дурнее iptables. Это и был вариант через NAT в 2.1. Надо в настройках pf фаера pfSense 2.2 поковырятся, похоже они там отключили поддержку автоматической трассировки ftp-data через фаер.

    Либо второй вариант, через специальный ftp-proxy демон/компонент прокси, проводящий эти соединения через фаер от своего имени (по сути выполняющий трассировку ftp за фаер).

    Странно, у меня и в 2.0.х - 2.1.х приходилось для пассива порты явно пробрасывать. Ибо не работало и с ftp proxy.

    У меня всю линейку 2.1 пассивный ftp автоматом через NAT фаером отрабатывался без явного задания пула пассивных портов и их проброса.

    P.p.s. Попробуйте set "Firewall Optimization Options" to Conservative under System -> Advanced

    Ок



  • В обоих направлениях используется пассивный режим ftp (как самый удобный).

    Направление только одно - это режим работы ftp-сервера.



  • @werter:

    В обоих направлениях используется пассивный режим ftp (как самый удобный).

    Направление только одно - это режим работы ftp-сервера.

    В "обоих направлениях" у меня имеется в виду следующие противоположные относительно шлюза pfSense направления:
    1. ftp клиенты из LAN на ftp серверы в Интернете
    2. ftp клиенты из Интернета на мой ftp сервер в DMZ
    Для каждого направления в 2.1.x было одно автоматическое решение (модуль трассировки ftp), в 2.2 разные решения.
    А если в п.1 внешний ftp сервер работает в активном режиме, пусть идет в пень, не собираюсь в фаере вручную настраивать/разрешать ему проход ко мне в LAN к ftp клиентам. Никто еще не жаловался.

    Насчет модуля трассировки ftp в моем предыдущем посте - в дистрибутиве pfSense 2.1.4 в файле usr\local\share\protocols\ftp.pat упоминается его необходимость (tracking module):

    Usually runs on port 21.  Note that the data stream is on a dynamically

    assigned port, which means that you will need the FTP connection

    tracking module in your kernel to usefully match FTP data transfers.