pf - подсчёт количества соединений от одног IP

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
djan
рядовой
Сообщения: 20
Зарегистрирован: 2009-06-18 11:23:59

pf - подсчёт количества соединений от одног IP

Непрочитанное сообщение djan » 2011-10-28 1:59:19

для борьбы с торенто-качалками возникла большая необходимость посчитать количество соединений с одного IP внутреней сети. НА шлюзе стоит

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

 #uname -a
FreeBSD alenka.konus 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Thu Apr  8 23:57:42 EEST 2010     niko@alenka.konus:/usr/obj/usr/src/sys/MYKERN  i386
и pf в качестве файрвола. ДЛЯ подсчета количества соединений, они же стайты, написал вот такую конструкцию

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

#pfctl -ss | awk '{print $3}' | awk -F ':' '/^192.168./ {print $1}' | sort | uniq -c | more
получаю вот такой список

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

  892 192.168.10.1 <---- тут запушен торрент и что-то качает/раздаёт
   5 192.168.10.12
   1 192.168.10.20
   1 192.168.10.24
   1 192.168.10.25
   1 192.168.10.26
   1 192.168.10.29
   1 192.168.10.32
   2 192.168.10.63
но в это же время

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

#pfctl -k 192.168.10.1
killed 104 states from 1 sources and 0 destinations
количество убитых соединений раз в 8 меньше, чем отдаёт фильтр по IP 192.168.10.1
возник вопрос - я не правино считаю количество стейтов или pfctl -k убиват не всё ?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

d.kalinin
рядовой
Сообщения: 20
Зарегистрирован: 2010-07-03 10:02:47

Re: pf - подсчёт количества соединений от одног IP

Непрочитанное сообщение d.kalinin » 2011-10-30 11:06:59

Возможно pfctl убивает только установленные соединения.
Если есть NAT - то картина скорее всего такая будет:
LOCAL_IP - > DST_IP
LOCAL_IP -> NAT_IP -> DST_IP

Надо смотреть правила фильтрации.

Если надо ограничить по количеству соединений с IP - то это можно через параметры keep-state задать (max-src-conn, max-src-conn-rate, ....)

FrIcE
рядовой
Сообщения: 44
Зарегистрирован: 2010-04-05 17:46:51

Re: pf - подсчёт количества соединений от одног IP

Непрочитанное сообщение FrIcE » 2011-11-09 7:14:24

pfctl с ключем -k закрывает соединения ОТ указанного источника, в то время как могут присутствовать и входящие соединения, чтоб прибить и их тоже, стоит воспользоваться:

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

pfctl -k 0.0.0.0/0 -k 192.168.10.1
Плюс помимо этого, pfctl отображает соединения, находящиеся на этапе закрытия (с состоянием FIN_WAIT / FIN_WAIT2), и если клиент часто открывает-закрывает соединения, их может быть достаточно немало.