Имеется шлюз на FreeBSD с настроенным ipfw и kernel nat, на нем вертится еще DNS для зоны sitename.edu.ru, почтовые сервер, локальный ip - 192.168.1.1,
DNS имеет view'ы отдельно для внешки и отдельно для локалки, и соответственно резолвит sitename.edu.ru для внешки как 195.xx.yy.zz, для локалки как 192.168.1.1,
имеется Windows Server 2003 (AD/DC) ip - 192.168.1.2,
имеется web-сервер (Apache 2.2) ip - 192.168.1.5.
для внешки настроен NAT:
Код: Выделить всё
ipfw nat 1 config if fxp0 log deny_in same_ports unreg_only reset \
redirect_port tcp 192.168.1.2:3389 54444 \
redirect_port tcp 192.168.1.5:80 80
и при подключении по rdp к sitename.edu.ru тоже самое, типа "ПК выключен или не доступен"
Пытался настроить NAT для внутреннего интерфейса вот так:
Код: Выделить всё
ipfw nat 2 config if em0 log reset reverse proxy_only \
redirect_port tcp 192.168.1.2:3389 3389 \
redirect_port tcp 192.168.1.5:80 80
Полные правила:
в table 1 сети из RFC 1918
в table 2 ip кому можно в инет
Код: Выделить всё
00100 check-state
00200 allow ip from any to any via lo0
00300 allow ip from any to any via tun0
00400 deny log logamount 1000 ip from 127.0.0.0/8 to any
00500 deny log logamount 1000 ip from any to 127.0.0.0/8
00600 deny log logamount 1000 ip from any to not me in via fxp0
00700 deny log logamount 1000 ip from table(1) to 195.xx.yy.zz in via fxp0
00800 deny log logamount 1000 ip from 195.xx.yy.zz to table(1) out via fxp0
00900 deny log logamount 1000 ip from 192.168.1.0/24 to any dst-port 25
01000 nat 2 log logamount 1000 tcp from 192.168.1.0/24 to 192.168.1.1 dst-port 3389,80 via em0
01099 skipto 1700 log logamount 1000 tcp from 192.168.1.0/24 to 192.168.1.5 dst-port 80 via em0
01100 skipto 1700 log logamount 1000 tcp from 192.168.1.0/24 to 192.168.1.2 dst-port 3389 via em0
01200 fwd 127.0.0.1,3129 tcp from 192.168.1.0/24 to any dst-port 80 in via em0
01300 reass ip from any to any in via fxp0
01400 nat 1 ip from any to any via fxp0
01500 allow ip from not 192.168.1.0/24 to table(2) in via fxp0
01600 allow ip from 195.xx.yy.zz to any out via fxp0
01700 allow log logamount 1000 tcp from any to any via em0
01800 allow udp from any to any via em0
01900 deny log logamount 1000 ip from any to any
65535 deny ip from any to any
PS: http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ читал, но, к сожалению, озарение не посетило...