npf - межсетевой экран NetBSD
NPF (New Packet Filter) — межсетевой экран, разработанный в рамках проекта NetBSD.
Изначальной целью проекта была разработка фильтра (сетевых) пакетов, который, с одной стороны, будет воплощать в себе удобства и возможности PF, а с другой — будет легко расширяем и масштабируем на мультипроцессорных системах.
Первым разработчиком NPF является Mindaugas Rasiukevicius. Разработка NPF была спонсирована NetBSD Foundation. В репозиторий NetBSD код NPF вошёл 22 августа 2010 года, а первым релизом этой операционной системы со входящим в поставку NPF, является версия 6.0.
Как и PF, NPF состоит из двух основных частей: одна располагается в ядре ОС и осуществляет собственно обработку пакетов, а другая — конфигурационная утилита npfctl. Синтаксис конфигурационных файлов и самой утилиты npfctl приближен к оному у pfctl, утилиты конфигурации PF. Однако собственно NPF представляет собой совершенно новый продукт.
NPF изначально создавался с учётом использования на мультипроцессорных системах и поэтому умеет использовать все доступные ядра/процессоры. NPF, в отличие от большинства других пакетных фильтров, не просто проходит по наборам правил, но компилирует их в специальный псевдокод, схожий с BPF.
Наконец-то, начала появляться нормальная документация: http://www.netbsd.org/~rmind/npf/