Название: stateless VS stateful firewall + help
Отправлено: Inzevision от 05 Февраля 2012, 21:56:08
Ну был у меня фаер следующего вида table 126 UA-IX 00010 count ip from not table(126) to any in via em0 00011 count ip from any to not table(126) out via em0 00012 count ip from table(126) to any in via em0 00013 count ip from any to table(126) out via em0 00050 allow tcp from any to me dst-port 22 00051 allow tcp from me 22 to any 00060 allow udp from table(36) 1024-65535 to me dst-port 69 in #tftp 00061 allow udp from me 1024-65535 to table(36) dst-port 1024-65535 out 00062 allow udp from table(36) 1024-65535 to me dst-port 1024-65535 in 00100 deny tcp from any to any dst-port 445,137-138 00110 allow ip from any to any via lo0 00120 skipto 1000 ip from me to any 00130 deny icmp from any to me in icmptypes 5,9,13,14,15,16,17 00140 deny ip from any to table(119) #хер знает зачем, не помню 00150 deny ip from table(119) to any 00160 skipto 2000 ip from any to me 00200 skipto 500 ip from any to any via em0 00270 deny tcp from not table(0) to 90.183.101.0/24 00280 fwd 127.0.0.1,81 tcp from table(35) to not me dst-port 80 00282 fwd 127.0.0.1,8082 tcp from table(40) to not me dst-port 80 in 00285 skipto 291 ip from not <my local net> to not me dst-port 80 #пропускает на сайт из инета 00290 fwd 127.0.0.1,8081 tcp from not table(0) to not me dst-port 80 00300 skipto 4500 ip from any to any in 00390 setfib 1 ip from 192.168.0.0/16,10.0.0.0/8 to any in #для второго канала, сейчас не использую 00400 skipto 450 ip from any to any recv em0 00450 tee 2 ip from any to any 00490 allow ip from any to any 00500 skipto 32500 ip from any to any in 00510 tee 1 ip from any to any 00540 allow ip from any to any 01000 allow udp from any 53,7723 to any 01010 allow tcp from any to any setup keep-state 01020 allow udp from any to any keep-state 01100 allow ip from any to any 02000 check-state 02010 allow icmp from any to any 02020 allow tcp from any to any dst-port 80,443 02050 deny ip from any to any via em0 02060 allow udp from any to any dst-port 53,7723 02100 deny ip from any to any 05000 deny ip from not table(0) to any 05001 skipto 5010 ip from table(127) to table(126) 05002 skipto 5030 ip from any to not table(2) 05003 deny ip from any to not table(1) 05004 allow ip from table(21) to any 05005 deny ip from any to any 05010 allow ip from table(127) to any 05030 deny tcp from table(15) to any dst-port 25 05226 allow ip from table(127) to table(126) 05400 allow ip from table(11) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 allow ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 allow ip from any to table(20) 33003 deny ip from any to any 33226 allow ip from table(126) to table(127) 33400 allow ip from any to table(10) 65535 deny ip from any to any
Не собственно с этим фаером пропускало не больше 400Мбит/сек + пинги на сервер порядка 10мс, ошибки на интерфейсах ну и общий тупняк. Загрузка с торрентов порядка 2-3МБ/сек. pps было не больше 60K. Прописал после счетчиков 00020 allow ip from table(0) to not me 00021 allow ip from not me to table(0)
Скорость выросла до 900Мбит/сек, пакеты выросли до 100Kpps. Загрузка с торрентов около 10МБ/сек Сейчас фаер работает по принципу, сначала выпускаем всех, кто не заблокирован, а потом уже разбираем всё остальное. Ну теперь к главному, насколько это "правильно"? И ещё, куда прописать ipcad правила? Насколько я понимаю, одно правило для входящих, одно для исходящих. Но вот какое из них какое?
Название: Re: stateless VS stateful firewall + help
Отправлено: Efendy от 06 Февраля 2012, 00:03:30
15 tee 1 ip from table(0) to not me out 16 tee 2 ip from not me to table(0) out но это не будет корректно учитывать трафик между клиентами - хотя эта фича у 99% сетей не используется. Речь идет о ситуации, когда трафик между клиентами платный и нужно такие пакеты учитывать дважды: исходящий насчитывать клиенту источнику, а входящий - получателю. Все эти навороты с recv - как раз разруливают такую ситуацию. Насчет "Ну теперь к главному, насколько это "правильно"?". В принципе, норм, но правило 100 уже бессмысленно - можно убрать.
Название: Re: stateless VS stateful firewall + help
Отправлено: Inzevision от 06 Февраля 2012, 00:11:50
Ой дядька, спасибо. Как всегда с открытой душой подошел к вопросу. С меня пряник :) Трафик между клиентами рулит железка уровня 3 и надобности его считать нет.
Название: Re: stateless VS stateful firewall + help
Отправлено: Inzevision от 21 Февраля 2012, 00:13:32
Обнаружил, что параметр tee невероятно заглючивает всё систему. Заменил на divert - всё стало на свои места. FreeBSD stat.****.ua 8.2-RELEASE-p6 FreeBSD 8.2-RELEASE-p6 #0: Sun Feb 5 00:06:11 EET 2012 admin@stat.****.ua:/usr/src/sys/amd64/compile/NODENY2 amd64
[root@stat /home/admin]# ipfw list 00006 skipto 281 ip from table(40) to not me dst-port 80 00010 count ip from not table(126) to any in via em0 00011 count ip from any to not table(126) out via em0 00012 count ip from table(126) to any in via em0 00013 count ip from any to table(126) out via em0 00015 divert 1 ip from table(0) to not me out 00016 divert 2 ip from not me to table(0) out 00020 allow ip from table(0) to not me 00021 allow ip from not me to table(0)
00050 allow tcp from any to me dst-port 22 00051 allow tcp from me 22 to any 00060 allow udp from table(36) 1024-65535 to me dst-port 69 in 00061 allow udp from me 1024-65535 to table(36) dst-port 1024-65535 out 00062 allow udp from table(36) 1024-65535 to me dst-port 1024-65535 in 00100 deny tcp from any to any dst-port 445,137-138 00110 allow ip from any to any via lo0 00120 skipto 1000 ip from me to any 00130 deny icmp from any to me in icmptypes 5,9,13,14,15,16,17 00140 deny ip from any to table(119) 00150 deny ip from table(119) to any 00160 skipto 2000 ip from any to me 00200 skipto 500 ip from any to any via em0 00270 deny tcp from not table(0) to 90.183.101.0/24 00280 fwd 127.0.0.1,81 tcp from table(35) to not me dst-port 80 00282 fwd 127.0.0.1,8082 tcp from table(40) to not me dst-port 80 in 00285 skipto 291 ip from not <client IPs> to not me dst-port 80 00290 fwd 127.0.0.1,8081 tcp from not table(0) to not me dst-port 80 00300 skipto 4500 ip from any to any in 00400 skipto 450 ip from any to any recv em0 00420 tee 1 ip from any to any 00450 tee 2 ip from any to any 00490 allow ip from any to any 00500 skipto 32500 ip from any to any in 00510 tee 1 ip from any to any 00540 allow ip from any to any 01000 allow udp from any 53,7723 to any 01010 allow tcp from any to any setup keep-state 01020 allow udp from any to any keep-state 01100 allow ip from any to any 02000 check-state 02010 allow icmp from any to any 02020 allow tcp from any to any dst-port 80,443 02050 deny ip from any to any via em0 02060 allow udp from any to any dst-port 53,7723 02100 deny ip from any to any 05000 deny ip from not table(0) to any 05001 skipto 5010 ip from table(127) to table(126) 05002 skipto 5030 ip from any to not table(2) 05003 deny ip from any to not table(1) 05004 allow ip from table(21) to any 05005 deny ip from any to any 05010 allow ip from table(127) to any 05030 deny tcp from table(15) to any dst-port 25 05226 allow ip from table(127) to table(126) 05400 allow ip from table(11) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 allow ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 allow ip from any to table(20) 33003 deny ip from any to any 33226 allow ip from table(126) to table(127) 33400 allow ip from any to table(10) 65535 deny ip from any to any
Название: Re: stateless VS stateful firewall + help
Отправлено: poxy. от 21 Февраля 2012, 01:11:53
В чем именно проявились глюки? PS у себя поменял, вроде нормально...
Название: Re: stateless VS stateful firewall + help
Отправлено: VitalVas от 21 Февраля 2012, 01:16:06
меняешь divert на tee в rc.firewall и ipcad.conf и все хорошо работает :)
Название: Re: stateless VS stateful firewall + help
Отправлено: Inzevision от 21 Февраля 2012, 01:44:51
а-ааа... Семён Семёныч. Я про ipcad.conf совсем забыл. В букваре к биллингу этого не было, а у самого мозга не хватило проверить конфиг. Щас попробую с tee. ... Поправил конфиг ipcad, презапустил, в ipfw прописал tee. Всё работает так же как и с divert. С прискорбием осознаю - олень.
Название: Re: stateless VS stateful firewall + help
Отправлено: Demeo от 21 Февраля 2012, 10:53:31
Если не используется подсчет трафика, то просто нужно добавить первыми два разрешающих правила для 0 таблицы?
Название: Re: stateless VS stateful firewall + help
Отправлено: Inzevision от 21 Февраля 2012, 22:30:24
Я тоже не использую подсчет трафика, так как все на безлимитках. Это всё ради того, что бы в статистике показывалась загрузка канала пользователями. Походу да, думаю так логичнее. Сначала выпустить всех, кому доступ в инет не запрещён, а потом разбирать запросы, которые пользователи отправляют самому серверу.
Название: Re: stateless VS stateful firewall + help
Отправлено: Demeo от 21 Февраля 2012, 23:10:41
Хм. Попробовал.... Добавил к 00050 allow tcp from any to me dst-port 22 00051 allow tcp from me 22 to any 00052 allow udp from any to me dst-port 53 00053 allow udp from me 53 to any 00062 allow ip from me 1812 to any 00063 allow ip from me 1813 to any 00064 allow ip from any to me dst-port 1812 00065 allow ip from any to me dst-port 1813 00100 deny tcp from any to any dst-port 445 00110 allow ip from any to any via lo0 00120 skipto 1000 ip from me to any 00130 deny log icmp from any to any in icmptypes 5,9,13,14,15,16,17 00140 deny ip from any to table(120) 00150 deny ip from table(120) to any 00160 skipto 2000 ip from any to me 00200 skipto 500 ip from any to any via igb0 00300 skipto 4500 ip from any to any in 00400 skipto 450 ip from any to any recv igb0 00490 allow ip from any to any 00500 skipto 32500 ip from any to any in 00540 allow ip from any to any 01000 allow udp from any 53,7723 to any 01010 allow tcp from any to any setup keep-state 01020 allow udp from any to any keep-state 01100 allow ip from any to any 02000 check-state 02010 allow log icmp from any to any 02020 allow tcp from any to any dst-port 80,443,8085,9740 02021 allow tcp from any to any dst-port 8081,8082 02050 deny ip from any to any via igb0 02060 allow udp from any to any dst-port 53,7723 02100 deny ip from any to any 05000 deny ip from not table(0) to any 05001 skipto 5010 ip from table(127) to table(126) 05002 skipto 5030 ip from any to not table(2) 05003 deny ip from any to not table(1) 05004 pipe tablearg ip from table(21) to any 05005 deny ip from any to any 05010 pipe tablearg ip from table(127) to any 05030 deny tcp from table(15) to any dst-port 25 05400 pipe tablearg ip from table(11) to any 32000 deny ip from any to any 32490 deny ip from any to any 33000 pipe tablearg ip from table(126) to table(127) 33001 skipto 33010 ip from not table(2) to any 33002 pipe tablearg ip from any to table(20) 33003 deny ip from any to any 33400 pipe tablearg ip from any to table(10) 65535 deny ip from any to any ipfw add 20 allow ip from "table(0)" to not me ipfw add 21 allow ip from not me to "table(0)" Загрузка канала улетела на полку, pps почти в 2 раза увеличился и по ходу шейпер перестал работать. Нагрузка на проц где-то процентов на 10 увеличилась. Я чего-то не догоняю или в данном случае на каком-то правиле надо остановиться (skipto)?
Название: Re: stateless VS stateful firewall + help
Отправлено: Inzevision от 25 Февраля 2012, 23:19:04
ну всё правильно, вы разрешили всем абонентам выходить в инет без всяких шейперов и т.п. То есть, если абонент оплатил инет и доступ у него не заблокирован, он в таблице 0. Правила проходятся по очереди. Если правило allow|pass и переменная sysctrl (как то там про фаер one.pass = 1) то пакет выходит из фаера и дальнейшие правила не просматриваются. Получается, что до ваших шейперов данные не доходят. Если у вас всё стабильно работает, не нарушайте первое правило админа - "Работает - не трогай!". В моём случае, у меня работало коряво. шейперы я не использую, поэтому я всех не заблокированных абонентов выпустил в инет. Если абонент хочет получить доступ к сервисам сервера, он проходит все правила моего фаера до совпадения.
|