В общем ситуация следующая:
Решил ради эксперимента поднять домашнюю сеть.
Есть компутер выступающий в качестве НАТ сервера.
На нем FreeBSD 8.2. Машинка смотрит одним интерфейсом в мою, домашнюю сеть, другим - в сеть провайдера. Провайдер районный, в его сети множество компов. Ранее были обнаружены попытки прослушки портов из этой сети.
Моя задача такова - закрыть доступ к шлюзу снаружи от всех айпишников за исключением двух: айпишника прокси и внутреннего ДНС, в целях безопасности. Проблема заключается в том что у меня не получается написать правило, которое устанавливало-бы исключительное разрешение обмена пакетами для конкретных адресов а не для всей подсети.
Собственно я пытался реализовать это следующим образом
#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="xl0"
LanIn="nfe0"
IpOut="192.168.0.115"
IpIn="10.0.15.1"
NetMaskOut="23"
NetMaskIn="24"
NetIn="10.0.15.0"
GateWay="192.168.0.150"
DNS="192.168.0.151"
${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 allow ip from ${GateWay}/${NetMaskOut} to any in via ${LanOut}
${FwCMD} add allow ip from ${DNS}/${NetMaskOut} to any in via ${LanOut}
${FwCMD} add allow ip from ${GateWay}/${NetMaskOut} to any out via ${LanOut}
${FwCMD} add allow ip from ${DNS}/${NetMaskOut} to any via ${LanOut}
Но ipfw show говорит следующее:
# ipfw show
00100 0 0 check-state
00200 0 0 allow ip from any to any via lo0
00300 0 0 deny ip from any to 127.0.0.0/8
00400 0 0 deny ip from 127.0.0.0/8 to any
00500 1834 166000 allow ip from 192.168.0.0/23 to any in via xl0
00600 0 0 allow ip from 192.168.0.0/23 to any in via xl0
00700 7 396 allow ip from 192.168.0.0/23 to any out via xl0
00800 0 0 allow ip from 192.168.0.0/23 to any via xl0
00900 0 0 deny ip from any to 10.0.0.0/8 in via xl0
01000 0 0 deny ip from any to 172.160.0.0/12 in via xl0
01100 0 0 deny ip from any to 0.0.0.0/8 in via xl0
01200 0 0 deny ip from any to 169.254.0.0/16 in via xl0
01300 4863 1189583 deny ip from any to 240.0.0.0/4 in via xl0
01400 0 0 deny icmp from any to any frag
01500 0 0 deny log logamount 20 icmp from any to 255.255.255.255 in via xl0
01600 0 0 deny log logamount 20 icmp from any to 255.255.255.255 out via xl0
01700 3967 543761 divert 8668 ip from 10.0.15.0/24 to any out via xl0
01800 10817 13357168 divert 8668 ip from any to 192.168.0.115 in via xl0
01900 0 0 deny ip from 10.0.0.0/8 to any out via xl0
02000 0 0 deny ip from 172.16.0.0/12 to any out via xl0
02100 0 0 deny ip from 0.0.0.0/8 to any out via xl0
02200 0 0 deny ip from 169.254.0.0/16 to any out via xl0
02300 0 0 deny ip from 224.0.0.0/4 to any out via xl0
02400 0 0 deny ip from 240.0.0.0/4 to any out via xl0
02500 37003 28924036 allow tcp from any to any established
02600 145 8978 allow ip from 192.168.0.115 to any out xmit xl0
02700 36 10101 allow udp from any 53 to any via xl0
02800 0 0 allow udp from any to any dst-port 123 via xl0
02900 0 0 allow icmp from any to any icmptypes 0,8,11
03000 79 4740 allow tcp from any to any via nfe0
03100 114 17177 allow udp from any to any via nfe0
03200 0 0 allow icmp from any to any via nfe0
03300 36909 3246285 deny ip from any to any
65535 8 642 deny ip from any to any
То есть открывается вся подсеть 192.168.0.0. Подскажите пожалуйста как правильно установить подобные исключения? В настройках ipfw совсем новичок, собственно с целью обучения и поставил данную систему у себя, так-что извините уж за глупые вопросы.
Ответивших заранее благодарю.