Суровым админам. как разрулить IPFW+shape

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2009-11-17 23:19:49

Есть некая сеть, в которой обрезается трафик, ни че как бы интересного нет, все обычно на ipfw дропаются пакеты, на pf натаются сети... etc

Но появилась идея 500 кбайтного трафика
Мысль такая, что бы страничка html для пользователя отдавалась не подрезаясь по скорости эээ 80 порт, но в то же время после превышения порога в 500 килобайт трафик пользователя заворачивался в pipe и шейпился как обычно, еще к этону нужно подвязать некую временную составляющую либо сбрасывать счетчик по запросу но это уже для download менеджеров, открывающих гору соединений...


Кто нить, что то подобное реализовал? или это только мне в голову прут такие гениальные идеи... :crazy:

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение terminus » 2009-11-17 23:43:00

в ipfw есть параметр iplen с помошью которого можно выделять трафик определенной длины.
iplen len-list
Matches IP packets whose total length, including header and data,
is in the set len-list, which is either a single value or a list
of values or ranges specified in the same way as ports.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2009-11-17 23:46:05

Пасиб, пойду курить ман.... и измываться над юзерами перегружая фаер....

Аватара пользователя
---nebo---
старшина
Сообщения: 424
Зарегистрирован: 2008-11-01 21:06:23
Откуда: Киев
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение ---nebo--- » 2009-11-18 0:13:26

все обычно на ipfw дропаются пакеты, на pf натаются сети
может вопрос немного не в тему, но все таки спрошу :smile: . Как уживаются эти два фаера вместе, тоесть куда попадает сначала приходящий пакет(ipfw или pf), есть ли возможность определять последовательность работы фаеров?
...участки под застройку в живописном месте Интернет

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение terminus » 2009-11-18 0:28:17

---nebo--- писал(а):может вопрос немного не в тему, но все таки спрошу :smile: . Как уживаются эти два фаера вместе, тоесть куда попадает сначала приходящий пакет(ipfw или pf), есть ли возможность определять последовательность работы фаеров?
Порядок прохождения пакетов по различным пакетным фильтрам в FreeBSD
http://paix.org.ua/freebsd/fwpackets.html
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2009-11-18 0:40:09

В обчем настрогал, стали поприятнее странички открываться вместе с тем не влияет на скорость (не повышается)
Кому интересно то...

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

    ${fwcmd} add 25 allow ip from any to 10.10.0.0/24 iplen 0-500 src-port 80
    ${fwcmd} add 26 allow ip from any to 10.10.0.0/24 tcpflags ack iplen 0-128
правила нужно указать до первых правил шейпа
если поднимать дальше значения iplen то повышается скорость у пользователей, а это не хтелось бы тестил на 256kBt/s c шейпером на RED

Нормально живут 2 фаера
KERNEL
ipfw

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

options><------>IPFIREWALL
options><------>IPFIREWALL_VERBOSE
options><------>IPFIREWALL_VERBOSE_LIMIT
options><------>IPFIREWALL_FORWARD
PF

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

device<><------>pf
device<><------>pflog
device<><------>pfsync
SHAPE RED

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

options><------>ALTQ
options><------>ALTQ_CBQ
options><------>ALTQ_RED
options><------>ALTQ_RIO
options><------>ALTQ_HFSC
options><------>ALTQ_PRIQ
options><------>ALTQ_NOPCC

PS terminus огромное спасибо за правильный путь :drinks:

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение paix » 2009-11-19 12:07:33

terminus писал(а):
---nebo--- писал(а):может вопрос немного не в тему, но все таки спрошу :smile: . Как уживаются эти два фаера вместе, тоесть куда попадает сначала приходящий пакет(ipfw или pf), есть ли возможность определять последовательность работы фаеров?
Порядок прохождения пакетов по различным пакетным фильтрам в FreeBSD
http://paix.org.ua/freebsd/fwpackets.html
если ваша жизнь скучна - используйте несколько фаеров вместе ;)
для полноты "счастия", можно еще IPSEC настроить поверх ната через два фаера :-D
With best wishes, Sergej Kandyla

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение terminus » 2009-11-19 12:10:59

