Страница 1 из 1

намучался - настраиваю на шлюзе IPFW

Добавлено: 2009-07-06 12:28:02
jackvorobey
Здравствуйте! Настраиваю на шлюзе IPFW...читал описание ipfw, его команд, но так до когнца его и не понял - для меня он немного запутан
Немного о сервере:
FreeBSD_7.1_STABLE + PPTP + SAMBA + BIND + SSH + SQUID + NAT+ MYSQL + APACHE + EXIM
ядро пересобрал для ipfw
Два интерфейса: rl0 -локальная сеть, fxp0 -внешняя

Код: Выделить всё

#!/bin/sh
FwCMD="/sbin/ipfw"
LanOut="fxp0"
NetOut="192.168.2.0/24"
IpOut="192.168.2.50"
LanIn="rl0"
NetIn="192.168.101.0/24"
ip_lan="192.168.101"
${FwCMD} -f flush
${FwCMD} -f pipe flush
${FwCMD} -f queue flush
${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 ${NetIn} to any in via ${LanOut}
${FwCMD} add deny ip from ${NetOut} to any in via ${LanIn}
${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 224.0.0.0/4 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 deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

#NAT
#${FwCMD} add divert natd ip from 192.168.101.5 to any out via ${LanOut}
#${FwCMD} add divert natd ip from 192.168.101.6 to any out via ${LanOut}
#${FwCMD} add divert natd ip from 192.168.101.7 to any out via ${LanOut}
#${FwCMD} add divert natd ip from 192.168.101.8 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 icmp from any to any icmptypes 0,8,11
${FwCMD} add allow ip from any to ${NetIn} in via ${LanIn}
${FwCMD} add allow ip from ${NetIn} to any out via ${LanIn}
${FwCMD} add allow tcp from any to any established

#DNS (на машине нет DNS сервера)
${FwCMD} add allow udp from ${Ip_lan} 53 to any out via ${LanIn}
${FwCMD} add allow udp from ${Ip_lan} to any 53 out via ${LanIn}

#SQUID
${FwCMD} add fwd 127.0.0.1,3128 tcp from ${NetIn} to any 80 via ${LanOut}

#SQUID
${FwCMD} add allow tcp from ${Net_In} 3128 to any 3128 via ${LanIn}

#GRE
${FwCMD} add allow gre from any to any

#PPTP
${FwCMD} add allow 1723 tcp from any to any

#SSH
${FwCMD} add allow tcp from ${Net_In} 22 to any ${LanIn}

# Блокируем все остальные попытки соединения с занесением в логи
${FwCMD} add deny log tcp from any to ${IpOut} in via ${LanOut} setup

${FwCMD} add allow tcp from ${IpOut} to any out via ${LanOut} setup
${FwCMD} add allow tcp from any to ${IpOut} in via ${LanIn} setup

${FwCMD} add deny ip from any to any
Нужно с внешки разрешить только 80 для апача и 22 для SSH и запретить весь icmp снаружи
А с внутренней сети разрешить только ДНС, Самбу, почту (POP3 + SMTP), апач, мускул и сквид + всех с 5190 и 80 портов отправлять на сквид (NAT только для избранных) + разрешить ssh с внутренней сети и открыть порты для pptp+gre
правильно ли я сделал?
P.S. некоторые правила еще не успел дописать

Re: намучался - настраиваю на шлюзе IPFW

Добавлено: 2009-07-06 13:41:26
snorlov
Ну я бы на твоем месте, сначало бы
1.разрешил хождение к локалхосту,
2.хождение любых пакетов локалки к самой локалки на внутреннем интерфейсе,
3. Доступ извне к ssh и VPn (gre)
Ну и т.д.
Еще один нюанс, что значит NAT для избранных, я бы всех отправлял бы на сквид и сквидом бы рулил дальнейший доступ...