Страница 1 из 1

Проброс портов для фтп. Need Help

Добавлено: 2008-01-04 23:03:37
RaDiST_1977
Доброго времени суток
Есть одна проблема, суть ее в следующем: необходимо вывести во внешний мир фтп сервак из локалки путем проброса портов через нат на шлюзе
На шлюзе - ось miniBSD 4.10(обрезанная фряха, грузится с CF карты), ipfw+natd
дело в том, что убив кучу времени и сил, мне вышеуказанную проблему разрешить так и не удалось, порты как были закрыты снаружи так закрытыми и остались, следовательно достучпаться до фтп невозможно...
Поиском по форуму пользовался, все что нашел пробовал, но непомогло...
привожу конфиг фаера со шлюза, может кто подскажет, где в нем косяк

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

#!/bin/sh
###################################################################
fw="  /sbin/ipfw -q  "
natd=" /sbin/natd "
ifout="  rl0  "
ifuser=" rl1 "
intranet=" 192.168.0.0/24  "
extip=" xx.xx.xx.xx "
loop="  lo0  "
ftp_ports="  21,49152-65535  "
ftpaddr=" 192.168.0.2 "
##################################################################
${fw} -f flush
${fw} -f pipe flush
${fw} -f queue flush
##################################################################
${fw} add 100 check-state
${fw} add 150 allow ip from any to any via ${loop}
${fw} add 200 allow ip from me to any keep-state
${fw} add 240 allow icmp from any to me icmptypes 0,8,11
#################################################################
#SSH
${fw} add 270 allow tcp from any to me 22 via ${ifuser}

#NAT
killall -9 natd
${natd} -m -s -u -n ${ifout} -p 8668
${natd} -m -s -u -n ${ifout} -p 8669 -redirect_port tcp ${ftpaddr}:21 21 -redirect_port tcp ${ftpaddr}:49152-65535 49152-65535 #собственно проброс портов для #фтп(passive mode)
${fw} add 310 divert 8869 ip from ${extip} to ${ftpaddr}  in via ${ifout}
${fw} add 320 divert 8869 ip from ${ftpaddr} to ${extip} out via ${ifout}
${fw} add 330 divert 8868 ip from ${intranet} to any out via ${ifout}
${fw} add 340 divert 8668 ip from any to ${extip} in via ${ifout}
#
#
#Разрешающие правила дла фтп
${fw} add 350 allow tcp from any to ${ftpaddr} 21 via ${ifout}
${fw} add 360 allow tcp from any to ${ftpaddr} 49152-65535 via ${ifout}
#
#Local Intranet
${fw} add 350 allow ip from any to ${intranet} in via ${ifout}
${fw} add 360 allow ip from any to ${intranet} out via ${ifuser}
${fw} add 370 allow ip from ${intranet} to any in via ${ifuser}
${fw} add 380 allow ip from ${extip} to any out via ${ifout}

Траффик из локалки в инет и обратно ходит без проблем, а вот с фтп - полный гемор :cry:

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 0:02:14
Alex Keda
а какими правилами пакетики рубялся - смотрел?

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 0:20:54
RaDiST_1977
lissyara писал(а):а какими правилами пакетики рубялся - смотрел?
тк у меня фаер закрыт по умолчанию - последним
65535 deny ip from any to any
кстати по правилам для фтп ни одного пакета не проходит

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 0:37:26
Alex Keda
все дени замени на дени лог

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 0:47:42
RaDiST_1977
lissyara писал(а):все дени замени на дени лог
а ето возможно, если фаер был так вкомпилен в ядро, закрытым по умолчанию, и запрещающее правило у меня одно?
я пробовал также создавать отдельный диверт для фтпшного айпишника и располагать разрешаюшие правила для него до правил с дивертами - не помогло

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 0:56:07
AzureZ
Или я чтото не понял
ifout это внешняя карта?
Если да, то в правилах которые ниже не должно быть вместо ${ftpaddr} стоять ${ifout} (Точнее внешний ип)

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

${fw} add 350 allow tcp from any to ${ftpaddr} 21 via ${ifout}
${fw} add 360 allow tcp from any to ${ftpaddr} 49152-65535 via ${ifout}

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 1:19:18
RaDiST_1977
AzureZ писал(а):Или я чтото не понял
ifout это внешняя карта?
да
Если да, то в правилах которые ниже не должно быть вместо ${ftpaddr} стоять ${ifout} (Точнее внешний ип)

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

${fw} add 350 allow tcp from any to ${ftpaddr} 21 via ${ifout}
${fw} add 360 allow tcp from any to ${ftpaddr} 49152-65535 via ${ifout}
а вот с етого места поподробней, пожалуйста
те заменить в переменной ${ftpaddr} внутренний ип сервака на адрес внешней сетевухи, я правильно понял?

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 9:16:04
Alex Keda
запрещающее - последнее?
от передни и добавь такое же но с лог.
==========
думаю, логгирование там всё равно есть - хотя и уразали небось по максимуму
посомтри в sysctl - там точно сказано про это, и про лимит логгирования. МОжет оказаться слишком маленьким

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-05 22:10:23
AzureZ
RaDiST_1977 писал(а):
AzureZ писал(а):Или я чтото не понял
ifout это внешняя карта?
да
Если да, то в правилах которые ниже не должно быть вместо ${ftpaddr} стоять ${ifout} (Точнее внешний ип)

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

${fw} add 350 allow tcp from any to ${ftpaddr} 21 via ${ifout}
${fw} add 360 allow tcp from any to ${ftpaddr} 49152-65535 via ${ifout}
а вот с етого места поподробней, пожалуйста
те заменить в переменной ${ftpaddr} внутренний ип сервака на адрес внешней сетевухи, я правильно понял?
Именно. А то по этим правилам получается, что разрешается соединение по 21 порту на ип фтп(внутренний) который находится на внешнем интерфейсе.

Re: Проброс портов для фтп. Need Help

Добавлено: 2008-01-07 15:48:43
RaDiST_1977
была небольшая неточность в приведенном мною конфиге, на самом деле секция ната выглядит так:

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

#NAT
killall -9 natd
${natd} -m -s -u -n ${ifout} -p 8668
${natd} -m -s -u -n ${ifout} -p 8669 -redirect_port tcp ${ftpaddr}:21 21 -redirect_port tcp ${ftpaddr}:49152-65535 49152-65535 #собственно проброс портов для #фтп(passive mode)
${fw} add 310 divert 8869 ip from ${extip} to ${ftpaddr}  in via ${ifout}
${fw} add 320 divert 8869 ip from ${ftpaddr} to ${extip} out via ${ifout}
${fw} add 330 divert 8868 ip from ${intranet} to any out via ${ifout}
${fw} add 340 divert 8668 ip from any to ${extip} in via ${ifout}
Так правильно?