Про ipsec не расскажите ли подробнее ;-) nuclight вон хотел у себя про это написать, да мерзкий ЖЖ не дал сделать пост больше 5kb
Всё, однако, становится несколько геморройнее при вкомпилированном в ядре IPSEC. Оная вещь вообще доставляет админам хлопоты много в чем и на разных платформах, не обошлось без этого и в ядре FreeBSD - IPSEC нормально файрволы не учитывает. По исходникам 6.2, картинка выглядит так:

...а вот на этом месте ЖЖ не дал обновить пост, поругавшись на размер, хотя всего-то еще 5 килобайт...
так народ и сидит до сих пор во тьме неведения ;-)
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение paix » 2009-11-19 12:45:40

terminus писал(а):Про ipsec не расскажите ли подробнее ;-) nuclight вон хотел у себя про это написать, да мерзкий ЖЖ не дал сделать пост больше 5kb
nuclight aka Vadim Goncharov молодец вообще, респект ему,

ну а на счет ipsec - в свое время имел счастие пытаться настроить такой геморой через нат на pf,
ничем хорошим это не завершилось. Пришлось все переделать на ipfw + natd, в такой связке IPSEC заработал.

сейчас, благо, вопросы решаются по другому, время спецов стоит дороже.
проще взять отдельный айпишник да и отдельный сервак.
With best wishes, Sergej Kandyla

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2010-01-17 11:29:49

Ну слава богу мне IPSEC пока не нужен, в PF только нат+map default open
в IPFW все запрещающие - разрешающие default close

А что вы предложите в качестве nat, natd?
Либо я не умею готовить natd либо он ужасно тормозной.

ng-nat? заморочка с нодами и чаем хорошо бы еще большой бубен принести



И что такого геморного в IPSec что но не может пройти через nat и фаер
http://unixwiz.net/techtips/iguide-ipsec.html неужели то что он на 3м уровне OSI?

Вобще расскажите где примняется IPSEC а то что то у нас целый город ходит через 2 фаера и ни кто не жужжит, может это настолько специфичная штука что в нашем городе ее просто нет? В двух городах как минимум нет IPSEC потому как знаю точно как в этих городах сделан нат и фаер

mediamag
лейтенант
Сообщения: 693
Зарегистрирован: 2008-10-02 20:49:21

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение mediamag » 2010-01-17 13:08:52

agat писал(а):В обчем настрогал, стали поприятнее странички открываться вместе с тем не влияет на скорость (не повышается)
Кому интересно то...

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

    ${fwcmd} add 25 allow ip from any to 10.10.0.0/24 iplen 0-500 src-port 80
    ${fwcmd} add 26 allow ip from any to 10.10.0.0/24 tcpflags ack iplen 0-128
правила нужно указать до первых правил шейпа
если поднимать дальше значения iplen то повышается скорость у пользователей, а это не хтелось бы тестил на 256kBt/s c шейпером на RED

Нормально живут 2 фаера
KERNEL
ipfw

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

options><------>IPFIREWALL
options><------>IPFIREWALL_VERBOSE
options><------>IPFIREWALL_VERBOSE_LIMIT
options><------>IPFIREWALL_FORWARD
PF

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

device<><------>pf
device<><------>pflog
device<><------>pfsync
SHAPE RED

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

options><------>ALTQ
options><------>ALTQ_CBQ
options><------>ALTQ_RED
options><------>ALTQ_RIO
options><------>ALTQ_HFSC
options><------>ALTQ_PRIQ
options><------>ALTQ_NOPCC

