сеть такая.
статикой прописана сеть провайдера вида 10.0.0.0/8.
Через pptp поднимается интернет.
Внутренняя сетка 192.168.100.0/24.
На шлюзе стоит vpn сервер на mpd5 к которому подключаются филиалы.
Проблема в том что после срабатывания правил ipfw к серверу не подключиться, и перестают работать squid((13) Permission denied).
Т.к mpd запускается после ipfw, то в стартовые скрипты были добавлены правила для ipfw.
Вот сам конфиг ipfw
Код: Выделить всё
cat firewall.conf
#!/bin/sh
########################
FwCMD="/sbin/ipfw"
LanOut="rl0" #Внешний интерфейс
LanIn="alc0" #внутренний интерфейс
NetIn="192.168.100.0" # Внутренняя сеть
NetOut="10.0.0.0"
NetInMask="24"
NetOutMask="8"
IpOut="10.20.103.146"
IpIn="192.168.100.253"
########################
# Сбрасываем все правила:
${FwCMD} -f flush
${FwCMD} add check-state
${FwCMD} add 100 allow ip from any to any via lo0
${FwCMD} add 200 deny ip from any to 127.0.0.0/8
${FwCMD} add 201 deny ip from 127.0.0.0/8 to any
${FwCMD} add 202 deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add 203 deny ip from any to 0.0.0.0/8 in via ${LanOut}
${FwCMD} add 204 deny ip from any to 169.254.0.0/16 in via ${LanOut}
${FwCMD} add 205 deny ip from any to 240.0.0.0/4 in via ${LanOut}
${FwCMD} add 206 deny icmp from any to any frag
${FwCMD} add 207 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add 208 deny log icmp from any to 255.255.255.255 out via ${LanOut}
${FwCMD} add 209 deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add 210 deny ip from 0.0.0.0/8 to any out via ${LanOut}
${FwCMD} add 211 deny ip from 169.254.0.0/16 to any out via ${LanOut}
${FwCMD} add 212 deny ip from 224.0.0.0/4 to any out via ${LanOut}
${FwCMD} add 213 deny ip from 240.0.0.0/4 to any out via ${LanOut}
${FwCMD} add 300 allow tcp from any to any established
${FwCMD} add 400 allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add 500 allow udp from any 53 to any via ${LanOut}
${FwCMD} add 600 allow udp from any to any 123 via ${LanOut}
${FwCMD} add 700 allow icmp from any to any icmptypes 0,8,11
${FwCMD} add 800 allow gre from any to any via ${LanOut}
${FwCMD} add 900 allow tcp from any to any 1723 via ${LanOut}
${FwCMD} add 1600 allow tcp from any to any via ${LanIn}
${FwCMD} add 1700 allow udp from any to any via ${LanIn}
${FwCMD} add 1800 allow icmp from any to any via ${LanIn}
${FwCMD} add 20000 allow log ip from any to any
${FwCMD} add 60000 deny log ip from any to any
${FwCMD} add deny ip from any to any
up
Код: Выделить всё
#!/bin/sh
route add -net убрал ip специально
route add -net убрал ip специально
route add -net убрал ip специально
route add -net убрал ip специально
route change default 10.20.103.145 -ifp ng0
FwCMD="/sbin/ipfw"
InetIface="Ng0"
InetIp="внешний ip"
NetIn="192.168.100.0"
NetOut="10.0.0.0"
NetInMask="24"
NetOutMask="8"
IpOut="10.20.103.146"
IpIn="192.168.100.253"
${FwCMD} add 215 deny ip from any to 172.16.0.0/12 in via ${InetIface}
${FwCMD} add 216 deny ip from any to 0.0.0.0/8 in via ${InetIface}
${FwCMD} add 217 deny ip from any to 169.254.0.0/16 in via ${InetIface}
${FwCMD} add 218 deny ip from any to 240.0.0.0/4 in via ${InetIface}
${FwCMD} add 219 deny log icmp from any to 255.255.255.255 in via ${InetIface}
${FwCMD} add 220 deny log icmp from any to 255.255.255.255 out via ${InetIface}
${FwCMD} add 226 allow tcp from ${NetIn}/${NetMask} to any 80 via ${InetIface}
#${FwCMD} add 10007 divert natd ip from ${NetIn}/${NetMask} to any out via ${InetIface}
#${FwCMD} add 10008 divert natd ip from any to ${IpOut} in via ${InetIface}
${FwCMD} add 221 deny ip from 172.16.0.0/12 to any out via ${InetIface}
#${FwCMD} add 10010 deny ip from 192.168.0.0/16 to any out via ${InetIface}
${FwCMD} add 222 deny ip from 0.0.0.0/8 to any out via ${InetIface}
${FwCMD} add 223 deny ip from 169.254.0.0/16 to any out via ${InetIface}
${FwCMD} add 224 deny ip from 224.0.0.0/4 to any out via ${InetIface}
${FwCMD} add 225 deny ip from 240.0.0.0/4 to any out via ${InetIface}
${FwCMD} add 1000 allow ip from ${InetIp} to any out xmit ${InetIface}
${FwCMD} add 1000 allow ip from ${IpIn} to any out xmit ${InetIface}
${FwCMD} add 1100 allow udp from any 53 to any via ${InetIface}
${FwCMD} add 1200 allow udp from any to any 123 via ${InetIface}
${FwCMD} add 1300 allow gre from any to any via ${InetIface}
${FwCMD} add 1400 allow tcp from any to any 1723 via ${InetIface}[code]
[/code]
скрипт down
Код: Выделить всё
#!/bin/sh
route change default 10.20.103.145
FwCMD="/sbin/ipfw"
${FwCMD} delete 214 215 216 217 218 219 220 221 222 223 224 225 1000 1100 1200 1300 1400 1500 226
ipfw show
Код: Выделить всё
00100 0 0 check-state
00100 18000 2118354 allow ip from any to any via lo0
00200 0 0 deny ip from any to 127.0.0.0/8
00201 0 0 deny ip from 127.0.0.0/8 to any
00202 0 0 deny ip from any to 172.16.0.0/12 in via rl0
00203 0 0 deny ip from any to 0.0.0.0/8 in via rl0
00204 0 0 deny ip from any to 169.254.0.0/16 in via rl0
00205 0 0 deny ip from any to 240.0.0.0/4 in via rl0
00206 0 0 deny icmp from any to any frag
00207 0 0 deny log icmp from any to 255.255.255.255 in via rl0
00208 0 0 deny log icmp from any to 255.255.255.255 out via rl0
00209 0 0 deny ip from 172.16.0.0/12 to any out via rl0
00210 0 0 deny ip from 0.0.0.0/8 to any out via rl0
00211 0 0 deny ip from 169.254.0.0/16 to any out via rl0
00212 0 0 deny ip from 224.0.0.0/4 to any out via rl0
00213 0 0 deny ip from 240.0.0.0/4 to any out via rl0
00215 0 0 deny ip from any to 172.16.0.0/12 in via Ng0
00216 0 0 deny ip from any to 0.0.0.0/8 in via Ng0
00217 0 0 deny ip from any to 169.254.0.0/16 in via Ng0
00218 0 0 deny ip from any to 240.0.0.0/4 in via Ng0
00219 0 0 deny log icmp from any to 255.255.255.255 in via Ng0
00220 0 0 deny log icmp from any to 255.255.255.255 out via Ng0
00221 0 0 deny ip from 172.16.0.0/12 to any out via Ng0
00222 0 0 deny ip from 0.0.0.0/8 to any out via Ng0
00223 0 0 deny ip from 169.254.0.0/16 to any out via Ng0
00224 0 0 deny ip from 224.0.0.0/4 to any out via Ng0
00225 0 0 deny ip from 240.0.0.0/4 to any out via Ng0
00226 0 0 allow tcp from any to any dst-port 80 via Ng0
00300 1519871 1351807337 allow tcp from any to any established
00400 336218 41893166 allow ip from 10.20.103.146 to any out xmit rl0
00500 2119 640303 allow udp from any 53 to any via rl0
00600 16 1216 allow udp from any to any dst-port 123 via rl0
00700 94 7904 allow icmp from any to any icmptypes 0,8,11
00800 449477 583082331 allow gre from any to any via rl0
00900 0 0 allow tcp from any to any dst-port 1723 via rl0
01000 0 0 allow ip from /*внешний ip*/ to any out xmit Ng0
01000 0 0 allow ip from 192.168.100.253 to any out xmit Ng0
01100 0 0 allow udp from any 53 to any via Ng0
01200 0 0 allow udp from any to any dst-port 123 via Ng0
01300 0 0 allow gre from any to any via Ng0
01400 0 0 allow tcp from any to any dst-port 1723 via Ng0
01401 0 0 allow tcp from any to any dst-port 1723 via alc0
01402 0 0 allow tcp from any 1723 to any via alc0
01403 0 0 allow gre from any to any via alc0
01500 0 0 allow tcp from any 1723 to any via Ng0
01600 18488 1021544 allow tcp from any to any via alc0
01700 42485 2772638 allow udp from any to any via alc0
01800 2013 112728 allow icmp from any to any via alc0
20000 10337 1341439 allow log ip from any to any
60000 11881 689338 deny log ip from any to any
60100 0 0 deny ip from any to any
60200 0 0 allow ip from any to any
65535 3537 373462 deny ip from any to any