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

ipfw+natd+redirect

Добавлено: 2006-10-13 11:19:40
spawn
Доброго времени суток всем!
Прочитал статью про настройку ipfw ( http://www.lissyara.su/?id=1127 ) статья оч. понравилась, одна из немногих где настройка описана внятно, единственно,чего не хватает (на мой взгляд) это детального описания как настроить редирект средствами нат и фаервола. все статьи, которые мне до этого встречались какие-то сумбурные...
а если поконкретнее, то вот что интересует:
есть freebsd шлюз с 2 сетевыми интерфейсами- внутренний dc0 192,168,30,100 и внешний rl0 xxx.xxx.xxx.xxx
поднят nat+ipfw и apache на шлюзе, также в локальной сети есть web сервер 192,168,30,44, хочется сделать вот что: чтобы при обращении из инета по адресу (к примеру) http://xxx.xxx.xxx.xxx:8080, попадать на внутренний сервер http://192.168.30.44:80, буду признателен если расскажете, как это сделать или отошлете к ресурсу, где все это дело будет внятно описано, нужен именно не готовый конфиг, а хочется разобраться как настраивать это дело...

Добавлено: 2006-10-13 11:21:19
Alex Keda
ВООБЩЕ, я бы отослала в man ipfw - более внятного описания не встречал.
а почитать можно тут - http://www.lissyara.su/?id=1159

Добавлено: 2006-10-13 12:22:35
spawn
да, вроде бы и в манах и в статье все просто и понятно... но почему-то не пашет... потому и хочу рахобраться как все должно работать

Добавлено: 2006-10-15 2:31:34
zorg
всё же мне кажется если ты хочешь разобраться, то статей лиса более чем достаточно.
А так советы давать только повторять их содержимое! :)
Потому как инфы ты не дал никакой, чтобы подсказать что у тебя не работает, точнее почему!!!?? ;)

Добавлено: 2006-10-16 10:30:06
spawn
проблема решалась проще чем я думал...
я был уверен, что у меня в настройках что-то не так, а на самом деле тот сервер, на который шел редирект, просто не был поднят.
можете смело бить меня ногами, я ступил)

Добавлено: 2006-10-17 9:13:23
zorg
:D

Добавлено: 2006-11-01 12:03:03
chani
Редирект пашет хорошо, но каков синтаксис для того чтобы проброститьь два порта
например на таком примере :
/etc/natd.conf
use_sockets yes
same_ports no
interface bge1
#redirect_port tcp 192.168.0.104:3389 ***.***.***.***:3389
redirect_port tcp 192.168.0.174:5900 ***.***.***.***:5900

Добавлено: 2006-11-01 12:13:49
dikens3
chani писал(а):Редирект пашет хорошо, но каков синтаксис для того чтобы проброститьь два порта

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

# cat natd.cf
unregistered_only       yes
use_sockets             yes
deny_incoming           no
same_ports              yes
verbose                 no
log                     no
port                    8668
alias_address           ВНЕШНИЙ_ИП

# Для ослика
redirect_port   tcp     192.168.100.4:4662        ВНЕШНИЙ_ИП:4662
redirect_port   udp     192.168.100.4:4672        ВНЕШНИЙ_ИП:4672
#
redirect_port   tcp     192.168.100.5:80  ВНЕШНИЙ_ИП:80
redirect_port   tcp     192.168.100.5:25  ВНЕШНИЙ_ИП:25
redirect_port  tcp     192.168.100.5:110 ВНЕШНИЙ_ИП:110
redirect_port   tcp     192.168.100.5:20  ВНЕШНИЙ_ИП:20
redirect_port   tcp     192.168.100.5:21  ВНЕШНИЙ_ИП:21
redirect_port   tcp     192.168.100.5:995 ВНЕШНИЙ_ИП:995
У меня вот так :-)

Добавлено: 2006-11-01 20:52:45
zorg
странно, я дак через запятую перечислял! :)
работает!! :)

Добавлено: 2006-11-04 17:59:53
chani
а вот на opennet народ настоятельно рекомендует использовать вместо natd ipnat, ктонить может разъеснить чем одно хуже или лучше другого ?

Добавлено: 2006-11-06 13:19:51
dikens3
chani писал(а):а вот на opennet народ настоятельно рекомендует использовать вместо natd ipnat, ктонить может разъеснить чем одно хуже или лучше другого ?
ipnat быстрее вроде как.

Добавлено: 2006-11-18 18:54:07
toor
Странно у мнея не заработало по стате лис хз почему может кто подскажет?
вот натд.конф

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

interface xl0
same_ports
unregistered_only
redirect_port tcp 192.168.0.2:4899 4899
redirect_port tcp 192.168.0.2:3389 3389
а вот прваела фаера:

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

#!/bin/sh
FwCMD="/sbin/ipfw -q "            # бинарник IPFW
LanOut="xl0"                  # Внешняя сетевуха
NetOut="222.222.222.222/29"   # внешняя сеть
IpOut="222.222.222.222"       # Внешний IP
LanIn="sk0"                   # внутренняя сетевуха
NetIn="192.168.0.0/24"        # Внутренняя сеть
ip_lan="192.168.0"            # Шаблон внутреннего адреса

${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
${FwCMD} add deny ip from ${NetIn} to any in via ${LanOut}
${FwCMD} add deny ip from ${NetOut} to any in via ${LanIn}
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} add deny icmp from any to any frag
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut}
${FwCMD} add divert natd ip from ${NetIn} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}
${FwCMD} add allow tcp from any to any established
${FwCMD} add allow udp from any to ${IpOut} 53 in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} 53 to any out via ${LanOut}
${FwCMD} add allow udp from any 53 to ${IpOut} in via ${LanOut}
${FwCMD} add allow udp from ${IpOut} to any 53 out via ${LanOut}
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 53 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 25 in via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} 22 in via ${LanOut} setup
#######Добавляю правила для редиректа портор
${FwCMD} add allow tcp from any to 192.168.0.2 3389 via ${LanOut} setup
${FwCMD} add allow tcp from any to 192.168.0.2 4899 via ${LanOut} setup
#######
${FwCMD} add deny log tcp from any to ${IpOut} in via ${LanOut} setup
${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup
${FwCMD} add allow tcp from ${NetIn} to any 5190 in via ${LanIn} setup
${FwCMD} add deny ip from any to any
Ну вообще он взять из статьи лисса. Вот а он продолжает тупо блочить. Может кто знает в чем трабла? Да кстате если поставить фаер в опен то все гуд работает.

Добавлено: 2006-11-18 19:13:38
Alex Keda
я тоже х.з. :)
но у меня работало :)

Добавлено: 2006-11-18 19:21:34
toor
а может из за этого?

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

{FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 224.0.0.0/4 in via ${LanOut}
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
??

Добавлено: 2006-11-18 19:54:35
toor
lissyara, а можеш показать свои правила? Может я увижу свой косяк :D

Добавлено: 2006-11-18 19:56:10
Alex Keda

Добавлено: 2006-11-18 22:12:09
zorg
не нужно указывать тип фаера опен или ещё что то!! НУжно указывать путь на скрипт где эти правила описаны!!!!!