URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 81912
[ Назад ]

Исходное сообщение
"IPFW + NATD PORTMAPPING AND NAT одновременно"

Отправлено jovanny , 10-Сен-08 11:41 
Здравствуйте. Уже неделю бьюсь с ipfw и natd. Есть шлюз, локальная сеть в которой есть MAIL сервер расположенный на одтельной машинке в сети(в DMZ).
Стоит задача средствами ipfw + natd разрешить SMTP пакетам идущим из интернета на шлюз, пересылаться на DMZ_MAIL сервер.
Помимо этого разрешить некотором компьютерам локальной сети осуществлять выход в интернет через NAT на шлюзе.
Бью с этим неделю. Если настрою одно второе отпадает и наоборот. Подозреваю что неправильная последовательность правил для ipfw.
вот мои конфиги.

/etc/natd.conf:

log yes
log_denied no
same_ports yes
use_sockets yes
unregistered_only yes
dynamic yes
interface bge1
redirect_port tcp 192.168.7.101:25 25


firewall.sh:

#!/bin/sh

INET_IF="bge1"
LAN_IF="bge0"

INET_IP="xxx.xx.xx.xx"
LAN_IP="192.168.7.100"
MAIL_IP="192.168.7.101"

NET="192.168.7.0/24"

${ipfw} -f flush


${ipfw} add allow ip from any to any via lo0

${ipfw} add allow tcp from any to any established
${ipfw} add allow ip from ${INET_IP} to any out xmit ${INET_IF}

${ipfw} add allow icmp from any to any icmptypes 0,8,11

#----------------------DMZ SERVER-------------
${ipfw} add allow tcp from any to ${MAIL_IP} 25
${ipfw} add allow tcp from ${MAIL_IP} 25 to any
#------------------------------------------------

#-----------------------------NAT for VIP------------------

#------------------------------USER1-------------------
${ipfw} add allow tcp from 192.168.7.99 to any 9903
${ipfw} add allow tcp from any 9903 to 192.168.7.99
#------------------------------------------------------

#-----------------------------------------------------------

${ipfw} add divert natd ip from ${NET} to any out via ${INET_IF}
${ipfw} add divert natd ip from any to ${INET_IP} in via ${INET_IF}

#Запрещаем все что было не разрешено
${ipfw} add deny ip from any to any

ядро скомпилено с IPFIREWALL_DEFAULT_TO_ACCEPT
IPDIVER включен и прочие опции IPFIREWALL



Содержание

Сообщения в этом обсуждении
"IPFW + NATD PORTMAPPING AND NAT одновременно"
Отправлено DN , 10-Сен-08 12:40 
>Бью с этим неделю. Если настрою одно второе отпадает и наоборот. Подозреваю
>что неправильная последовательность правил для ipfw.

Правильно подозреваете.
Чтобы мне не заниматься тавтологией,
читайте правильную статью
http://www.opennet.me/base/net/ipfw_flow_map.txt.html

Примерно, должно быть так.
У Вас много еще чего не хватает в правилах ipfw, но
это от квалификации уже зависит.


>[оверквотинг удален]
>INET_IP="xxx.xx.xx.xx"
>LAN_IP="192.168.7.100"
>MAIL_IP="192.168.7.101"
>
>NET="192.168.7.0/24"
>
>${ipfw} -f flush
>
>
>${ipfw} add allow ip from any to any via lo0

...
...


${ipfw} add divert natd ip from any to any via ${INET_IF}
...
...


>[оверквотинг удален]
>#-----------------------------NAT for VIP------------------
>
>#------------------------------USER1-------------------
>${ipfw} add allow tcp from 192.168.7.99 to any 9903
>${ipfw} add allow tcp from any 9903 to 192.168.7.99
>#------------------------------------------------------
>
>
>#Запрещаем все что было не разрешено
>${ipfw} add deny ip from any to any