Ipfw

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 18 de octubre de 2014; las comprobaciones requieren 18 ediciones .
ipfw
Tipo de cortafuegos
Desarrollador Equipo de voluntarios de FreeBSD
Sistema operativo FreeBSD , DragonFlyBSD , Mac OS X
Licencia BSD
Sitio web librebsd.org

ipfirewall  es un firewall que viene con FreeBSD desde la versión 2.0. Con él, puede, por ejemplo, contar el tráfico de acuerdo con reglas razonables basadas en datos de los encabezados de paquetes de los protocolos de pila TCP/IP , procesar paquetes con programas externos, ocultar una red completa detrás de una computadora, etc. [1]

Utilizado por muchos sistemas operativos integrados basados ​​en FreeBSD , como m0n0wall .

Existe una versión portada : Wipfw para Windows 2000 , Windows XP y Windows Server 2003 .

ipfw es el nombre de una utilidad  de usuario (iniciada desde la línea de comandos) diseñada para administrar el sistema IPFW. Los administradores lo utilizan para crear y modificar reglas que controlan el filtrado y el reenvío de paquetes .

ipfw puede cargarse como un módulo o integrarse en el kernel.

IPfirewall consta de los siguientes componentes:

Historia

La utilidad ipfw apareció por primera vez en FreeBSD 2.0. La compatibilidad con dummynet se agregó más tarde, a partir de la versión 2.2.8. Se agregó soporte para desviar socket junto con natd desde la versión 3.x (especificar). Se agregó soporte NAT a nivel de kernel desde la versión 7.0.

Autores

El soporte Kernel NAT fue escrito por Paolo Pisati y apareció por primera vez en FreeBSD 4.0. Anteriormente, la traducción de NAT la realizaba el demonio natd, al que se pasaban los paquetes mediante la acción de desvío.

Descripción

El firewall configurado está representado por una lista ordenada de reglas con números en el rango 1-65535. Cada paquete proviene de diferentes niveles de la pila de protocolos y, cuando llega al firewall, se compara a su vez con los criterios de cada regla de la lista. Si se encuentra una coincidencia, se realiza la acción asignada a esta regla.

ipfw siempre contiene una regla predeterminada (numerada 65535) que no se puede cambiar ni eliminar. Esta regla es terminal, es decir, se aplica a paquetes que no caen en todas las anteriores. Dependiendo de la configuración del kernel, esta regla puede realizar las acciones "denegar" o "permitir" (por defecto es denegar ip de cualquiera a cualquiera, para cambiar esto, debe agregar opciones IPFIREWALL_DEFAULT_TO_ACCEPT al kernel). El administrador del sistema puede editar todas las demás reglas.

Hay varias acciones básicas que se pueden aplicar a los paquetes:

Inclusión en FreeBSD

Al instalar un sistema FreeBSD por medios estándar, ipfw no está habilitado de forma predeterminada. El soporte se puede realizar incluyendo el código ipfw en el kernel (agregando opciones y recompilando el kernel y luego reiniciando el sistema) o (en cualquier momento después de que se inicie el sistema) conectando módulos del mismo nombre (disponible en la última versión). versiones del sistema). El uso de la CPU es menor cuando se incluye ipfw en el kernel; sin embargo, esto solo se nota con una gran cantidad de paquetes y reglas procesados.

Si desea utilizar IPFW, debe reconstruir el núcleo con la opción:

opcionesIPFIREWALL

De forma predeterminada, IPFW tiene una regla incorporada no eliminable "todo está prohibido para todos", que tiene el número más alto y, por lo tanto, se procesará después de todas las reglas ingresadas por el administrador del sistema. Con algunas acciones erróneas del administrador, el sistema puede cerrarse desde cualquier acceso a través de la red, y el administrador necesitará acceso a la consola; para reemplazar esta regla con "todos están permitidos", debe agregar la opción

opciones IPFIREWALL_DEFAULT_TO_ACCEPT

Si desea utilizar NAT (a través del demonio natd), debe agregar la opción:

opciones IPDIVERT

Si desea utilizar NAT a nivel de kernel, debe agregar opciones:

opciones LIBALIAS opciones IPFIREWALL_NAT

Si desea usar tubería/cola, debe agregar la opción:

opciones DUMMYNET

La habilitación de ipfw a través de la carga de módulos del kernel se realiza mediante comandos (superusuario)

kldload ipfw kldload ipdivert kldload dummynet

respectivamente.

Cómo construir reglas

Formato general para reglas de construcción:

ipfw [ probabilidad de coincidencia_probabilidad ] acción [ número de registro de registro ] proto de src a dst [ opciones ] ipfw agregar 00001 permitir icmp de cualquier a cualquier permitir (permitir) cualquier tráfico a través del protocolo ICMP (icmp) en cualquier dirección (cualquiera a cualquiera) por la primera regla (00001) ipfw agregar negar todo desde 192.168.0.0/24, 10.0.0.0/8 a 192.168.1.0/24 Denegar (deny) cualquier tráfico sobre cualquier protocolo (todo) en la dirección de 192.168.0.0-192.168.0.255 o de 10.0.0.0-10.255.255.255 a la subred 192.168.1.0/24 (192.168.1.0-192.168.1.255). El número de regla en este caso se toma del último +100 utilizado, excepto la última regla por defecto (No. 65535); ipfw agregar negar todo desde 192.168.0.1 para mí Niega todo el tráfico desde la dirección 192.168.0.1 a todas las interfaces de red del dispositivo que ejecuta el ipfw configurado; ipfw agregar permitir todo desde la tabla (1) a cualquier Permite todo el tráfico desde las direcciones en la tabla #1 a cualquier dirección; ipfw agregar permitir todo desde la tabla (1) a cualquier salida Permite todas las llamadas salientes (out)

tráfico desde direcciones en la tabla No. 1 a cualquier dirección;

ipfw agregar permitir todo desde la tabla (1) a cualquier salida a través de em0 Permite todo el tráfico saliente (out) desde las direcciones en la tabla #1 a cualquier dirección a través de la interfaz em0; ipfw agregue skipto 1700 ip de la tabla (8) a cualquier Comienza a verificar la solicitud de conformidad con la regla 1701 (es decir, todas las reglas a partir de esta y hasta la 1700 se ignoran al verificar este paquete) para las direcciones IP de la tabla 8; ipfw add set 31 prob 0.95 allow tcp from me to any out dst-port 80 Permite todo el tráfico saliente (fuera) de este dispositivo a cualquier dirección en el puerto 80 tcp (dst-port 80, tcp) con una probabilidad del 95% (prob 0,95). La regla se agrega al conjunto de reglas especial #31, consulte a continuación (ipfw flush); ipfw tabla 1 agregar 192.168.1.2 ipfw tabla 1 agregar 192.168.1.128/25 Agregue a la tabla 1 la dirección 192.168.1.2 (máscara /32 - por defecto) y subred 192.168.1.128/25, respectivamente lista de la tabla 1 de ipfw Mostrar el contenido de la tabla 1; eliminar ipfw 00001 elimine la regla No. 1 creada anteriormente. La descripción es opcional: si hay más de una regla debajo de este número, se eliminan todas. descarga de ipfw elimine todas las reglas que no están incluidas en el conjunto No. 31, la regla No. 65535 está incluida en él por defecto;

Véase también

Notas

  1. Kuzmich Configuración de FireWall (ipfw) en FreeBSD (enlace descendente) . Consultado el 16 de diciembre de 2008. Archivado desde el original el 8 de mayo de 2012. 

Enlaces