Был полностью рабочий firewall на FreeBSD 6.0, затем система была переведена на FreeBSD 7.0 и часть конфигов просто скопированна, в том числе и firewall, со старой системы. Но работать он перестал, за исключением icmp пакетов, которые итак были полностью открыты )rc.firewall
#!/bin/sh
fwcmd="/sbin/ipfw -q"
${fwcmd} -f flush
${fwcmd} add 100 check-state#icmp
${fwcmd} add 200 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${fwcmd} add 210 pass icmp from any to any
#loopback
${fwcmd} add 300 pass ip from any to any via lo0
${fwcmd} add 310 deny ip from any to 127.0.0.0/8
${fwcmd} add 320 deny ip from 127.0.0.0/8 to any
#output
${fwcmd} add 410 pass tcp from any to me established
${fwcmd} add 420 pass udp from any to me
${fwcmd} add 430 pass ip from me to any
#private
${fwcmd} add 500 pass ip from 192.168.2.3 to me
${fwcmd} add 510 pass ip from 192.168.2.7 to me
${fwcmd} add 520 pass ip from 192.168.2.8 to me
${fwcmd} add 530 allow ip from 192.168.2.14 to any
#http
${fwcmd} add 600 pass ip from any to me 80,21#udp
${fwcmd} add 810 pass udp from any 53 to any
${fwcmd} add 820 pass udp from any to any 53
#inet
${fwcmd} add 920 deny ip from 192.168.2.105 to any
${fwcmd} add 919 deny ip from 192.168.2.106 to any
${fwcmd} add 918 deny ip from 192.168.2.113 to any
${fwcmd} add 916 deny ip from 192.168.2.49 to any
${fwcmd} add 915 deny ip from 192.168.2.59 to any
${fwcmd} add 914 deny ip from 192.168.2.65 to any
${fwcmd} add 905 deny ip from 192.168.2.1/24{130-255} to any
#log
${fwcmd} add 920 deny log tcp from any to me setup
${fwcmd} add 930 deny log ip from any to me
#clouse
${fwcmd} add 10000 deny ip from any to meскажу сразу что в ядре я прописал IP_FIREWALL IP_FIREWALL_DEFAULT_TO_ACCEPT
internet# ipfw show
00100 0 0 check-state
00200 0 0 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00210 17 1016 allow icmp from any to any
00300 0 0 allow ip from any to any via lo0
00310 0 0 deny ip from any to 127.0.0.0/8
00320 0 0 deny ip from 127.0.0.0/8 to any
00410 99 15329 allow tcp from any to me established
00420 18 2526 allow udp from any to me
00430 67 20752 allow ip from me to any
00500 0 0 allow ip from 192.168.2.3 to me
00510 0 0 allow ip from 192.168.2.7 to me
00520 0 0 allow ip from 192.168.2.8 to me
00530 0 0 allow ip from 192.168.2.14 to any
00600 0 0 allow ip from any to me dst-port 80,21
00810 0 0 allow udp from any 53 to any
00820 0 0 allow udp from any to any dst-port 53
00905 28 8456 deny ip from 192.168.2.0/24{130-255} to any
00914 0 0 deny ip from 192.168.2.65 to any
00915 0 0 deny ip from 192.168.2.59 to any
00916 0 0 deny ip from 192.168.2.49 to any
00918 0 0 deny ip from 192.168.2.113 to any
00919 0 0 deny ip from 192.168.2.106 to any
00920 0 0 deny ip from 192.168.2.105 to any
00920 0 0 deny log tcp from any to me setup
00930 0 0 deny log ip from any to me
10000 0 0 deny ip from any to me
65535 4876 456652 deny ip from any to anyкогда руками его полностью открываеш с консоли, тогда всё работет, но это не дело. у кого есть какие мысли по этому поводу?
>[оверквотинг удален]
>
>rc.firewall
>
>#!/bin/sh
>
>fwcmd="/sbin/ipfw -q"
>
>${fwcmd} -f flush
>${fwcmd} add 100 check-state
>Поменяйте директиву me на переменную с описаниями интерфейсов к примеру ${if_local}
что значит:>когда руками его полностью открываеш с консоли, тогда всё работет, но это
>не дело. у кого есть какие мысли по этому поводу?вы /etc/rc.conf прописали
--
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
--
?про все шаги настройки ipfw просто и коротко рассказано тут
http://michurin.com.ru/bsd-ipfw.shtml
>вы /etc/rc.conf прописали
>--
>firewall_enable="YES"
>firewall_script="/etc/rc.firewall"
>--
>?
>
>про все шаги настройки ipfw просто и коротко рассказано тут
>http://michurin.com.ru/bsd-ipfw.shtmlfirewall_enable="YES" прописанно.
firewall_script="/etc/rc.firewall" не понимаю к чему его прописывать, если по умолчанию он именно оттуда и цепляется и прекрасно работает!На самом деле проблема была решена, всё дело было в том, что по умолчанию фаервол был закрытый а не открытый, достаточно было прописать одну строчку для его открытия и он заработал, но теперь возникает другой вопрос, ведь в ядре я специально прописал
FIREWALL_DEFAULT_TO_ACCEPT чтобы он был открытый, но это правило не применилось.Во FreeBSD 6.0 это правильо работало на ура. Может ли это быть связанно с тем что сейчас FreeBSD 7.0 и там это правило не работает?