Salta el contingut

2. Router basat en Alpine Linux

En aquest apartat, us proposem una manera de configurar un Router i les seves xarxes. A aquest router li assignarem l'adreça IP 192.168.88.2/24 (perquè no interfereixi amb la 1a pràctica, en cas que s'hagi realitzat), i així poder treballar amb els dos routers en una mateixa xarxa.

Crear plantilla genèrica base d'Alpine Linux

Per crear l'escriptori necessitarem la ISO d'Alpine. La podeu trobar a la seva web oficial: https://dl-cdn.alpinelinux.org/

Com instal·lar i crear una màquina virtual amb Alpine?

Podeu seguir aquesta guia per crear un escriptori Alpine a IsardVDI: Instal·lació Alpine

Després de seguir tots els passos per a la instal·lació d'Alpine a Isard VDI, podem començar a configurar-lo com a Router.

En aquest cas, com que es tracta d'un escriptori que volem que funcioni com a Router, editeu la màquina virtual amb aquestes característiques:

  • vCPUs: 1
  • Memòria (GB): 0.5 GB
  • Boot: Hard disk
  • Xarxes:
    • eth0: Default (sortida a Internet)
    • eth1: WireGuardVPN
    • eth2: Personal1

L'objectiu és preparar un script per poder establir les regles de Firewall, rutes i les accions que volem realitzar a l'arrencada del router.

Creem un primer script:

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

El contingut de l'script pot ser:

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

Creem el fitxer de servei:

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

El fitxer de servei ha de contenir:

#!/sbin/openrc-run

depend() {
    after sshd
}

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

Activem el servei:

rc-update add router default

Activem el bit de forwarding:

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

Podeu verificar si està actiu després d'un reboot (reinici de sistema) mirant el següent fitxer:

cat /proc/sys/net/ipv4/ip_forward

Instal·lem els paquets necessaris per a funcions de xarxa:

apk add iptables iproute2 dnsmasq bash

  • Ara que tenim els paquets necessaris i una base com a Router, editem l'script /usr/local/bin/startup_script.sh i afegim el següent contingut:
#!/bin/bash

# CONFIGURAR IP VPN DE L'USUARI ISARD
# Afegint manualment la ruta, ja que udhcpc no la configura per defecte.
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
# Creem fitxer de configuració
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
# Llancem el servidor dnsmasq
dnsmasq --conf-file=/etc/dnsmasq_router.conf

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

Per fer la comprovació, reinicieu l'escriptori, observeu que els missatges d'arrencada no mostrin cap error, i que el que s'ha programat a l'script s'hagi aplicat correctament.

Un cop verificat que tot funciona adequadament, mitjançant un altre escriptori que faci de client, comproveu que aquest obté IP, accés a Internet i resolució DNS... Creem una plantilla amb el nom router-Alpine.