Сделал небольшую биллинговую систему с помощью fprobe-ulog + flow-tools + PHP (web-интерфейс).Сбор информации о трафике идёт так:
Chain FORWARD (policy DROP)
target prot opt source destination
REJECT all -- !192.168.0.0/24 0.0.0.0/0
REJECT all -- 0.0.0.0/0 !192.168.0.0/24
ULOG all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 192.168.0.0/24
ACCEPT tcp -- 192.168.0.0/24 194.1.1.1 tcp dpt:110
ACCEPT tcp -- 192.168.0.0/24 194.1.1.1 tcp dpt:25
*на самом деле аналогичных правил чуть больше, но для примера подойдёт*
Всё считается, всё работает, но есть одна проблема:
считается "лишний" трафик, который после прохождения через ULOG блокируется policy DROP!
Тоесть получается так, что пакет в интернет не ушёл, но посчитался.
Ситуация такая, что на одной из локальных машин Windows Update отчаяно долбилась напрямую (через шлюз) в инет, шлюз ни один из этих пакетов не пропустил, но ULOG их посчитал.
Как проще всего сделать так, чтобы в ULOG попадали только те пакеты, которые реально уйдут в интернет, а то, что будет заблокировано - не считалось?
Дублировать каждое разрешающее правило с -j ULOG?