Soluzione 1:
Dovresti controllare IPT-NETFLOW, sembra esattamente ciò di cui hai bisogno implementato come modulo del kernel per IPTABLES. Viene mantenuto attivamente e utilizzato con successo in alcuni ISP, quindi dovrebbe essere abbastanza buono. La documentazione potrebbe essere migliore (guarda nel file README).
Soluzione 2:
ntop lo farà, ma probabilmente non è la scelta migliore. Sicuramente dai un'occhiata a pmacct; è progettato esattamente per questo. Dall'elenco delle funzionalità:
- Raccoglie dati tramite libpcap, Netlink/ULOG, NetFlow v1/v5/v7/v8/ - v9, sFlow v2/v4/v5 e IPFIX
- Salva i dati su una serie di backend tra cui tabelle di memoria, MySQL, PostgreSQL, SQLite e BerkeleyDB
- Esporta i dati ai raccoglitori remoti tramite IPFIX, NetFlow v5/v9 esFlow v5
- Replica i pacchetti IPFIX, NetFlow e sFlow in entrata ai raccoglitori remoti
Tra molte altre cose.