URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78773
[ Назад ]

Исходное сообщение
"ipfw & passive ftp"

Отправлено GHopper , 17-Фев-08 12:46 
Здравствуйте!
FreeBSD6.0, ipfw, стандартный ftpd в пассивном режиме
Хочу разрешить коннект из глобала до ftp, но не знаю как это сделать. Гугль дал много ответов, но все они заключаются в открытии диапазона портов, на которые настроен ftpd. Мне кажется, что это не самое лучшее решение. Как минимум должен быть второй вариант решения проблемы; да и для чего тогда нужны check-state и keep-state?
В общем хочу проконсультироваться с вами по этому вопросу.

Содержание

Сообщения в этом обсуждении
"ipfw & passive ftp"
Отправлено Kos , 17-Фев-08 13:26 
>Здравствуйте!
>FreeBSD6.0, ipfw, стандартный ftpd в пассивном режиме
>Хочу разрешить коннект из глобала до ftp, но не знаю как это
>сделать. Гугль дал много ответов, но все они заключаются в открытии
>диапазона портов, на которые настроен ftpd. Мне кажется, что это не
>самое лучшее решение. Как минимум должен быть второй вариант решения проблемы;
>да и для чего тогда нужны check-state и keep-state?
>В общем хочу проконсультироваться с вами по этому вопросу.

Вам бы почитать сначала эти ответы и подумать: "а почему собственно так?". check-state и keep-state тут непричем. Вы знаете что такое пассивный режим? Для работы фтп необходимо 2 соединения. 1-е устанавливает всегда клиент на порт сервера (стандартный 21) по нему идут команды. А по второму идут собственно данные. И вот тут есть 2 типа: активный режим - это когда второе соединения устанавливает сам сервер (что для сервера естественно лучше но не устраивает клиентов) или пассивный режим, когда оба соединения устанавливает клиент. Для того чтобы клиент мог установить ВТОРОЕ соединение и приходится открывать диапазон портов. В любом случае устанавливается НОВОЕ соединение о котором нет данных для проверки по check-state или keep-state. Надеюсь вспомнил все точно и внятно. Если нет знающие люди попровят)
P.S. Эх захотелось пописа'ть)))


"ipfw & passive ftp"
Отправлено PavelR , 17-Фев-08 20:05 

>соединения устанавливает клиент. Для того чтобы клиент мог установить ВТОРОЕ соединение
>и приходится открывать диапазон портов. В любом случае устанавливается НОВОЕ соединение
>о котором нет данных для проверки по check-state или keep-state. Надеюсь
>вспомнил все точно и внятно. Если нет знающие люди попровят)

Ну по идее, если обработать данные первого соединения, то можно сформировать правила для второго соединения, только вот ipfw помоему этого не умеет. Что во фре умеет это делать, я, к сожалению, не знаю.



"ipfw & passive ftp"
Отправлено GHopper , 18-Фев-08 05:10 
А если бы у меня был Linux-сервер с iptables, как там решается такая задача?

"ipfw & passive ftp"
Отправлено PavelR , 18-Фев-08 07:17 
>А если бы у меня был Linux-сервер с iptables, как там решается
>такая задача?

загрузкой модуля ip_conntrack_ftp (и других, подобных ему для других сервисов).


"ipfw & passive ftp"
Отправлено GHopper , 18-Фев-08 08:38 
>>А если бы у меня был Linux-сервер с iptables, как там решается
>>такая задача?
>
>загрузкой модуля ip_conntrack_ftp (и других, подобных ему для других сервисов).

В iptables есть состояние RELATED! Думаю, его будет вполне достаточно для решения задачи.

У меня еще вопрос появился - как настроить port range для ftpd? Опять-же гугль говорит
> > net.inet.ip.porthifirst=49152
> > net.inet.ip.porthilast=65535

Я так понял это какие-то значения переменных ядра. Только я не понимаю как их задать, чтобы сделать диапазон портов как можно меньше.

Какие есть аналоги ipfw под FreeBSD, имеющие аналог RELATED из iptables?