PS terminus огромное спасибо за правильный путь :drinks:
у меня пайпы находятся в самом верху...если я пропишу такие правила как у тебя выше пайпов, не будут ли они приняты фаером как разрешающее правило для локалки?

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение FreeBSP » 2010-01-17 21:12:26

agat,
фишка в том что при нате вносятся изменения в пакет, в том то и состоит нат. а IPSEC, насколько я знаю, содержит средства проверки целостности не только инкапсулированных данных, но и пакта - носителя. а поскольку целостность нарушается, то пакет становится невалидным и отбрасывается. таким образом установление ipsec соединения через нат невозможно. для решения проблемы была сделана технология NAT_Traversal(или както так похоже называется). там фишка в том что данные инкапсулируются в UDP пакты, которые нормально проходят нат.

вот
наверняка что то напутал, но идея вроде такая
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2010-01-17 22:04:50

В таком случае IPSEC не сможет работать и с natd там тот же самый маркер пакетов, а если запихивать пакеты в капсулы то и pfnat тут тоже не помеха.

mediamag ....
Вот собсно мой rc.conf изменено только некоторые IP адреса скрыты XXX.XXX.XXX.XXX во всем остальном он неизменен
и в таком виде работает,
rl0 lan
rl1 wan

пользователи коннектяться под VPN 172,18,0,0/24
локальные Ip адреса 10.128.0.0/24

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

#!/bin/sh -
#
    fwcmd="/sbin/ipfw -q"

#Hight priority ports
    priority="21,22,23,25,53,80,110,443,8080,8081"

    ${fwcmd} -f flush
    ${fwcmd} -f pipe flush
    ${fwcmd} -f queue flush
    ${fwcmd} table 1 flush
    ${fwcmd} table 2 flush
    ${fwcmd} table 3 flush
    ${fwcmd} table 4 flush
    ${fwcmd} table 5 flush

#TEMPLATES SPEED +QoS
    ${fwcmd} pipe 32 config bw 32Kbit/s mask dst-ip 0xffffffff red 0.1/5/50/0.95
    ${fwcmd} pipe 33 config bw 32Kbit/s mask src-ip 0xffffffff red 0.1/5/50/0.95

    ${fwcmd} pipe 64 config bw 64Kbit/s mask dst-ip 0xffffffff red 0.1/5/50/0.95
    ${fwcmd} pipe 65 config bw 64Kbit/s mask src-ip 0xffffffff red 0.1/5/50/0.95

    ${fwcmd} pipe 128 config bw 128Kbit/s mask dst-ip 0xffffffff red 0.1/10/60/0.95
    ${fwcmd} pipe 129 config bw 128Kbit/s mask src-ip 0xfffffff red 0.1/10/60/0.95

    ${fwcmd} pipe 256 config bw 256Kbit/s mask dst-ip 0xffffffff red 0.1/10/60/0.95
    ${fwcmd} pipe 257 config bw 256Kbit/s mask src-ip 0xfffffff red 0.1/10/60/0.95

    ${fwcmd} pipe 512 config bw 512Kbit/s mask dst-ip 0xffffffff red 0.1/10/60/0.95
    ${fwcmd} pipe 513 config bw 512Kbit/s mask src-ip 0xfffffff red 0.1/10/60/0.95

    ${fwcmd} pipe 1024 config bw 1024Kbit/s mask dst-ip 0xffffffff red 0.1/10/60/0.95
    ${fwcmd} pipe 1025 config bw 1024Kbit/s mask src-ip 0xfffffff red 0.1/10/60/0.95
#------------------------------------------------------------------------------------

#ACCESS GRANDED LOOPBACK
    ${fwcmd} add 1 pass all from any to any via lo0
    ${fwcmd} add 2 deny all from any to 127.0.0.0/8
    ${fwcmd} add 3 deny ip from 127.0.0.0/8 to any

#DENIED_FRAG
    ${fwcmd} add 4 deny icmp from any to any frag

#DENY PORTS, IP
    ${fwcmd} add 5 deny all from any to any dst-port 0-6,135-139,445,500
    ${fwcmd} add 6 deny all from any to 224.0.0.0/16

