Conectase a VPN GlobalProtect desde linux con OpenConnect

GlobalProtect es un servicio de la empresa Palo Alto Networks, y consta de varios productos, entre ellos GlobalProtect Gateway, GlobalProtect Portal y Agente de GlobalProtect. Este último hace tres cosas clave: se comunica con el Portal GlobalProtect para obtener la política adecuada para el usuario. Establece y mantiene una conexión segura a la puerta de enlace GlobalProtect Gateway más cercana (y rápida) de Palo Alto Networks. Y por último, compila un Perfil de información de host (HIP) del dispositivo cliente que incluye factores como el nivel de parche, el cifrado de disco, la versión antivirus y muchos más.

Fuente: https://palo-alto.fandom.com/wiki/GlobalProtect


1. Instalar openconnect (ejemplo para Debian / Ubuntu)
sudo apt install openconnect



2. Obtener HASH del certificado y guardar
sudo openconnect --authenticate globalprotect.<tunombre.dominio>



3. Crear y/o cambiar al directorio donde se guardaran los archivos de configuración, en mi caso fue en "~/Documents/software/vpnconnect", pero pueden guardarse donde desee.
cd ~/Documents/software
mkdir vpnconnect
cd vpnconnect

4. Descargar script para hipreport:
wget https://raw.githubusercontent.com/dlenski/openconnect/034dba1b6e365e76aa1b05f6a0f6f0fcd206e38f/hipreport.sh



5. Dar permisos al script hipreport
chmod 755 hipreport.sh



6. Conectar a la VPNn, se solicitará la clave del super-usuario del sistemaoperativo y luego la del usuario del dominio de la VPN.
sudo openconnect --csd-wrapper=./hipreport.sh --protocol=gp --user=<usuariodeldominio> --servercert <HASH> globalprotect.<tunombre.dominio>



7. Crear script de conexión para redireccionar tráfico por la nueva interfaz de red creada por OpenConnect
nano runvpn.sh
#!/bin/bash
echo "**** Script de conexion a GlobalProtect ****"
user=<tu usuario de dominio>
password=<tu clave de dominio>
echo $password | sudo openconnect --csd-wrapper=/<ruta del archivo>/hipreport.sh --protocol=gp --user=$user --passwd-on-stdin --servercert <tu hash> <tu dominio> &
sleep 5
echo "**** Se ha establecido correctamente la conexion ****"
tun0IP="$(ifconfig tun0 | grep 'inet ' | cut -d 't' -f2 | cut -d ' ' -f2)"
echo "Tu IP es: $tun0IP"
sudo route add default gw $tun0IP tun0
echo "**** El trafico ha sido dirijido a tun0 ****"

Comentarios