
Connectant un linux a una VPN IPSEC de Fortigate
En aquest document vam intentar descriure tots els passos que necessitarem per connectar una màquina amb linux a una VPN que estigui oferint un Fortigate, en aquest cas una VPN de tipus IPSEC. Un post que espero no és gaire misteri.
Aquest post el baso en una màquina linux amb Ubuntu, si estàs fent servir un altre SO no basat en Debian, entenc que excepte la instal·lació, els altres passos seran iguals, i la instal·lació similar, vagi. Que la màquina la tenim actualitzada, amb un nom, un direcciona miento IP… total, que comencem! Instal·larem el client de VPN StrongSwan:
sudo apt install strongswan -y sudo apt install charon-systemd -y
Si volem permetre el reenviament de paquets a través de nosaltres a la VPN, o sigui, per a altres equips de la xarxa del linux que es puguin connectar a la xarxa de la VPN, editem 'sudo nano /etc/sysctl.conf’ i descomentem les línies següents, quedant:
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
Editem el fitxer de configuració de StrongSwan 'sudo nano /etc/ipsec.conf’ i creem la configuració de la VPN en base a la definició que hi hagi al costat de la VPN IPSEC al Fortigate, quedant alguna cosa com això (òbviament és possible que hauré de canviar algun valor, dependrà si us heu sortit de les configuracions estàndard, així com aportar alguns direccionaments):
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" tipus = túnel dpdaction = reiniciar keyExchange = ikev1 ikelifetime = 1440m keylife = 60m agressiu = sí ike = aes128-sha1-modp1536 esp = aes128-sha1-modp1536 xauth = client #leftid = LOCAL_ID #Si tenim ID local. 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 secrets 'sudo nano /etc/ipsec.secrets’ i amb el següent format hi afegim i modifiquem les nostres dades:
IP_PUBLICA_FORTIGATE : PSK "SECRETO_PRESHARED_KEY" NOMBRE_DE_USUARIO : XAUTH "CONTRASEÑA_DEL_USUARIO"
Recarreguem i provem de connectar la VPN…
sudo systemctl restart strongswan sudo ipsec update sudo ipsec reload sudo ipsec up FORTI_VPN
Com que tot haurà anat bé 😉 és hora de crear un script perquè s'executi automàticament en iniciar-se l'equip, que connecti la VPN i que a més, si la VPN es desconnecta, que s' intenti connectar de nou, 'nano /home/usuari/inicia_vpn.sh’ quedant alguna cosa com:
#!/bin/bash while : do sudo ipsec status |grep "ESTABLISHED" RET =$? if [ ! $RET -eq 0 ];then echo "[!] No hi ha tunel aixecat, reconnectant..." sudo systemctl restart strongswan sudo ipsec update sudo ipsec reload sudo ipsec up FORTI_VPN fi sleep 5 Fet
Fem l'script executable amb 'chmod +x /home/usuari/inicia_vpn.sh’ i el posem al cron perquè quan arrenqui la màquina linux es connecti sola, mitjançant 'crontab -e':
# m h dom mon dow command @reboot sleep 30 && sudo /home/usuari/inicia_vpn.sh
I llest! Ja tindríem una màquina linux connectada per la VPN IPSEC d'un Fortigate, així com un scriptcillo que controlarà la connectivitat! Com diria Arguiñano… Fàcil, senzill i per a tota la família! Ale, que us vagi molt bé, us comandament una abraçada!!