#ADMIN PORT 22 OPEN
    ${fwcmd} add 8 allow all from me to any dst-port 22
    ${fwcmd} add 9 allow all from 172.18.0.0/24 to any dst-port 22
    ${fwcmd} add 10 allow all from any to 172.18.0.0/24 dst-port 22
    ${fwcmd} add 11 allow all from XXX.XXX.XXX.XXX/23 to any dst-port 2 	#orbitaplus
    ${fwcmd} add 12 allow all from XXX.XXX.XXX.XXX/23 to any dst-port 22	#darling-tin
    ${fwcmd} add 13 allow all from XXX.XXX.XXX.XXX/32 to any dst-port 22	#lukash
    ${fwcmd} add 14 allow all from 10.128.0.0/24 to any dst-port 22	#local ip
    ${fwcmd} add 15 deny all from any to any dst-port 22		#close all

#ALLOW INET  rl1
    ${fwcmd} add 18 allow all from any to any via rl1

#ALLOW LOCAL IP
    ${fwcmd} add 22 allow all from 10.128.0.0/24 to me via rl0
    ${fwcmd} add 23 allow all from me to 10.128.0.0/24 via rl0

#IPLEN microQos for all
    ${fwcmd} add 24 allow ip from any to 172.18.0.0/24 iplen 0-512 src-port 80
    ${fwcmd} add 25 allow ip from any to 172.18.0.0/24 tcpflags ack iplen 0-64

#TEMPLATES TABLE TARIFES SPEED +QoS unlim
#deny all
    ${fwcmd} add 27 deny all from any to table\(1\)
    ${fwcmd} add 28 deny all from table\(1\) to any

#no limited speed
    ${fwcmd} add 30 allow all from any to table\(2\)
    ${fwcmd} add 31 allow all from table\(2\) to any

#speed 128 kbt/s 
    ${fwcmd} add 127 pipe 128 all from any to table\(3\) src-port ${priority}
    ${fwcmd} add 128 skipto 129 all from any to table\(3\) limit dst-addr 10
    ${fwcmd} add 129 pipe 128 all from any to table\(3\)
    ${fwcmd} add 130 pipe 129 all from table\(3\) to any

#speed 256 kbt/s
    ${fwcmd} add 255 pipe 256 all from any to table\(4\) src-port ${priority}
    ${fwcmd} add 256 skipto 257 all from any to table\(4\) limit dst-addr 10
    ${fwcmd} add 257 pipe 128 all from any to table\(4\)
    ${fwcmd} add 258 pipe 257 all from table\(4\) to any

#speedt 512 kbt/
    ${fwcmd} add 511 pipe 512 all from any to table\(5\) src-port ${priority}
    ${fwcmd} add 512 skipto 513 all from any to table\(5\) limit dst-addr 10
    ${fwcmd} add 513 pipe 256 all from any to table\(5\)
    ${fwcmd} add 514 pipe 257 all from table\(5\) to any

#ADD TABLE USERS
    ${fwcmd} table 3 add XXX.XXX.XXX.XXX #SITE IN WORLD 128kbt/s

#DEFAULT DENY ALL
    ${fwcmd} add 54998 deny udp from any to any
    ${fwcmd} add 54999 deny tcp from any to any

#BLOCK LOGING ACCESS DENIED
# DEBUG
#    ${fwcmd} add 55000 deny log logamount 3000 all from any to any

KERNEL

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

options<------><------>MROUTING

options><------>VESA
options><------>SC_PIXEL_MODE

options><------>ALTQ
#options><------>ALTQ_CBQ
options><------>ALTQ_RED
#options><------>ALTQ_RIO
#options><------>ALTQ_HFSC
#options><------>ALTQ_PRIQ
#options><------>ALTQ_NOPCC

device<><------>pf
device<><------>pflog
device<><------>pfsync

