НПФ (межсетевой экран) - NPF (firewall)

НПФ
Оригинальный автор (ы)Миндаугас Расюкявичюс
изначальный выпуск17 октября 2012 г.; 8 лет назад (2012-10-17)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вC
Операционная системаNetBSD
Типпакетный фильтр, Брандмауэр
ЛицензияЛицензия BSD
Интернет сайтwww.netbsd.org/ ~ rmind/ npf/ Отредактируйте это в Викиданных

НПФ это Лицензия BSD сохранный пакетный фильтр, центральная часть программного обеспечения для брандмауэр. Это сопоставимо с iptables, ipfw, ipfilter и ПФ. НПФ разработан на NetBSD.

История

Первоначально NPF был написан Миндаугасом Расюкявичюсом. NPF впервые появился в версии NetBSD 6.0 в 2012 году.[1]

Функции

НПФ рассчитан на высокую производительность на SMP систем и для легкой расширяемости. Он поддерживает различные формы Трансляция сетевых адресов (NAT), проверка пакетов с отслеживанием состояния, дерево и хеш-таблицы для наборов IP, байт-код (БНФ или n-code) для настраиваемых правил фильтрации и других функций. NPF имеет структуру расширений для поддержки настраиваемых модулей. Такие функции, как регистрация пакетов, нормализация трафика, случайная блокировка, предоставляются как расширения NPF.

Пример npf.conf

# Назначение IPv4-адресов указанным интерфейсам. $ Ext_if = inet4 (wm0) $ int_if = inet4 (wm1) # Эффективные таблицы для хранения наборов IP-адресов. Table <1> введите хэш-файл "/ etc / npf_blacklist" table <2> дерево типов динамическое # Переменные с именами служб. $ services_tcp = {http, https, smtp, domain, 9022} $ services_udp = {domain, ntp} $ localnet = {10.1.1.0/24} # Поддерживаются различные формы NAT. map $ ext_if динамический 10.1.1.0/24 -> $ ext_ifmap $ ext_if динамический 10.1.1.2 порт 22 <- $ ext_if порт 9022 # NPF имеет различные расширения, которые поддерживаются пользовательскими процедурами. процедура "журнал" {log: npflog0} ## Группировка обязательна в NPF. # Должна быть группа по умолчанию. # Group "external" на $ ext_if {# Передача всего исходящего трафика с сохранением состояния. передать с сохранением состояния в финал весь блок в финал от <1> передать с сохранением в окончательном семействе inet proto tcp в $ ext_if порт ssh применить "журнал" передать с сохранением состояния в окончательном протоколе tcp в $ ext_if порт $ services_tcp передать с сохранением состояния в окончательном протоколе UDP в $ ext_if port $ services_udp # Пассивный FTP и traceroute проходят с сохранением состояния в финальном протоколе TCP до $ ext_if порт 49151-65535 проходят с сохранением состояния в окончательном протоколе UDP на $ ext_if порт 33434-33600} группа "internal" на $ int_if {# Фильтрация входящего трафика согласно RFC 2827 . block in all перейти в final from $ localnet перейти в final from <2> передать окончательный all} group default {передать final на lo0 all block all}

Рекомендации

  1. ^ а б Расюкявичюс, Миндаугас (2012-10-17). «Представляем NPF в NetBSD 6.0». NetBSD-Объявление (Список рассылки).

внешняя ссылка