Linux bat Fortigate-ren VPN IPSEC batera konektatuz

En este documento vamos a intentar describir todos los pasos que necesitaremos para conectar una máquina con linux a una VPN que esté ofreciendo un Fortigate, en este caso una VPN de tipo IPSEC. Un post que espero no albergue mucho misterio.

Este post lo baso en una máquina linux con Ubuntu, si estás usando otro SO no basado en Debian, entiendo que excepto la instalación, los demás pasos serán iguales, y la instalación similar, vaya. Que la máquina la tenemos actualizada, con un nombre, un direcciona miento IP… total, que empezamos! Instalaremos el cliente de VPN StrongSwan:

sudo apt install strongswan -y
sudo apt install charon-systemd -y

Si queremos permitir el reenvío de paquetes a través de nosotros a la VPN, edo, bestela, para otros equipos de la red del linux que se puedan conectar a la red de la VPN, editamos ‘sudo nano /etc/sysctl.confy descomentamos las líneas siguientes, geratzen dira:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Editamos el fichero de configuración de StrongSwan ‘sudo nano /etc/ipsec.confy creamos la configuración de la VPN en base a la definición que haya en el lado de la VPN IPSEC en el Fortigate, quedando algo como esto (obviamente es posible que tengáis que cambiar algún valor, dependerá si os habéis salido de las configuraciones standard, así como aportar algunos direccionamientos):

config setup
   charondebug = "dmn 1, mgr 1, ike 2, chd 1, job 1, cfg 3, knl 2, net 2, lib 1"
   nat_traversal = yes
conn "FORTI_VPN"
        type=tunnel
 dpdaction=restart
 keyexchange=ikev1
 ikelifetime=1440m
 keylife=60m
 aggressive=yes
 ike=aes128-sha1-modp1536
 esp=aes128-sha1-modp1536
 xauth=client
 #leftid=LOCAL_ID #Si tenemos Local ID.
        left=�faultroute
 leftsourceip=%config
 leftauth=psk
 rightid=%any
 rightauth=psk
 leftauth2=xauth
 right=IP_PUBLICA_FORTIGATE
 rightsubnet=RED_LADO_VPN/MASCARA
        xauth_identity=NOMBRE_DE_USUARIO
 auto=add

Creamos el fichero de secretos 'sudo nano /etc/ipsec.secrets’ y con el siguiente formato añadimos y modificamos nuestros datos:

IP_PUBLICA_FORTIGATE : PSK "SECRETO_PRESHARED_KEY"
NOMBRE_DE_USUARIO : XAUTH "CONTRASEÑA_DEL_USUARIO"

Recargamos y probamos a conectar la VPN…

sudo systemctl restart strongswan
sudo ipsec update
sudo ipsec reload
sudo ipsec up FORTI_VPN

Como todo habrá ido bien 😉 es hora de crear un script para que se ejecute automáticamente al iniciarse el equipo, que conecte la VPN y que además, si la VPN se desconecta, que se intente conectar de nuevo, 'nano /home/usuario/inicia_vpn.sh’ quedando algo como:

#!/bin/bash

while :
do
 sudo ipsec status |grep "ESTABLISHED"
  RET=$?
  if [ ! $RET -eq 0 ];then
 echo "[!] No hay tunel levantado, reconectando..."
      sudo systemctl restart strongswan
 sudo ipsec update
 sudo ipsec reload
 sudo ipsec up FORTI_VPN
 fi
 sleep 5
done

Hacemos el script ejecutable con 'chmod +x /home/usuario/inicia_vpn.sh’ y lo ponemos en el cron para que cuando arranque la máquina linux se conecte sola, mediante 'crontab -e':

# m h dom mon dow command
@reboot sleep 30 && sudo /home/usuario/inicia_vpn.sh

¡Y listo! Ya tendríamos una máquina linux conectada por la VPN IPSEC de un Fortigate, así como un scriptcillo que controlará la conectividad! Cómo diría Arguiñano… ¡Fácil, sencillo y para toda la familia! Ale, que os vaya muy bien, os mando un abrazo!!

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!

Ollama, lekuan IA-rekin hasiz

30 apiriletik 2024