options><------>DEVICE_POLLING
options><------>HZ=1000

options><------>IPFIREWALL
options><------>IPFIREWALL_VERBOSE
options><------>IPFIREWALL_VERBOSE_LIMIT
options><------>IPFIREWALL_FORWARD<---->#
options><------>DUMMYNET<------><------>#

options><------>NETGRAPH
options><------>NETGRAPH_PPTPGRE
options><------>NETGRAPH_PPP
options><------>NETGRAPH_PPPOE

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

uname -a
FreeBSD vpn.shohovo.agt 7.1-RELEASE FreeBSD 7.1-RELEASE #8: Sat Oct 24 01:26:46 MSD 2009     agat@vpn.shohovo.agt:/usr/src/sys/i386/compile/KERNEL  i386
pfnat так же в неизменном виде как на сервере закоменчен только WWW хост +проброс портов для торрента

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

set optimization aggressive
scrub in
set skip on { lo0 }

nat on rl1 from 172.18.0.0/16 to any -> 192.168.2.2/32

#WEB ACCESS HI HUYA NE MENYAT'
rdr on rl1 proto tcp from any to 192.168.2.2 port 80 -> XXX.XXX.XXX.XXX port 80
nat on rl0 proto tcp from any to XXX.XXX.XXX.XXX port 80  -> 10.128.0.2

#torrent freebsd
rdr on rl1 proto tcp from any to 192.168.2.2 port 32481 -> 172.18.0.2
nat on rl0 proto tcp from any to 172.18.0.2  port 32481 -> 192.168.2.2

#torrent sun_pc
rdr on rl1 proto tcp from any to 192.168.2.2 port 32482 -> 172.18.0.8
nat on rl0 proto tcp from any to 172.18.0.8  port 32482 -> 192.168.2.2


pass in all
pass out all

antispoof for rl1 inet

Перед всем этим стоит ADSL мопед на динамическом внешнем IP раньше было хуже со спутника все тянулось

Многое еще хочется реализовать но скорее всего потом

НЕНАВИЖУ ПЕРЕМЕННЫЕ В ФАЕРЕ
${priority} И ${fwcmd} как вынужденная мера.

Ну в общем разбирайте если что не так уж извините, подскажите поправлю...

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

