>http://www.opennet.me/base/net/unix_server_short.txt.html
Сделал следующее ...
1.- Переустановил FreeBSD
2.- cd /sys/i386/conf
cp GENERIC MYKERNEL
vi MYKERNEL
Добавил туда...
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDED
options IPDIVERT
3.- cd /usr/src
make kernel KERNCONF=MYKERNEL
4.- shutdown -r now
5.- vi /etc/rc.conf ...
gateway_enable="YES"
sendmail_enable="YES"
firewall_enable="YES"
firewall_script="/etc/ipfw.conf"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="-m -u"
ifconfig_fxp0="inet 212.119.109.58 netmask 255.255.255.252" - смотрит наружу
ifconfig_fxp1="inet 192.168.10.254 netmask 255.255.255.0" - смотрит в локалку
defaultrouter="212.119.109.57" - шлюз провайдера
6. - vi /etc/resolv.conf ...
nameserver 212.119.97.5 - DNS1 провайдера
nameserver 212.119.96.33 - DNS2 провайдера
7.- vi /etc/ipfw.conf .....
FwCMD="/sbin/ipfw -u" # собственно где лежит бинарник ipfw
LanOut="fxp0" # внешний интерфейс
LanIn="fxp1" # внутренний интерфейс
IpOut="212.119.109.58" # внешний IP адрес машины
IpIn="192.168.10.254" # внутренний IP машины
NetMask="24" # маска сети (если она разная для внешней
# и внутренней сети - придётся вводить ещё
# одну переменную, но самое забавное, что
# можно и забить - оставить 24 - всё будет
# работать, по крайней мере я пробовал -
# работаало на 4-х машинах, в разных сетях,
# с разными масками - настоящими разными! но -
# это неправильно.)
NetIn="192.168.10.0" # Внутренняя сеть
${FwCMD} -f flush
${FwCMD} add check-state
${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 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 240.0.0.0/4 in via ${LanOut}
${FwCMD} add deny icmp from any to any frag
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} 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 tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow udp from any 53 to any via ${LanOut}
${FwCMD} add allow udp from any to any 53 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11
${FwCMD} add allow ip from any to any via ${LanIn}
Вот собственно и всё, но наружу сервер FreeBSD не пускает .
ipfw show ...
Во всех правилах нули, кроме этих :
00500 119 6392 0 divert 8668 ip from any to any via fxp0
00700 495 4334 6 deny ip from any to 192.168.0.0/16 in via fxp0
01000 40 2006 4 deny ip from any to 240.0.0.0/4 in via fxp0
01600 7 58 8 deny ip from any to 192.168.0.0/16 to any out via fxp0
02700 390 3553 2 allow ip from any to any via fxp1
Локалка с FreeBSD пингуется, а шлюз провайдера нет. В интернет выхода нет.
Подскажите , что не так сделал, или что недоделал?