NPF (межсетевой экран)

редактировать
NPF
Автор (ы) исходного текста Миндаугас Расюкявичюс
Первоначальный выпуск17 октября 2012 г.; 7 лет назад (17.10.2012)
Репозиторий Измените в Викиданных
Написано вC
Операционной системе NetBSD
Введите фильтр пакетов, Межсетевой экран
Лицензия Лицензия BSD
Веб-сайтwww.netbsd.org / ~ rmind / npf / Измените это в Викиданных
  • Портал бесплатного программного обеспечения с открытым исходным кодом

NPF - это лицензированный BSD пакетный фильтр с отслеживанием состояния , центральная часть программного обеспечения для межсетевого экрана. Это сопоставимо с iptables, ipfw, ipfilter и PF. NPF разработан на NetBSD.

Содержание

  • 1 История
  • 2 Возможности
  • 3 Пример npf.conf
  • 4 Ссылки
  • 5 Внешние ссылки

История

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

Возможности

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

Пример npf.conf

# Назначение IPv4-адресов только для указанных интерфейсов. $ ext_if = inet4 (wm0) $ int_if = inet4 (wm1) # Эффективные таблицы для хранения наборов IP. таблица <1>тип хеш-файла "/ etc / npf_blacklist" таблица <2>тип дерево динамический # Переменные с именами служб. $ services_tcp = {http, https, smtp, domain, 9022} $ services_udp = {domain, ntp} $ localnet = {10.1.1.0/24} # Поддерживаются различные формы NAT. map $ ext_if dynamic 10.1.1.0/24 ->$ ext_if map $ ext_if dynamic 10.1.1.2 port 22 <- $ ext_if port 9022 # NPF имеет различные расширения, которые поддерживаются через пользовательские процедуры. procedure "log" {log: npflog0} # # Группировка обязательна в NPF. # Должна быть группа по умолчанию. # группа "external" на $ ext_if {# передача всего исходящего трафика с сохранением состояния. передать с сохранением состояния в финал весь блок в финале от <1>передать с сохранением в окончательном семействе inet proto tcp в $ ext_if порт ssh применить "журнал" передать с сохранением в окончательном протоколе tcp в $ 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>передать окончательный все} группа по умолчанию {пройти финал на lo0 все блокировать все}

Ссылки

  1. ^ Rasiukevicius, Mindaugas (2012-10 -17). «Введение в NPF в NetBSD 6.0». NetBSD-Announce (список рассылки).

Внешние ссылки

Последняя правка сделана 2021-05-31 07:17:09
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте