stringtranslate.com

NPF (cortafuegos)

NPF es un filtro de paquetes con estado con licencia BSD , un software central para el cortafuegos . Es comparable a iptables , ipfw , ipfilter y PF . NPF está desarrollado en NetBSD .

Historia

NPF fue escrito principalmente por Mindaugas Rasiukevicius. NPF apareció por primera vez en la versión NetBSD 6.0 en 2012. [1]

Características

NPF está diseñado para un alto rendimiento en sistemas SMP y para una fácil extensibilidad. Admite varias formas de traducción de direcciones de red (NAT), inspección de paquetes con estado , tablas de árbol y hash para conjuntos de IP, código de bytes ( BPF o código n) para reglas de filtrado personalizadas y otras funciones. NPF tiene un marco de extensión para admitir módulos personalizados. Las funciones como registro de paquetes, normalización de tráfico y bloqueo aleatorio se proporcionan como extensiones de NPF.

Ejemplo de npf.conf

# Asignar direcciones solo IPv4 de las interfaces especificadas.$ext_if = inet4(wm0)$int_if = inet4(wm1)# Tablas eficientes para almacenar conjuntos de IP.tabla <1> tipo archivo hash "/etc/npf_blacklist"tabla <2> tipo árbol dinámico# Variables con los nombres de los servicios.$services_tcp = { http, https, smtp, dominio, 9022 }$services_udp = { dominio, ntp }$localnet = { 10.1.1.0/24 }#Se admiten diferentes formas de NAT.mapa $ext_if dinámico 10.1.1.0/24 -> $ext_ifmapa $ext_if dinámico 10.1.1.2 puerto 22 <- $ext_if puerto 9022# NPF tiene varias extensiones que son compatibles a través de procedimientos personalizados.procedimiento "log" {registro: npflog0}## La agrupación es obligatoria en NPF.# Debe haber un grupo predeterminado.#grupo "externo" en $ext_if {# Paso con estado de todo el tráfico saliente.pasar con estado fuera final todoBloque en final desde <1>pasar con estado en la familia final inet proto tcp a $ext_if puerto ssh aplicar "log"pasar con estado en el protocolo final tcp a $ext_if puerto $services_tcppasar con estado en el protocolo udp final a $ext_if puerto $services_udp# FTP pasivo y traceroutePasar con estado en el protocolo final tcp a $ext_if puerto 49151-65535pasar con estado en el protocolo final udp a $ext_if puerto 33434-33600}grupo "interno" en $int_if {# Filtrado de entrada según RFC 2827.bloquear en todopasar en final desde $localnetPase en la final desde <2>pasar el examen final todos}grupo predeterminado {pasar final en lo0 todosbloquear todo}

Referencias

  1. ^ ab Rasiukevicius, Mindaugas (17 de octubre de 2012). "Introducción de NPF en NetBSD 6.0". NetBSD-Announce (lista de correo).

Enlaces externos