Megas Posted December 25, 2011 Posted December 25, 2011 Собрал такой набор правил: #!/bin/sh fwcmd="/sbin/ipfw -q" ipfw -f flush ipfw -f pipe flush ipfw -f queue flush ipfw table all flush ipfw add 101 allow all from any to any via lo0 ipfw add 102 deny all from any to 127.0.0.0/8 ipfw add 103 deny all from 127.0.0.0/8 to any ipfw nat 1 config if $exit_if same_ports log ipfw add 200 nat 1 ip from 192.168.0.0/16 to any via $exit_if ipfw add 210 nat 1 ip from any to me via $exit_if ipfw add 300 allow all from 192.168.0.0/16 to 192.168.0.0/16 ipfw pipe 1000 config bw 1024Kbit/s mask src-ip 0xffffffff ipfw pipe 1001 config bw 1024Kbit/s mask dst-ip 0xffffffff ipfw table 1 add 192.168.210.101 1 ipfw add 1000 pipe tablearg all from "table(1)" to any in via $intofffice ipfw add 1001 pipe tablearg all from any to "table(1)" out via $intofffice проблема в том что после добавления: ipfw add 1000 pipe tablearg all from "table(1)" to any in via $intofffice ipfw add 1001 pipe tablearg all from any to "table(1)" out via $intofffice хост 192.168.210.101 в обще перестает работать и связь с внешним миром пропадает. Список загруженных правил: # ipfw show 00101 0 0 allow ip from any to any via lo0 00102 0 0 deny ip from any to 127.0.0.0/8 00103 0 0 deny ip from 127.0.0.0/8 to any 00200 0 0 nat 1 log ip from 192.168.0.0/16 to any via $exit_if 00210 0 0 nat 1 log ip from any to me via $exit_if 00300 68 5760 allow ip from 192.168.0.0/16 to 192.168.0.0/16 01000 1 60 pipe tablearg ip from table(1) to any in via $officevlan 01001 0 0 pipe tablearg 0 ip from any to table(1) out via $officevlan 65535 2829 514336 allow ip from any to any # net.inet.ip.fw.one_pass: 1 Вставить ник Quote
Hawk128 Posted December 25, 2011 Posted December 25, 2011 via $exit_if интересный интерфейс... (С переменными поработаейте.) Вставить ник Quote
Ilya Evseev Posted December 25, 2011 Posted December 25, 2011 ipfw add 1000 pipe tablearg all from "table(1)" to any in via $intofffice 1) Если заменить на "out via $exit_if", проблема исчезает? 2) Если нет, то что говорят "ipfw table 1 list" и "ipfw pipe list"? Вставить ник Quote
Ivan_83 Posted December 25, 2011 Posted December 25, 2011 ipfw add 102 deny all from any to 127.0.0.0/8ipfw add 103 deny all from 127.0.0.0/8 to any Вроде ip_input сам такое дропает. 00200 0 0 nat 1 log ip from 192.168.0.0/16 to any via $exit_if00210 0 0 nat 1 log ip from any to me via $exit_if00300 68 5760 allow ip from 192.168.0.0/16 to 192.168.0.0/1601000 1 60 pipe tablearg ip from table(1) to any in via $officevlan01001 0 0 pipe tablearg 0 ip from any to table(1) out via $officevlan ipfw show должен выдавать реальные интерфейсы, а не $****** Вставить ник Quote
Megas Posted December 26, 2011 Author Posted December 26, 2011 Не много закрыл глаза, пришел в себя и сделал: #!/bin/sh fwcmd="/sbin/ipfw -q" ifprov=em0 ifvlan=igb0 provip="1.2.3.4" /sbin/ipfw -f flush /sbin/ipfw -f pipe flush /sbin/ipfw -f queue flush /sbin/ipfw table all flush /sbin/ipfw -f nat flush /sbin/ipfw add 101 allow all from any to any via lo0 /sbin/ipfw add 102 deny all from any to 127.0.0.0/8 /sbin/ipfw add 103 deny all from 127.0.0.0/8 to any /sbin/ipfw add 150 allow tcp from any to me 22 in setup keep-state /sbin/ipfw add 153 deny ip from any to any dst-port 7700 /sbin/ipfw add 154 deny ip from any to any dst-port 8080 /sbin/ipfw nat 1 config if $ifprov same_ports log /sbin/ipfw add 200 nat 1 log ip from any to $provip via $ifprov /sbin/ipfw add 210 nat 1 log ip from 192.168.0.0/16 to any via $ifprov /sbin/ipfw add 300 allow all from 192.168.0.0/16 to 192.168.0.0/16 /sbin/ipfw pipe 1000 config bw 2048Kbit/s mask dst-ip 0x000000ff /sbin/ipfw pipe 1001 config bw 2048Kbit/s mask src-ip 0x000000ff /sbin/ipfw table 1 add 192.168.0.0/16 1000 /sbin/ipfw table 2 add 192.168.0.0/16 1001 ipfw add 1000 pipe tablearg log logamount 10000 all from any to "table(1)" out ipfw add 1001 pipe tablearg log logamount 10001 all from "table(2)" to any in все вроде работает. всем абонам сети нарезается по 2мегабита. единственное что тут пока не понятно это, как запретить все входящие не запрошенные коннекты, ну и не потерять доступ по ssh и как правильно очищать правила с таблицами. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.