martes, 20 de abril de 2021

Router y Gateway con NPF en NetBSD / Nat (IPv4 Masquerading)

 Leyendo en el portal de NetBSD sobre Firewalls observamos que nos recomienda que usemos NPF y que los Firewalls como PF y IPFilter ya están obsoletos en sus versiones que se incluyen en la base, aunque hasta hace pocos días se observaba que IPFilter aún estaba en los tutoriales que existen en la página web de NetBSD para realizar simple NAT, pero oh sorpresa ahora ya no está disponible y simplemente se observa un enlace hacia la web de NPF donde no es muy explícito el cómo realizar NAT utilizando IPv4.

En este apunte nosotros realizaremos una configuración simple que hace que NetBSD 9.1 funcione como enrutador utilizando el Firewall NPF.

NPF ya está incluido en la base del sistema operativo NetBSD y solamente necesitamos habilitar el "servicio"

Paso 1. leemos cuidadosamente el archivo /etc/defaults/rc.conf, por ejemplo:

#more /etc/defaults/rc.conf

Para ubicar al archivo escribes /npf= y presionar enter, nos llevará a la línea que contiene dichos caracteres, para salir de la lectura del archivo presionamos la tecla q

Paso 2. habilitamos el demonio:

#echo 'npf=YES' >> /etc/rc.conf

Paso 3. buscamos ayuda en los archivos con el siguiente comando:

#find / -iname npf

Observamos que existe un directorio con algunos ejemplos que podrían ayudar y el archivo que me ha guiado es /usr/share/examples/npf/soho_gw-npf.conf

Paso 4. creamos el archivo y ingresamos los parámetros necesarios, ojo que no existe reglas estrictas, por ahora se permite el todo, la función será demostrar que realiza NAT.

#touch /etc/npf.conf

con vi editas el texto en dicho archivo

#vi /etc/npf.conf

#interfaces

$ext_if="wm0"

$ext_v4=inet4(wm0)

$int1_if="wm1"

$int2_if="wm2"

#Dos segmentos LAN, two private networks

$localnet = { 192.168.2.0/24, 192.168.3.0/24 }

#Nat

map $ext_if dynamic $localnet -> $ext_v4

#Default group

group default {

        pass in all

        pass out all

}

 Donde observamos que se indica cuales son nuestras interfaces (que en nuestro caso son tres, una externa de cara a internet y dos interfaces para nuestras redes LAN), las interfaces wm1 y wm2 son las que salen a internet o a otras redes de datos utilizando una IP que está en wm0.

Es necesario crear un grupo, se podría crear grupos external, internal; por ahora no se crea, reiterando que npf requiere que haya un grupo por lo menos. La regla que hace NAT es evidente y se hace explícito que es para IPv4.

Las líneas que empiezan con caracter # son comentarios, en los archivos.

Iniciamos el "servicio" o demonio:

#/etc/rc.d/npf start 

Debe aparecer el mensaje "enabling npf" y no mostrar errores. Puedes para el servicio cambiando start por stop.

Paso 5. Activar el reenvío de paquetes o forwarding.

En el archivo sysctl.conf se tiene que hacer explícito el forwarding para que en tiempo de inicio o boot time lea y se ponga a 1. Para que no sea necesario reiniciar el servidor se escribe el siguiente comando:

#sysctl -w net.inet.ip.forwarding=1

Paso 6. es hora de probar que los clientes ya salen a otras redes, con sus puertas de enlace respectivas. En nuestro caso la puerta de enlace para la red LAN 1 es 192.168.2.5 (es la ip de wm1) y 192.168.3.5 (es la ip de wm2), ya funciona (it works!)

En mi canal de Youtube mostraré el video funcionando, El video.

Nota: gracias a las reglas que permite todo en el grupo default funciona, pass in all y pass out all, sino se escribe esas simples reglas así tengas la línea Nat no va a funcionar.

No hay comentarios.:

Publicar un comentario

Extensiones php en FreeBSD 14 para PhpSysinfo, PhpMyAdmin y Simple Machines Forum

 En FreeBSD 14 ocurre algo especial, por defecto no se activa las extensiones PHP para los softwares como PhpSysinfo, PhpMyAdmin ySimple mac...