Разработчики фреймворка Netfilter, используемого для фильтрации и преобразования пакетов в ядре Linux, после четырёх лет разработки представили релиз ulogd 2.0.0, демона для сбора информации, связанной с работой netfilter/iptables. После выхода ulogd 2.0.0 объявлено о прекращении развития ветки 1.x, которая объявлена устаревшей. Ключевым отличием ulogd 2 является переход на гибко расширяемую архитектуру на базе плагинов и внешних библиотек, позволяющих легко менять методы сбора, хранения и фильтрации данных.
Ulogd способен накапливать данные на уровне отдельных пакетов или потоков (сессий c учетом соединений), что может быть использовано с целью аккаунтинга активности пользователей, сбора статистики о трафике или фиксации сетевых атак. Данные помещаются в лог в соответствии с правилами, которые задаются через инфраструктуру nfacct. Накопленная информация может быть сохранена с использованием различных плагинов, в том числе в SQLite3, MySQL и PostgreSQL, или с использованием дампов в форматах PCAP, CSV, XML, а также в виде в виде текстовых логов Netfilter. Плагины также могут быть использованы для выбора источника сбора данных и для предварительной обработки данных (например, плагин PWSNIFF позволяет выделять пароли из трафика).
В процессе работы ulogd 2.x использует несколько внешних библиотек:
- libmnl и libnfnetlink для обеспечения связи через Netlink.
- libnetfilter_log для получения данных о проходящих пакетах с использованием nfnetlink_queue;
- libnetfilter_conntrack для оценки состояний соединений с использованием nf_conntrack_netlink.
- libnetfilter_acct для гибкого аккаунтинга трафика через nfnetlink_acct и плавила iptables nfacct;