Здравствуйте!
FreeBSD6.0, ipfw, стандартный ftpd в пассивном режиме
Хочу разрешить коннект из глобала до ftp, но не знаю как это сделать. Гугль дал много ответов, но все они заключаются в открытии диапазона портов, на которые настроен ftpd. Мне кажется, что это не самое лучшее решение. Как минимум должен быть второй вариант решения проблемы; да и для чего тогда нужны check-state и keep-state?
В общем хочу проконсультироваться с вами по этому вопросу.
>Здравствуйте!
>FreeBSD6.0, ipfw, стандартный ftpd в пассивном режиме
>Хочу разрешить коннект из глобала до ftp, но не знаю как это
>сделать. Гугль дал много ответов, но все они заключаются в открытии
>диапазона портов, на которые настроен ftpd. Мне кажется, что это не
>самое лучшее решение. Как минимум должен быть второй вариант решения проблемы;
>да и для чего тогда нужны check-state и keep-state?
>В общем хочу проконсультироваться с вами по этому вопросу.Вам бы почитать сначала эти ответы и подумать: "а почему собственно так?". check-state и keep-state тут непричем. Вы знаете что такое пассивный режим? Для работы фтп необходимо 2 соединения. 1-е устанавливает всегда клиент на порт сервера (стандартный 21) по нему идут команды. А по второму идут собственно данные. И вот тут есть 2 типа: активный режим - это когда второе соединения устанавливает сам сервер (что для сервера естественно лучше но не устраивает клиентов) или пассивный режим, когда оба соединения устанавливает клиент. Для того чтобы клиент мог установить ВТОРОЕ соединение и приходится открывать диапазон портов. В любом случае устанавливается НОВОЕ соединение о котором нет данных для проверки по check-state или keep-state. Надеюсь вспомнил все точно и внятно. Если нет знающие люди попровят)
P.S. Эх захотелось пописа'ть)))
>соединения устанавливает клиент. Для того чтобы клиент мог установить ВТОРОЕ соединение
>и приходится открывать диапазон портов. В любом случае устанавливается НОВОЕ соединение
>о котором нет данных для проверки по check-state или keep-state. Надеюсь
>вспомнил все точно и внятно. Если нет знающие люди попровят)Ну по идее, если обработать данные первого соединения, то можно сформировать правила для второго соединения, только вот ipfw помоему этого не умеет. Что во фре умеет это делать, я, к сожалению, не знаю.
А если бы у меня был Linux-сервер с iptables, как там решается такая задача?
>А если бы у меня был Linux-сервер с iptables, как там решается
>такая задача?загрузкой модуля ip_conntrack_ftp (и других, подобных ему для других сервисов).
>>А если бы у меня был Linux-сервер с iptables, как там решается
>>такая задача?
>
>загрузкой модуля ip_conntrack_ftp (и других, подобных ему для других сервисов).В iptables есть состояние RELATED! Думаю, его будет вполне достаточно для решения задачи.
У меня еще вопрос появился - как настроить port range для ftpd? Опять-же гугль говорит
> > net.inet.ip.porthifirst=49152
> > net.inet.ip.porthilast=65535Я так понял это какие-то значения переменных ядра. Только я не понимаю как их задать, чтобы сделать диапазон портов как можно меньше.
Какие есть аналоги ipfw под FreeBSD, имеющие аналог RELATED из iptables?