типичная задача - но не работает зараза...
облазил инет - масса вариантов; в манах, как обычно, есть все; да туго с примерами
суть дела:
имеем шлюз на FreeBSD 4.4 с NAT и IPFW
одна сетевуха ed0 смотрит в инет 62.114.165.35
вторая сетевуха ed1 с адресом 192.168.0.100 смотрит в локалку 192.168.0.1/24
вся локалка под виндой ходит в инет через эту машину, все работает...
Имеем
(ядро пересобрано
options IPDIVERT
options IPFIREWALL
options IPFIREWALL_FORWARD):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rc.conf
gateway_enable="YES"
firewall_enable="YES"
natd_enable="YES"
natd_interface="ed0"
natd_flags="-f /etc/natd.conf"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
natd.sh
/sbin/natd -f /etc/natd.conf -n ed0 -l
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
natd.conf
same_ports yes
use_sockets yes
log yes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rc.firewall
ipfw add 100 deny udp from any to any 137,138,139
ipfw add 300 divert natd all from any to any
#-----count section
ipfw add 400 count all from any to 192.168.0.2 in
ipfw add 500 count all from 192.168.0.2 to any in
ipfw add 600 count all from any to 192.168.0.3 in
ipfw add 700 count all from 192.168.0.3 to any in
#-----allow dns
ipfw add 800 allow udp from any 53 to any
ipfw add 900 allow udp from any to any 53
#-----allow http for 192.168.0.2
ipfw add 1000 allow tcp from any 80,443 to 192.168.0.2
ipfw add 1100 allow tcp from 192.168.0.2 to any 80,443
#-----allow pop3, smtp, pass for 192.168.0.3
ipfw add 1200 allow tcp from any 110,25,143 to 192.168.0.3
ipfw add 1300 allow tcp from 192.168.0.3 to any 110,25,143
#-----allow connect
ipfw add 2000 allow tcp from 62.114.165.35 to any
хххххххх 65535 deny ip from any to any (добавляется по умолчанию)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
повторюсь - все работает :)
поставили в локалке сервак 192.168.0.11 FreeBSD 4.10 + Apache,
к которому по локалке доступ замечательный
Задача - дать доступ к этому серваку из инета,
при этом: не нарушая доступ к нему из локалки
не нарушая доступ из локалки в инет
не поднимая дополнительных сервисов на шлюзе (обойдясь nat и ipfw)
кажется все просто: RTFM - добавляем в
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
natd.conf
redirect_port tcp 192.168.0.11:80 80
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rc.firewall
ipfw add 1400 allow tcp from any to 192.168.0.11 80
ipfw add 1500 allow tcp from 192.168.0.11 80 to any
ipfw add 1600 allow tcp from any to 62.114.165.35 80
ipfw add 1700 allow tcp from 62.114.165.35 80 to any
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...ан не фурычит... пакеты будто пропадают...
выручайте братцы (чуть не плача - неделю е`бьюсь) -
что и главное куда нужно вставить (в rc.firewall ?) чтоб заработало.. ?