FTP nat PF Нужна помощь

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
andrei82x
рядовой
Сообщения: 13
Зарегистрирован: 2009-05-06 7:29:37

FTP nat PF Нужна помощь

Непрочитанное сообщение andrei82x » 2009-05-06 8:23:13

Здравствуйте все.

Очень нужна помощь.

Ребята помогите пжл настройть пакетный фильтр.
ситуация такая: шлюз на ос FreeBSD 7.1 и ftp сервер в DMZ
нужно сделать доступ из локалки к фтп.

ext_if="vic2" # ext
int_if="vic0" # lan
dmz="vic1"
#lan="192.168.140.0/24"
ftp_server="192.168.198.133"

set skip on lo0
scrub in

nat on $ext_if from !($ext_if) -> ($ext_if:0)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 21 -> ($dmz)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 20 -> ($dmz)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 22 -> ($dmz)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 80 -> ($dmz)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 53 -> ($dmz)
nat on $dmz from 192.168.140.0/24 to 192.168.198.133 port 49151:65535 -> ($dmz) port 49152:65535


block in log all
block out log all

pass quick on $dmz proto icmp all
pass quick on $dmz proto tcp from any to any port { 80, 22, 53, 49152:65535, 20, 21 > 49151 } flags S/SA keep state
pass quick on $dmz proto udp from any to any port { 137, 138, 53, 20, 21, 53 } keep state

pass quick on $int_if proto icmp all
pass quick on $int_if proto tcp from any to any port { 80, 22, 53, 49152:65535, 20, 21 > 49151 } flags S/SA keep state
pass quick on $int_if proto udp from any to any port { 137, 138, 20, 21, 53 } keep state




Доступ с локалки к фтп (в DMZ) получается только с помощью пассивного режима, а мне очень нужно чтобы при использовании активного режима у меня не появлялась ошибка
(пытаюсь зайти через FAR)
500 Illegal PORT range rejected
:unknown:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение princeps » 2009-05-06 8:28:34

А ftp-сервер у тебя какой? Может на нем диапазон портов для активного режима настроить?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

andrei82x
рядовой
Сообщения: 13
Зарегистрирован: 2009-05-06 7:29:37

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение andrei82x » 2009-05-06 8:44:33

Re: FTP nat PF Нужна помощь

princeps » 2009-05-06 9:28:34
А ftp-сервер у тебя какой? Может на нем диапазон портов для активного режима настроить?
Ftp сервер у меня также на FreeBSD ftp стандартный. Я отключал фаервол на стороне фтп, все равно не шло.

princeps подскажи пжл в какую сторону копать.??

D_CPU350
рядовой
Сообщения: 39
Зарегистрирован: 2008-06-11 17:06:40
Контактная информация:

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение D_CPU350 » 2009-05-06 8:59:13

man ftp-proxy

P.S. еще можно задать шлюзу еще один IP и сделать

Код: Выделить всё

DMZ_INT_IP="192.168.140.99" #Еще один IP адрес который нужно повесить шлюзу
binat on $int_if from $ftp_server to any -> $DMZ_INT_IP
У меня именно так и работает. не стал возится с ftp-proxy
Проблема в том, что в активном режиме: "В ответ, сервер соединяется с указанным портом данных клиента из своего локального порта данных 20." а этот указанный порт сами знаете откуда берется :st:
Изображение

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение princeps » 2009-05-06 10:45:04

мне кажется, стоит поставить какой-нибудь другой ftp-сервер, в котором возможностей конфигурирования побольше, в ftpd, кажется, нельзя указывать диапазон портов, хотя я могу ошибаться. На форуме как-то поднималась тема выбора ftp-сервера.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

andrei82x
рядовой
Сообщения: 13
Зарегистрирован: 2009-05-06 7:29:37

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение andrei82x » 2009-05-06 14:33:27

D_CPU350

Спасибо
сейчас попробую

:sorry:

andrei82x
рядовой
Сообщения: 13
Зарегистрирован: 2009-05-06 7:29:37

Re: FTP nat PF Нужна помощь

Непрочитанное сообщение andrei82x » 2009-05-07 7:30:16

Большое спасибо D_CPU350

Получилось решить эту проблему через ftp-proxy
сейчас хочу сделать все это на binat
почему? не знаю не могу объяснить, наверное руки чешутся.
D_CPU350 был прав возьни много от прокси.


Решение данной задачи нашел в инете.
Некий osipen сделал нижеуказанное.

Код: Выделить всё

На самом деле тут просто были грабли, с запуском ftp-proxy. 

Начнем с начала! 
Ставим ftp-proxy ( в дефолтной фре его нет ) Код:

# cd /usr/ports/ftp/ftp-proxy 
# make install 


Далее важный момент где я споткнулся. 
Запускать надо не через Inetd почему не понятно. 
В rc.conf добавляем: Код:

# ee /etc/rc.conf 
# Разрешаем запуск ftp-proxy 
ftpproxy_enable="YES" 
# Проксируем на ftp в моем случае это 192.168.0.250, ключ –R обязателен служит для перенаправления. 
ftpproxy_flags="-R 192.168.0.250" 


ну далее: 

В pf.conf ничего сильно не изменилось, но все равно посмотрите. Код:

# ee /etc/pf.conf 

prov_if="rl0" # Внешняя сетевуха 
int_if="fxp0" # Внутренняя сетевуха 
ftp_server="192.168.0.250" # фтп сервер 
internal_net="{192.168.0.0/24}" # локальная сеть 
scrub in all 

nat on $prov_if from $internal_net to any -> $prov_if 

# Вот правила для проксиравания, но тут так заморочка мозги поразмять? вол линк кому интересно почитайте 
# http://house.hcn-strela.ru/BSDCert/BS...-ftp-modes­
nat-anchor "ftp-proxy/*" 
rdr-anchor "ftp-proxy/*" 
rdr pass on $prov_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021 

# Если не хотите использовать ftp-proxy просто расскоментируйте и уберите выше стоящие правила, только не жалуйтесь потом что 
# ftp работает как то криво и медленно 
# rdr on $prov_if proto tcp from any to any port ftp-data -> $ftp_server port 21 
# rdr on $prov_if proto tcp from any to any port 21 -> $ftp_server port 21 
# rdr on $prov_if proto tcp from any to any port 49152:65535 -> $ftp_server port 49152:65535 

pass in all 
pass out all 

anchor "ftp-proxy/*" 



В итоге действительно по сравнению с nat скорость даже визуально возврасла.
[/code]


Ребята реально все работает. :Yahoo!:
Все спасибо.
Тема закрыта.