Около года назад я давал совет на одном форуме о совместном использовании во FreeBSD пакетного фильтра PF и NETAMS (www.netams.com) для учета трафика и блокировки. На днях понадобилось вспомнить это решение. На поиск ушло много времени, поэтому сейчас сделаю заметку на более надежном хостинге.
Итак, есть сенсор netflow - pfflowd. С его помощью мы можем генерит поток netwlow о трафике, прошедшим через пакетный фильтр pf. Netams в этой схеме будет коллектором netflow и считать трафик. По сравнению с использованием IPFW и divert, в конфигурации netams поменяется только source. Однако в этом случае нетамс не может блокировать аккаунты. Решение: связать через сервис processor (например):
в конфиге нетамса
access-script "/sbin/inet.sh"
сам скрипт:
#!/bin/sh
case "$1" in
DENY)
pfctl -q -t allow_inet-T delete $3 pfctl -q -k $3
;;
ALLOW)
pfctl -q -t allow_inet -T add $3 ;;
esac
в настройках PF:
# создаем таблицу вот так:
table <allow_inet> persist file "/etc/pf/allow_inet"
# или так:
table <allow_inet> persist
nat on $ext_if inet proto tcp from <allow_inet> to any -> $ext_if
pass in on $int_if inet proto tcp from <allow_inet> to any
Обратите внимание на аргументы $1 - действие (DENNY|ALLOW ) и $3 - IP адрес. Они передаются скрипту нетамсом.
P.S. сейчас модно netflow генерить через ng_netflow. pfflowd - просто "элегантное" решение, которое мне нравится.
Комментариев нет:
Отправить комментарий