Проблемы установки, настройки и работы Правильной Операционной Системы
Модератор: terminus
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
andrei82x
- рядовой
- Сообщения: 13
- Зарегистрирован: 2009-05-06 7:29:37
Непрочитанное сообщение
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 
andrei82x
-
Хостинг HostFood.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
- Откуда: Сочи, Москва
-
Контактная информация:
Непрочитанное сообщение
princeps » 2009-05-06 8:28:34
А ftp-сервер у тебя какой? Может на нем диапазон портов для активного режима настроить?
princeps
-
andrei82x
- рядовой
- Сообщения: 13
- Зарегистрирован: 2009-05-06 7:29:37
Непрочитанное сообщение
andrei82x » 2009-05-06 8:44:33
Re: FTP nat PF Нужна помощь
princeps » 2009-05-06 9:28:34
А ftp-сервер у тебя какой? Может на нем диапазон портов для активного режима настроить?
Ftp сервер у меня также на FreeBSD ftp стандартный. Я отключал фаервол на стороне фтп, все равно не шло.
princeps подскажи пжл в какую сторону копать.??
andrei82x
-
D_CPU350
- рядовой
- Сообщения: 39
- Зарегистрирован: 2008-06-11 17:06:40
-
Контактная информация:
Непрочитанное сообщение
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." а этот
указанный порт сами знаете откуда берется

D_CPU350
-
princeps
- майор
- Сообщения: 2684
- Зарегистрирован: 2007-09-25 10:20:59
- Откуда: Сочи, Москва
-
Контактная информация:
Непрочитанное сообщение
princeps » 2009-05-06 10:45:04
мне кажется, стоит поставить какой-нибудь другой ftp-сервер, в котором возможностей конфигурирования побольше, в ftpd, кажется, нельзя указывать диапазон портов, хотя я могу ошибаться. На форуме как-то поднималась тема выбора ftp-сервера.
princeps
-
andrei82x
- рядовой
- Сообщения: 13
- Зарегистрирован: 2009-05-06 7:29:37
Непрочитанное сообщение
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]
Ребята реально все работает.
Все спасибо.
Тема закрыта.
andrei82x