ipfw -d show 
00001    170     21544 allow ip from any to any via lo0
00002      0         0 deny ip from any to 127.0.0.0/8
00003      0         0 deny ip from 127.0.0.0/8 to any
00004      0         0 deny icmp from any to any frag
00005   1607    155548 deny ip from any to any dst-port 0-6,135-139,445,500
00006     77      2396 deny ip from any to 224.0.0.0/16
00008    602    107176 allow ip from me to any dst-port 22
00009   5970    476830 allow ip from 172.18.0.0/24 to any dst-port 22
00010      0         0 allow ip from any to 172.18.0.0/24 dst-port 22
00011      0         0 allow ip from XXX.XXX.XXX.XXX/23 to any dst-port 22,11758
00012      0         0 allow ip from XXX.XXX.XXX.XXX/23 to any dst-port 22,11758
00013      0         0 allow ip from XXX.XXX.XXX.XXX to any dst-port 22,11758
00014   1427    115248 allow ip from 10.128.0.0/24 to any dst-port 22
00015      0         0 deny ip from any to any dst-port 22
00018 759255 504051007 allow ip from any to any via rl1
00022 370245 124859772 allow ip from 10.128.0.0/24 to me via rl0
00023 575909 411192662 allow ip from me to 10.128.0.0/24 via rl0
00024  47645   7189906 allow ip from any to 172.18.0.0/24 iplen 0-512 src-port 80
00025  53839   2469540 allow ip from any to 172.18.0.0/24 tcpflags ack iplen 0-64
00027      0         0 deny ip from any to table(1)
00028      0         0 deny ip from table(1) to any
00030      0         0 allow ip from any to table(2)
00031      0         0 allow ip from table(2) to any
00127      0         0 pipe 128 ip from any to table(3) src-port 21,22,23,25,53,80,110,443,8080,8081
00128     13      1717 skipto 129 ip from any to table(3) limit dst-addr 10
00129      8       743 pipe 128 ip from any to table(3)
00130      8      1958 pipe 129 ip from table(3) to any
00255 201088 270477107 pipe 256 ip from any to table(4) src-port 21,22,23,25,53,80,110,443,8080,8081
00256 158930 139719585 skipto 257 ip from any to table(4) limit dst-addr 10
00257  60662  63890251 pipe 128 ip from any to table(4)
00258 288578 104010378 pipe 257 ip from table(4) to any
00511  33503  44582620 pipe 512 ip from any to table(5) src-port 21,22,23,25,53,80,110,443,8080,8081
00512   4001    447615 skipto 513 ip from any to table(5) limit dst-addr 10
00513   1836    316011 pipe 256 ip from any to table(5)
00514  43082   5708525 pipe 257 ip from table(5) to any
54998     11      2542 deny udp from any to any
54999     78     42888 deny tcp from any to any
65535     83     28708 deny ip from any to any
## Dynamic rules (16):
00256      0         0 (6s) LIMIT udp 81.236.145.203 36281 <-> 172.18.0.11 21631
00256      0         0 (0s) PARENT 2 tcp 0.0.0.0 0 <-> 172.18.0.8 0
00256      0         0 (20s) PARENT 1 icmp 0.0.0.0 0 <-> 172.18.0.11 0
00256  20890  28271763 (300s) LIMIT tcp 217.172.29.82 3492 <-> 172.18.0.8 32482
00256      0         0 (1s) LIMIT udp 123.192.86.150 41676 <-> 172.18.0.11 21631
00256   5087   6841229 (300s) LIMIT tcp 95.55.88.38 2548 <-> 172.18.0.8 32482
00256      0         0 (5s) LIMIT icmp 125.53.3.77 0 <-> 172.18.0.11 0
00256      0         0 (1s) LIMIT udp 116.65.192.92 14250 <-> 172.18.0.11 21631
00256      0         0 (1s) LIMIT udp 85.217.210.151 26989 <-> 172.18.0.11 21631
00256      0         0 (2s) LIMIT udp 77.29.229.188 20594 <-> 172.18.0.11 21631
00256      0         0 (2s) LIMIT udp 87.10.118.50 36482 <-> 172.18.0.11 21631
00256      0         0 (2s) LIMIT udp 86.126.113.95 46051 <-> 172.18.0.11 21631
00256      0         0 (1s) LIMIT udp 81.213.79.251 12102 <-> 172.18.0.11 21631

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

ipfw pipe 256 show
00256: 256.000 Kbit/s    0 ms   50 sl. 8 queues (64 buckets)
           RED w_q 0.099991 min_th 10 max_th 60 max_p 0.949997
    mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
 32 ip           0.0.0.0/0          172.18.0.4/0      273   127858  0    0   0
 39 ip           0.0.0.0/0          172.18.0.3/0     1563   188153  0    0   0
 40 ip           0.0.0.0/0         172.18.0.12/0     139435 189325485  6 7112 723
 44 ip           0.0.0.0/0          172.18.0.8/0     8549  9377103  0    0  87
 47 ip           0.0.0.0/0         172.18.0.11/0     26454 36414495  0    0 622
 48 ip           0.0.0.0/0         172.18.0.20/0     15339 20923370  0    0 651
 54 ip           0.0.0.0/0         172.18.0.18/0     1568  1791821  0    0  83
 55 ip           0.0.0.0/0         172.18.0.19/0     11342 14795126  0    0 226

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

 ipfw pipe 257 show
