Несколько релизов в рамках проекта Netfilter

В течение минувшей недели проект Netfilter, занимающийся разработкой одноименного фреймворка для фильтрации и преобразования пакетов в ядре Linux, объявил о выходе новых версий сразу нескольких субпроектов, развивающихся под его эгидой:

  • libnetfilter_queue 1.0.0. Данная библиотека позволяет ядру передавать пакеты на обработку userspace-приложениям, обеспечивая взаимодействие с модулем nfnetlink_queue через интерфейс nfnetlink. Этот механизм заменяет собой устаревший интерфейс ip_queue/libipq. Библиотека libnetfilter_queue используется в ряде проектов, таких как:
    • l7-filter-userspace — может определять протокол прикладного уровня путем анализа пакета с применением регулярных выражений.
    • NuFW — обеспечивает разрешение или блокирование трафика для определенных IP-адресов в зависимости от авторизации тех или иных пользователей на соответствующих хостах.
    • iplist — хранит в памяти большие списки IP-адресов и позволяет блокировать или пропускать пакеты в случае наличия их исходных адресов или адресов назначения в этих списках. Таким образом, iplist является своеобразной userspace-альтернативой проекту ipset.
    • mxallowd — реализация антиспам-механизма nolisting.

    В новой версии libnetfilter_queue исправлен ряд ошибок и улучшена документация.

  • libnetfilter_log 1.0.0. Эта библиотека позволяет ядру передавать пакеты различным userspace-логгерам, обеспечивая взаимодействие с модулем nfnetlink_log через интерфейс nfnetlink. Основное отличие механизма log от упомянутого чуть выше механизма queue — при логгировании передача информации производится только в одном направлении, от ядра в userspace. Интерфейс nfnetlink_log/libnetfilter_log заменяет собой устаревший механизм ipt_ULOG/libipulog, использовавшийся в ветке ulogd-1.x (см. ниже). В новой версии включена поддержка вывода логов формате XML, а также добавлена новая документация, созданная при помощи Doxygen.
  • libnetfilter_conntrack 0.0.102. Данная библиотека обеспечивает взаимодействие userspace-приложений с netfilter-подсистемой conntrack, выполняющей отслеживание состояний соединений для облегчения stateful-фильтрации и учета трафика. Взаимодействие осуществляется через модуль nf_conntrack_netlink посредством интерфейса nfnetlink. Библиотека libnetfilter_conntrack используется утилитами из набора conntrack-tools (см. ниже), демоном ulogd-2.x (см. ниже) и рядом других программ, таких, как iptstate (top-like утилита для отслеживания соединений). В новой версии libnetfilter_conntrack исправлен ряд ошибок, а также добавлена поддержка conntrack zones (механизма, позволяющего корректно отслеживать соединения в случае подключения к нескольким подсетям с одинаковыми адресными пространствами).
  • conntrack-tools 0.9.15. Этот комплект программ включает:
    • Утилиту conntrack, позволяющую системному администратору работать с таблицами существующих и ожидаемых соединений (просматривать эти таблицы, удалять из них записи, менять маркировку соединений), а также отслеживать события conntrack (открытие, закрытие соединений, изменение и состояния) в реальном времени,
    • Демон conntrackd, обеспечивающего возможность создания stateful-фаерволов на кластерах высокой доступности посредством непрерывной синхронизации таблицы соединений между нодами (в случае выпадения одной из нод кластера, обрабатываемые ею соединения будут «подхвачены» другими нодами и корректно обработаны с учетом состояний). Также conntrackd может быть использован для удаленного сбора статистики по соединениям.

    В новой версии улучшена фильтрация выводимых утилитой conntrack соединений по критериям, относящимся к NAT, реализовано отслеживание окна TCP (требуется ядро >= 2.6.35), а также добавлена поддержка conntrack zones.

  • ulogd 2.0.0beta4. Демон ulogd предназначен для реализации гибких схем регистрации пакетов, с возможностью записи информации в различные базы данных.

    В настоящее время стабильной является ветка ulogd-1.x, разработка которой ограничивается только исправлениями ошибок, а все новые возможности интегрируются в ulogd-2.x, находящийся сейчас в бета-стадии разработки. В ulogd-1.x получение информации возможно только через устаревший интерфейс ipt_ULOG/libipulog (современной альтернативой ему является nfnetlink_log/libnetfilter_log, см. выше), а запись информации возможна только формате PCAP или в СУБД MySQL, PostgreSQL или SQLite.

    Новый ulogd-2.x использует механизм плагинов, в частности, имеются плагины для получения данных (информацию о пакетах можно получать через современный механизм libnetfilter_log или устаревший libipulog, кроме того, через libnetfilter_conntrack можно собирать информацию о соединениях), плагины для обработки данных (например, созданный в качестве примера плагин PWSNIFF позволяет выделять из трафика пароли FTP и POP) и плагины вывода данных (поддерживается запись в файлы формата PCAP или syslog-like, регистрация в СУБД MySQL, PostgreSQL и SQLite, а также передача информации стандартному демону syslog).

    В новой версии исправлен ряд ошибок, а также добавлен плагин для вывода в формате XML.

© OpenNet