En la presente entrada mostramos un tutorial para poder dar salida a nuestras redes internas a otras redes de datos utilizando solamente una IPv4, proporcionar salida a internet a nuestros clientes a través de FreeBSD, esta tarea realizan los routers, están en capa 3 del modelo OSI.
Escenario:
Internet---Proveedor(modem/router)---(em0)[FreeBSD 13](em1,em2)---Switch LAN
Donde em0, em1, em2 son las interfaces ethernet (cableada) de nuestro sistema operativo FreeBSD 13; los segmentos de red respectivamente para las interfaces son como sigue:
em0-> 192.168.1.0/24 y la ipv4 para la interfaz em0 es 192.168.1.5/24
em1-> 192.168.2.0/24 y la ipv4 para la interfaz em1 es 192.168.2.5/24
em2-> 192.168.3.0/24 y la ipv4 para la interfaz em2 es 192.168.2.5/24
Luego de instalar FreeBSD,
realizamos algunos ajustes para nuestro caso, como observamos tenemos 3
interfaces ethernet, agregamos dos interfaces ethernet en el archivo
/etc/rc.conf, utilizamos a ee como editor de texto.
#ee /etc/rc.conf
##Network
ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"
ifconfig_em1="inet 192.168.2.5 netmask 255.255.255.0"
ifconfig_em2="inet 192.168.3.5 netmask 255.255.255.0"
##Gateway by default
defaultrouter="192.168.1.1"
##Firewall ipfw
firewall_enable="YES" #habilitamos el firewall nativo a FreeBSD
firewall_script="/etc/ipfw.rules" #script personalizado
##Ser puerta de enlace para redes internas
gateway_enable="YES" #para ser puerta de enlace a redes LAN
##Enable natd
natd_enable="YES" #Habilitamos natd
natd_interface="em0" #Escribir la interface wan, o de cara a internet
Como observamos tenemos 254 ipv4 utilizables para cada segmento de red, son segmentos diferentes.
Reiniciamos la red de datos:
#service netif restart
#ifconfig #debe mostrarse las nuevas ipv4 en las interfaces lan y hacerle ping a cada ipv4
#service routing restart #algunas veces es necesario cuando se reinicia las interfaces
Creamos un archivo con nombre /etc/ipfw.rules, para ello usamos el editor ee (nativo en FreeBSD)
#ee /etc/ipfw.rules
#!/bin/sh
##limpiamos reglas
ipfw -q -f flush
##asignamos una variable
cmd="ipfw -q add"
##interfaces con variabes
pif0="em0" #wan
pif1="em1" #Lan 1
pif2="em2" #Lan 2
##habilitamos a las interfaces LANs
$cmd 005 allow all from any to any via $pif1
$cmd 006 allow all from any to any via $pif2
##para la interface loopback, interface interna
$cmd 010 allow all from any to any via lo0
##NATD
$cmd 100 divert natd ip from any to any in via $pif0
$cmd 1000 divert natd ip from any to any out via $pif0
##It is necessary to do ping between interfaces when you use FreeBSD terminal
$cmd 1001 allow ip from any to any #for example to ntpdate
Iniciar el servicio IPFW
#service ipfw start
Listar las reglas escritas, observar que hay una última regla que deniega todo al final
#ipfw list
Si por algún motivo no ha escrito alguna línea en /etc/rc.conf, por ejemplo te olvidaste de escribir gateway_enable="YES", entonces para que funciones como puerta de enlace a la redes internas, hacer un reboot :D.
#reboot
Al iniciar todo debe estar bien, disfruta de tu enrutador :D
Se puede personalizar bastante, eso depende del conocimiento de ipfw, bloquear, redireccionar puertos, etc. Permitir entre otros, en este tutorial se ha puesto interés en hacer NAT, que funcione, no fue de interés hacer un firewall seguro.
Pruebas:
los clientes conectados a las interfaces em1 y em2 utilizan la puerta
de enlace de FreeBSD, ipv4 en las interfaces em1 y em2, conociendo
defautlrouter en FreeBSD, entonces desde el cliente debe hacer ping, si
es así ya esta enrutando y puede hacer ping a otras redes como internet y
dominios en internet (el cliente para resolver nombres debe usar un
servidor dns)
No hay comentarios.:
Publicar un comentario