Demonio que captura tráfico de red, en vivo desde una interfaz, o leyendo un .pcap y lo agrega en "flujos" [conjuntos de paquetes que comparten IP origen/destino, puertos, protocolo, etc.], igual que haría un router Cisco con NetFlow. Esos flujos los puede exportar por red usando los protocolos NetFlow v1/v5/v9 o IPFIX hacia un colector, o bien resumirlos internamente para consulta local.
# systemctl status softflowd.service
# systemctl status nfdump.service
# softflowd -D -i enp1s0 -n 127.0.0.1:2055 -v 9
Nota.- Acepta 1, 5, 9 (NetFlow) o 10 (IPFIX). NetFlow v9/IPFIX son más flexibles, v5 es el más simple y compatible con herramientas antiguas.
# sudo softflowd -D -i enp1s0 -n 127.0.0.1:2055 -v 9 -t tcp=300 -t udp=60 -t general=1800 -t maxlife=3600
tcp=300 --> timeout de inactividad TCP en segundos.
udp=60 --> timeout de inactividad UDP.
general=1800 --> timeout genérico para otros protocolos.
maxlife=3600 --> duración máxima absoluta de un flujo aunque siga activo.
# softflowd -r captura.pcap -n 127.0.0.1:2055
# softflowd -D -i enp1s0 -n 127.0.0.1:2055 -m 8192
El comando softflowd, sin el parámetro -D, no produce salida en la terminal porque está enviando todos los datos, en este caso, a 127.0.0.1:2055. Se precisa de un programa escuchando en ese puerto para recibir y procesar estos datagramas NetFlow, sinó los datos simplemente se "pierden". El proceso completo con el programa nfdump[ver] es el siguiente:
Para configurar nfdump, comprobar que la linea options está descomentada:
# nano /etc/nfdump/default.conf
# escuchar en el puerto 2055, rotar cada 24 horas (86400 segundos)
# que rote automaticamente, que comprima los archivos al rotar con gzip
# y que mantenga los logs 30 dias y luego los borre.
options='-l /var/cache/nfdump -p 2055 -t 86400 -w -z -e 30'
# systemctl restart nfdump
# systemctl status nfdump-service
# ls -la /var/run/softflowd/default.ctl
lrwxrwxrwx 1 root root 22 25 d’ag. 08:36 /var/run/softflowd/default.ctl -> /var/run/softflowd.ctl
# softflowd -i enp1s0 -n 127.0.0.1:2055 -v 9 -d
# softflowctl statistics
# nfdump -R /var/cache/nfdump
$ softflowd -i enp1s0
$ softflowd -i enp1s0 -n 10.1.0.2:4432
$ softflowd -i enp1s0 -n 10.1.0.2:4432,10.1.0.3:4432
$ softflowd -i enp1s0 -l -n 10.1.0.2:4432,10.1.0.3:4432
$ softflowd -v 5 -i enp1s0 -n 10.1.0.2:4432 -m 65536 -t udp=1m30s
$ softflowd -i enp1s0 -p /var/run/sfd.pid.enp1s0 -c /var/run/sfd.ctl.enp1s0