sábado, 19 de diciembre de 2020

Router y Gateway con CentOS 7

 Hola, alguna vez necesitamos utilizar un dispositivo como una puerta de enlace y que sea un enrutador para salir a otras subredes de nuestra red LAN, no tenemos un enrutador como tal vez pueda ser un TP-LINK o un Mikrotik RouterOS, pero la buena noticia es que nosotros podemos construir uno con un sistema operativo Linux, cualquier Linux, sea openSUSE, CentOS, Debian o un Ubuntu server, con esos sistemas operativos u otros Linux podemos hacer nuestro router y gateway casero :), que te parece que seleccionamos una PC de bajos recursos o si deseas cualquier PC por ahi y le instalar un GNU/Linux cualquiera que he mencionado e insertas tu PC entre el proveedor y tus redes internas, y ¿para qué me sirve eso? Tal vez desees agregar otros servicios en el enrutador Linux, tal vez un servidor DHCP o un servidor DNS, como lo tienen los routers de Mikrotik; no necesitamos otros servicios en nuestro caso necesitamos que sea la puerta de enlace y enrute :)

Pasos a seguir:

Paso 1- elegir una distribución Linux, en nuestro caso elegiremos CentOS 7 por su largo soporte hasta el 2024, creo :), tengo en mi canal de youtube un video con el sistema operativo Debian 10 que hace lo mismo (revisalo)

Paso 2- instalas el sistema operativo (tengo un video completo de la instalación y configuración)

Paso 3- comenzamos aquí, firewalld es el firewall por defecto en CentOS, es potente y hay que conocer como funciona, por ahora no lo utilizaremos, nosotros utilizaremos iptables puro, no es simple de hacer las reglas, pero necesitamos solamente unas líneas para nuestro caso, entonces deshabilitamos todo lo relacionado a firewalld.

Ya sabes todas las reglas deben ejecutarse como superadministrador

# systemctl stop firewalld

# systemctl disable firewalld

# systemctl mask firewalld

Son comandos muy intuitivos, el primero para el servicio, el segundo deshabilita para que no inicie en boot time, el último para que no inicien servicios relacionados a firewald

Paso 4- instalamos servicios iptables

# yum install iptables-services

Paso 5- iniciamos el servicio

# systemctl start iptables

# systemctl start ip6tables

Intuitivo, se inician iptables para ipv4 e ipv6

Paso 6- habilitamos para que inicien en tiempo de inicio

# systemctl enable iptables

# systemctl enable ip6tables

Con dichos comandos ya tenemos iptables funcionando, ahora nosotros crearemos un archivo para nuestras propias reglas, un archivo llamado reglas.sh, en la ubicación /etc/reglas.sh

Paso 7- antes de hacer leemos un archivo que usaremos para ejecute en tiempo de inicio, dicho archivo está ubicado en /etc/rc.d/rc.local, el archivo nos indica que aún se mantiene por compatibilidad, pero indica que debe utilizarse systemd, pero será para otra oportunidad aprenderemos a realizar, por ahora usaremos rc.local como nuestro archivo.

Paso 8- creamos con touch

#touch /etc/reglas.sh

Permiso de ejecución

#chmod +x /etc/reglas.sh

Paso 9- insertamos nuestra reglas básicas para el enrutador, tenemos claro que nuestra interfaz de cara a internet es enp0s3, las otras interfaces son enp0s8 y enp0s9 son nuestras subredes internas.

Estas dos lineas seran suficientes:

#!/bin/sh

iptables -F

iptables -t nat -A POSTROUTING -o enps03 -j MASQUERADE

Limpiamos con -F, porque por defecto ya escribe CentOS unas reglas básicas.

Paso 10- activamos el forward en el archivo /etc/sysctl.conf y poner en 1

net.ipv4.ip_forward=1

Paso 11- ejecutamos el archivo reglas.sh

#sh /etc/reglas.sh

Paso 12- iniciamos el forward sin reiniciar el server

#sysctl -p /etc/sysctl.conf

Paso 13- deseamos que en boot time inice nuestras reglas automáticamente, entonces usamos el archivo /etc/rc.d/rc.local, cambiamos el permiso

#chmod +x /etc/rc.d/rc.local

#vi /etc/rc.d/rc.local

escribes antes de la linea final

sh /etc/reglas.sh

Reinicias y luego al iniciar ya debe funcionar.

Para más información mirar mi video.

El servicio rc-local se inició por defecto, pero sino inicia puedes verificar con 

#systemctl status rc-local

Sino está iniciado pues inicias con

#systemctl start rc-local y habilitas con enable para iniciar automáticamente en tiempo de inicio.

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...