Имеется сервер (точнее пока его заготовка), на нем установлены 2 сетевухи - sk0 смотрит в общую сеть (172.x.x.x) rl0 - в сеть 192.168.0.x
Интернет берется из 172 подсети путем коннекта к ВПН серваку через ррр.
В 192 подсети раздается инет через сквид по WiFi, и тут нужно закрыть абсолютно все, кроме непосредственно сквида (прокси не прозрачный с ncsa авторизацией), в 172 подсети нужно, так же как и в 192-ой закрыть возможность использования сервера как дефаулт роутера, (а то народ повадился прописывать его в качестве шлюза и со сторонним днс сервером лазить в обход сквида), в то же время с некоторых айпи такую возможность оставить...
Во фряхе только начинаю разбираться, так что прошу особо не пинать=)
Пробовал настраивать по статьям с этого сайта... что-то получилось... но по большей части нет=(
Вот конфиг ipfw:
Код: Выделить всё
#!/bin/sh
ipfw=" /sbin/ipfw -q " # Команда фаера
intifrl=" rl0 " # Сетевуха, смотрящая в 192 подсетку
intifsk=" sk0 " # Сетевуха, смотрящая в 172 подсетку
inetif=" tun0 " # Тоннель в инет
intipsk=" 172.16.8.177 " # IP в 172 подсетке
lannetsk=" 172.16.0.0/16 " # 172 поддсетка
intiprl=" 192.168.0.1 " # IP в 192 подсетке
lannetrl=" 192.168.0.0/24 " # 192 подсетка
inetip=`/sbin/ifconfig tun0 | grep inet | head -n 1 | awk {'print $2'}` # Inet IP
loopback=" lo0 " # Локальная петля
portrange2=" 53,123,43,5190,110,25,80,443,21,20,65530-65535 " # Соответственно порты
${ipfw} -f flush # Чистим правила
${ipfw} -f pipe flush # Чистим правила для пайпов
${ipfw} -f queue flush
${ipfw} add 100 check-state
#
#
${ipfw} add 150 allow ip from any to any via ${loopback}
${ipfw} add 200 allow ip from me to any keep-state
${ipfw} add 201 allow icmp from any to me icmptypes 0,8,11
#
#Разные запреты
${ipfw} add 205 deny tcp from any to any 137 in via ${inetif}
${ipfw} add 206 deny tcp from any to any 138 in via ${inetif}
${ipfw} add 207 deny tcp from any to any 139 in via ${inetif}
${ipfw} add 208 deny tcp from any to any 81 in via ${inetif}
#Antiscanner
${ipfw} add 210 deny icmp from any to any frag
${ipfw} add 220 reject log tcp from any to any tcpflags fin,syn,rst,psh,ack,urg
${ipfw} add 230 reject log tcp from any to any tcpflags !fin,!syn,!rst,!psh,!ack,!urg
${ipfw} add 240 reject log tcp from any to any not established tcpflags fin
${ipfw} add 250 reject log ip from any to any not verrevpath in
#
#SSH
${ipfw} add 260 allow ip from any to any 22 via ${intifsk}
#
#FTP
${ipfw} add 300 allow tcp from any to me 21,65530-65535 via ${intifsk}
${ipfw} add 300 deny tcp from any to me 21,65530-65535 via ${intifrl}
#HTTP
${ipfw} add 301 allow tcp from any to me 80
#
#allowing samba
#${ipfw} add 310 allow tcp from any to any 445,139 via ${intif}
#${ipfw} add 320 allow udp from any to any 137,138 via ${intif}
#
#Block netbios via external interface
${ipfw} add 321 reject log tcp from any to any 445,139 via ${inetif}
${ipfw} add 322 reject log udp from any to any 137,138 via ${inetif}
${ipfw} add 323 reject log tcp from any 445,139 to any via ${inetif}
${ipfw} add 324 reject log udp from any 137,138 to any via ${inetif}
#
#Dummynet
${ipfw} add 325 pipe 1 ip from ${lannetrl} to any
${ipfw} pipe 1 config bw 400Kbit/s
#
#NAT
# ${ipfw} add 330 fwd 192.168.0.1,3128 tcp from ${intranet} to any 80,443,5190 out via ${extif}
# ${ipfw} add 330 fwd 172.16.8.177,3128 tcp from ${lannet} to any 80,443,5190 out via ${extif}
# ${ipfw} add 340 divert natd ip from any to ${extip} in via ${extif}
# ${ipfw} add 350 allow ip from any ${portrange2} to ${intranet} in via ${extif}
# ${ipfw} add 360 allow ip from any ${portrange2} to ${intranet} out via ${intif}
# ${ipfw} add 370 allow ip from ${intranet} to any ${portrange2} in via ${intif}
# ${ipfw} add 380 allow ip from ${extip} to any ${portrange2} out via ${extif}
Заранее благодарю=)
З.Ы.
ipfw вкомпилировал в ядро такими опциями
Код: Выделить всё
options IPFIREWALL .
options IPFIREWALL_VERBOSE .
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET