Saltar a contenido

2. Router basado en Alpine Linux

En este apartado, os proponemos una forma de configurar un Router y sus redes. A este router le asignaremos la dirección IP 192.168.88.2/24 (para que no interfiera con la 1ª práctica, en caso de que se haya realizado), y así poder trabajar con los dos routers en una misma red.

Crear plantilla genérica base de Alpine Linux

Para crear el escritorio necesitaremos la ISO de Alpine. La podemos encontrar en su web oficial: https://dl-cdn.alpinelinux.org/

¿Cómo instalar crear una máquina virtual con Alpine?

Puede seguir esta guía para crear un escritorio Alpine en IsardVDI: Instalación Alpine

Después de seguir todos los pasos para la instalación de Alpine en Isard VDI, podemos empezar a configurarlo como Router.

Como queremos que el escritorio funcione como Router, editamos la máquina virtual con las siguientes características:

  • vCPUs: 1
  • Memoria (GB): 0.5 GB
  • Boot: Hard disk
  • Redes:
    • eth0: Default (salida a internet)
    • eth1: WireGuardVPN
    • eth2: Personal1

El objetivo es preparar un script para establecer las reglas de Firewall, rutas y las acciones que queremos realizar al arrancar el router.

Creamos un primer script:

touch /usr/local/bin/startup_script.sh
chmod u+x /usr/local/bin/startup_script.sh

El contenido del script puede ser:

#!/bin/bash
ip address show >> /tmp/log_ip.txt

Creamos el fichero de servicio:

touch /etc/init.d/router
chmod u+x /etc/init.d/router

El fichero de servicio ha de contener:

#!/sbin/openrc-run

depend() {
    after sshd
}

start() {
    ebegin "router starting"
    /usr/local/bin/startup_script.sh
    eend $?
}

Activamos el servicio:

rc-update add router default

Activamos el bit de forwarding:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Podemos verificar si está activo después de un reboot (reinicio del sistema) mirando el siguiente archivo:

cat /proc/sys/net/ipv4/ip_forward

Instalamos los paquetes necesarios para funciones de red:

apk add iptables iproute2 dnsmasq bash

  • Ahora que tenemos los paquetes necesarios y una base como Router, edita el script /usr/local/bin/startup_script.sh y añade el siguiente contenido:
#!/bin/bash

# CONFIGURAR IP VPN DE USUARIO ISARD
# Añadiendo manualmente la ruta, ya que udhcpc no la configura por defecto.
ip link set eth1 name vpnisard
ip link set vpnisard up
udhcpc -i vpnisard
ip route add 10.0.0.0/14 via 10.2.0.1

# CONFIGURAR IP LAN1
ip link set eth2 name lan1
ip link set lan1 up
ip address add 192.168.88.2/24 dev lan1

# SERVIDOR DHCP
# Creamos fichero de configuración
cat <<'EOF' > /etc/dnsmasq_router.conf
interface=lan1
dhcp-range=192.168.88.20,192.168.88.99,255.255.255.0,24h
dhcp-option=3,192.168.88.2
dhcp-option=6,8.8.8.8,1.1.1.1
EOF
# Lanzamos el servidor Dnsmasq
dnsmasq --conf-file=/etc/dnsmasq_router.conf

# NAT MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Para realizar la comprobación, reinicia el escritorio, observa que los mensajes de arranque no muestren un error y que lo programado en el script se haya aplicado correctamente.

Una vez verificado que todo funciona adecuadamente, mediante otro escritorio que haga de cliente, donde se compruebe que este obtiene IP, acceso a Internet y resolución DNS... Crea una plantilla con el nombre router-Alpine.