00257: 256.000 Kbit/s    0 ms   50 sl. 9 queues (64 buckets)
           RED w_q 0.099991 min_th 10 max_th 60 max_p 0.949997
    mask: 0x00 0x0fffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
  2 ip         12.18.0.8/0             0.0.0.0/0     67057 68050200  8 11168 730
  4 ip        12.18.0.11/0             0.0.0.0/0     30410  3548667  0    0  35
 10 ip        12.18.0.12/0             0.0.0.0/0     107884  6552976  0    0   1
 20 ip         12.18.0.3/0             0.0.0.0/0     15350  1800668  0    0  35
 22 ip         12.18.0.2/0             0.0.0.0/0      309    25956  0    0   0
 26 ip         12.18.0.4/0             0.0.0.0/0     28795  4117776  0    0  23
 52 ip        12.18.0.19/0             0.0.0.0/0     79973 34920167  0    0 121
 54 ip        12.18.0.18/0             0.0.0.0/0     3191   578687  0    0   9
 58 ip        12.18.0.20/0             0.0.0.0/0     16307  1487405  0    0   0


Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2010-01-17 22:34:22

Такой вид фаер приобрел после анализа нагрузки на канал по портам
с помощью нетфлоу обсуждалось тут http://forum.lissyara.su/viewtopic.php?f=11&t=23300

Идея была такой сколько пробегает трафика по портам отличным от 80?
Реализация IPCAT на шлюзе сыпит netflow сыцами в XXX.XXX.XXX.XXX

собирает flow-capure

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

rc.conf
flow_capture_enable="YES"
flow_capture_datadir="/usr/netflows"
flow_capture_localip="XXX>XXX.XXX.XXX"
flow_capture_remoteip="XXX.XXX.XXX.XXx"
flow_capture_port="XXXX"
flow_capture_flags="-E 128M -N 0"
Загоняется в базу скриптом по крону 15 минут

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

#!/bin/sh

cd /usr/netflows/

    for i in `ls | grep ft-v05`
do
    /usr/local/bin/flow-export -f3 -mDOCTETS,SRCADDR,DSTADDR,SRCPORT,DSTPORT -u "user:pass:localhost:3306:base:table" < $i

    rm /usr/netflows/$i

done
В базе считается запросом SQL

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

SELECT (SUM( doctets ))/8192 AS sdoctets, `srcport` 
FROM `data` 
WHERE `dstaddr` = '192.168.2.2' AND `data_add` > DATE_SUB(NOW(), INTERVAL 1 DAY)
GROUP BY `data`.`srcport` 
ORDER BY `sdoctets` DESC 
LIMIT 0 , 10
вывод за текущие сутки самых используемых портов

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

sdoctets          srcport  
18794778.9796    80 
13562.2731     16567 
10594.4633     17998 
9983.1230       60866 
7743.9541       48601 
5431.5027       23206 
4744.4490       18730 
3655.3123       35691 
3128.7589       54135 
2845.7905       56712 
Данные в колобайтах

надо сказать что все это не хило весит, и просто необходимо чистить базу раз в суткиь за 2-3 дня набегает порядка 600 мегабайт. чищу пока руками web морда не реализована

забыл сказать что все это работает на WiFI в деревне бытовые точки на мачтах, трафика не особо много пробегает. На работе все реализовано намного по другому. такой нетфлоу положет базу за 6 секунд

Аватара пользователя
agat
мл. сержант
Сообщения: 138
Зарегистрирован: 2009-10-27 1:21:55
Откуда: Солнечная система, планета Земля, Россия
Контактная информация:

Re: Суровым админам. как разрулить IPFW+shape

Непрочитанное сообщение agat » 2010-01-17 23:00:26

у меня пайпы находятся в самом верху...если я пропишу такие правила как у тебя выше пайпов, не будут ли они приняты фаером как разрешающее правило для локалки?
Не будут потому что у меня это VPN без. поднятия VPN все пользователи направляются на локальный сайт, независимо от того что они набрали в браузере. 80 порт редиректится pfом на другом сервере выступающий шлюзом для локалки