- -

Árbol de páginas

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 2 Siguiente »

Unable to render {include} The included page could not be found.


Antes de comenzar debe verificar los siguientes puntos:


Podemos disponer de hasta cuatro túneles, aunque lo habitual es que solo se tenga acceso a dos de ellos: ALUMNO y ALUMNO-BIB o UPVNET y UPVNET-BIB

Debemos seleccionar cual de ellos queremos configurar teniendo en cuenta el acceso que proporcionan y sustituir el dato ID o Nombre de Usuario según corresponda según su colectivo:



Si usted es
QuieroDatoPDI o PTGASAlumnoOtros casos especiales

Acceder por el túnel solo a la UPV. El resto de tráfico a Internet irá por mi conexión.

Opción recomendada.

ID

UPVNET

ALUMNO

el texto indicado en su caso

Acceder a Internet también por el túnel para ver las bases de datos y revistas de Biblioteca.

ID 

UPVNET-BIBALUMNO-BIBNo es posible
En cualquier casoNombre de Usuarioxxxxx@upvnet.upv.esxxxxx@alumno.upv.esxxxxx@upvnet.upv.es


Forticlient no proporciona soporte en Linux para túneles IKEv2 por lo que no podemos utilizar el cliente oficial y las interfaces gráficas habituales de network-manager no cumplen con todos los requisitos necesarios para configurar los túneles, por lo que realizaremos la configuración y posterior gestión de la conexión y desconexión de los túneles mediante el terminal.

Ejecute estos comandos como root en un terminal para instalar el software necesario.

Si está utilizando un usuario sin privilegios puede ejecutar los comandos utilizando sudo (el usuario tiene que estar habilitado para utilizar sudo para ello debe pertenecer al grupo sudo y disponer de la configuración en /etc/sudoers):

sudo apt update
sudo apt upgrade
sudo apt-get install strongswan strongswan-swanctl libstrongswan-standard-plugins libcharon-extra-plugins libstrongswan-extra-plugins systemd-resolved

Realizamos una copia de seguridad del fichero original de configuración del servicio swanctl:

cp -a /etc/swanctl/swanctl.conf /etc/swanctl/swanctl.conf.old


Borramos el contenido previo de /etc/swanctl/swanctl.conf y lo cambiamos por la siguiente configuración (pese a que hay pocos cambios de configuración para cada túnel para facilitar la configuración y reducir los posibles errores de configuración se proporcionan cuatro opciones de configuración, una por cada identificador):


ID ALUMNO (Acceder por el túnel solo a la UPV. El resto de tráfico a Internet irá por mi conexión):

ALUMNO
connections {

    ALUMNO {
        version = 2
        remote_addrs = vpn.upv.es
        proposals = aes256-sha256-modp2048
        vips = 0.0.0.0
        dpd_delay = 60s
        encap = yes
        fragmentation = yes

        local {
            auth = eap-mschapv2
            id = ALUMNO
            eap_id = xxxx@alumno.upv.es
        }

        remote {
            auth = psk
            id = ALUMNO
        }

        children {
            net {
                local_ts = dynamic
                remote_ts = 158.42.0.0/16,10.10.0.0/8,172.16.0.0/12,192.168.0.0/16
                updown = /etc/strongswan.d/scripts/updown-routes-dns.sh
                esp_proposals = aes256-sha256-modp2048
                dpd_action = restart
                start_action = start
            }
        }
    }

}

secrets {

    ike-psk {
        secret = "buscar_contraseña_compartida"
    }

    eap-user {
        id = xxxx@alumno.upv.es
        secret = "contraseña_del_usuario"
    }

}


ID ALUMNO-BIB (Acceder a Internet también por el túnel para ver las bases de datos y revistas de Biblioteca):

ALUMNO-BIB
connections {

    ALUMNO-BIB {
        version = 2
        remote_addrs = vpn.upv.es
        proposals = aes256-sha256-modp2048
        vips = 0.0.0.0
        dpd_delay = 60s
        encap = yes
        fragmentation = yes

        local {
            auth = eap-mschapv2
            id = ALUMNO-BIB
            eap_id = xxxx@alumno.upv.es
        }

        remote {
            auth = psk
            id = ALUMNO-BIB
        }

        children {
            net {
                local_ts = 0.0.0.0/0
                remote_ts = 0.0.0.0/0
                updown = /etc/strongswan.d/scripts/updown-routes-dns.sh
                esp_proposals = aes256-sha256-modp2048
                dpd_action = restart
                start_action = start
            }
        }
    }

}

secrets {

    ike-psk {
        secret = "buscar_contraseña_compartida"
    }

    eap-user {
        id = xxxx@alumno.upv.es
        secret = "contraseña_del_usuario"
    }
}


ID UPVNET (Acceder por el túnel solo a la UPV. El resto de tráfico a Internet irá por mi conexión):

UPVNET
connections {

    UPVNET {
        version = 2
        remote_addrs = vpn.upv.es
        proposals = aes256-sha256-modp2048
        vips = 0.0.0.0
        dpd_delay = 60s
        encap = yes
        fragmentation = yes

        local {
            auth = eap-mschapv2
            id = UPVNET
            eap_id = xxxx@upvnet.upv.es
        }

        remote {
            auth = psk
            id = UPVNET
        }

        children {
            net {
                local_ts = dynamic
                remote_ts = 158.42.0.0/16,10.10.0.0/8,172.16.0.0/12,192.168.0.0/16
                updown = /etc/strongswan.d/scripts/updown-routes-dns.sh
                esp_proposals = aes256-sha256-modp2048
                dpd_action = restart
                start_action = start
            }
        }
    }

}

secrets {

    ike-psk {
        secret = "buscar_contraseña_compartida"
    }

    eap-user {
        id = xxxx@upvnet.upv.es
        secret = "contraseña_del_usuario"
    }
}


ID UPVNET-BIB (Acceder a Internet también por el túnel para ver las bases de datos y revistas de Biblioteca):

ALUMNO-BIB
connections {

    UPVNET-BIB {
        version = 2
        remote_addrs = vpn.upv.es
        proposals = aes256-sha256-modp2048
        vips = 0.0.0.0
        dpd_delay = 60s
        encap = yes
        fragmentation = yes

        local {
            auth = eap-mschapv2
            id = UPVNET-BIB
            eap_id = xxxx@upvnet.upv.es
        }

        remote {
            auth = psk
            id = UPVNET-BIB
        }

        children {
            net {
                local_ts = 0.0.0.0/0
                remote_ts = 0.0.0.0/0
                updown = /etc/strongswan.d/scripts/updown-routes-dns.sh
                esp_proposals = aes256-sha256-modp2048
                dpd_action = restart
                start_action = start
            }
        }
    }

}

secrets {

    ike-psk {
        secret = "buscar_contraseña_compartida"
    }

    eap-user {
        id = xxxx@upvnet.upv.es
        secret = "contraseña_del_usuario"
    }
}



Debemos cambiar xxxx por nuestro nombre de usuario en dos entradas, poner nuestra contraseña de usuario y poner la clave pre-compartida que se indica en el portal de autogestión de la intranet: https://intranet.upv.es/pls/soalu/sic_piolin.LanzarForm?p_id_form=722D4AF14F7C7D0B0F5952E389FB82B5 


El fichero /etc/strongswan.d/scripts/updown-routes-dns.sh se utiliza para configurar los DNS y el sufijo DNS de la UPV, se trata de un fichero opcional, en caso de no querer utilizarlo se comenta o se elimina la línea updown y se utilizarán los DNS del proveedor de su conexión. Para configurarlo, como usuario root, primero creamos la carpeta, editamos el fichero y copiamos el siguiente contenido:

mkdir -p /etc/strongswan.d/scripts

touch /etc/strongswan.d/scripts/updown-routes-dns.sh

chmod +x /etc/strongswan.d/scripts/updown-routes-dns.sh

nano /etc/strongswan.d/scripts/updown-routes-dns.sh


Configuración DNS
#!/bin/bash

IFACE="$PLUTO_INTERFACE"

case "$PLUTO_VERB" in
  up-client)
    resolvectl dns $IFACE 158.42.1.118 158.42.1.128
    resolvectl domain $IFACE "~upv.es"
    ;;

  down-client)
    resolvectl revert $IFACE
    nmcli general reload
    ;;
esac


Ya disponemos de la configuración necesaria, vamos a proceder a cargar dicha configuración (recordad, siempre como root o con sudo):

swanctl --load-all 

Podremos ver algo similar a esto, no hay problema si no sale exactamente lo mismo pero si debe indicar que se ha cargado una conexión:

root@UbuntuPVNTest:/etc/swanctl# swanctl --load-all
loaded ike secret 'ike-psk'
loaded eap secret 'eap-user'
no authorities found, 0 unloaded
no pools found, 0 unloaded
loaded connection 'ALUMNO'
successfully loaded 1 connections, 0 unloaded


Podemos comprobarlo listando las conexiones configuradas en el sistema:

swanctl --list-conns 

root@UbuntuPVNTest:/etc/swanctl# swanctl --list-sas
ALUMNO: #120, CONNECTING, IKEv2, 8ed555d12eeb427a_i* 7ab40febe95a28ae_r
  local  'ALUMNO' @ X.X.X.X[4500]
  remote 'ALUMNO' @ X.X.X.X[4500]
  AES_CBC-256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
  active:  IKE_AUTH IKE_CERT_POST IKE_CONFIG IKE_AUTH_LIFETIME IKE_MOBIKE IKE_ESTABLISH CHILD_CREATE


Para establecer la conexión utilizamos la siguiente orden (recordad tener a mano el dispositivo para validar la autenticación mediante 2FA, en este momento es cuando se va a solicitar):

swanctl --initiate --child net 

root@UbuntuPVNTest:/etc/swanctl# swanctl --initiate --child net
[IKE] initiating IKE_SA ALUMNO[123] to X.X.X.X
[ENC] generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
[ENC] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
[CFG] selected proposal: IKE:AES_CBC_256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048
[IKE] remote host is behind NAT
[IKE] establishing CHILD_SA net{16}
[ENC] generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr CPRQ(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
[ENC] parsed IKE_AUTH response 1 [ IDr AUTH EAP/REQ/ID ]
[IKE] authentication of 'ALUMNO' with pre-shared key successful
[IKE] server requested EAP_IDENTITY (id 0xDB), sending 'xxxx@upvnet.upv.es'

[.....]
[IKE] IKE_SA ALUMNO[123] established between X.X.X.X[ALUMNO]...X.X.X.X[ALUMNO]
[IKE] scheduling rekeying in 13867s
[IKE] maximum IKE_SA lifetime 15307s
[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
[IKE] CHILD_SA net{16} established with SPIs c8fb653c_i a4c841e6_o and TS X.X.X.X/32 === 10.0.0.0/8 158.42.0.0/16 172.16.0.0/12 192.168.0.0/16
initiate completed successfully


Para finalizar la conexión utilizaremos:

swanctl --terminate --child net --ike ALUMNO

root@UbuntuPVNTest:/etc/swanctl# swanctl --terminate --child net --ike ALUMNO

[...]

[ENC] parsed INFORMATIONAL response 0 [ D ]
[IKE] received DELETE for ESP CHILD_SA with SPI a4c841e6
[IKE] CHILD_SA net{16} closed
terminate completed successfully



Algunos comandos útiles para comprobar la conexión y verificar la configuración:

tracepath -n www.upv.es (debe enrutar por el túnel siempre)
tracepath -n www.valencia.es (debe enrutar por el túnel solo en UPVNET-BIB Y EN ALUMNO-BIB)
resolvectl status
ifconfig
ifconfig -a
ip a
ip r
route -n
ip rule show
ip route show table 220
ip xfrm policy


En caso de querer disponer de más de un túnel podemos tener varios ficheros de configuración y con un enlace simbólico cambiamos le fichero de configuración, por ejemplo:

root@UbuntuPVNTest:/etc/swanctl# ll
total 108
drwxr-xr-x  15 root root  4096 Jun  1 09:59 ./
drwxr-xr-x 150 root root 12288 May 28 06:14 ../
drwxr-xr-x   2 root root  4096 Apr 17 21:38 conf.d/
drwx------   2 root root  4096 Apr 17 21:38 ecdsa/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 pkcs12/
drwx------   2 root root  4096 Apr 17 21:38 pkcs8/
drwx------   2 root root  4096 Apr 17 21:38 private/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 pubkey/
drwx------   2 root root  4096 Apr 17 21:38 rsa/
lrwxrwxrwx   1 root root    19 Jun  1 09:17 swanctl.conf@ -> swanctl.conf.ALUMNO
-rw-r--r--   1 root root   925 Jun  1 09:59 swanctl.conf.ALUMNO
-rw-r--r--   1 root root   898 May 29 13:06 swanctl.conf.ALUMNOBIB
-rw-r--r--   1 root root   937 May 29 13:07 swanctl.conf.UPVNET
-rw-r--r--   1 root root   911 May 29 13:07 swanctl.conf.UPVNETBIB
-rw-r--r--   1 root root  3280 Jun  1 09:16 swanctl.conf.allprofiles
-rw-r--r--   1 root root 16822 Apr 17 21:38 swanctl.conf.old
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509aa/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ac/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ca/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509crl/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ocsp/
root@UbuntuPVNTest:/etc/swanctl# rm swanctl.conf
root@UbuntuPVNTest:/etc/swanctl# ln -s swanctl.conf.ALUMNOBIB swanctl.conf
root@UbuntuPVNTest:/etc/swanctl# ll
total 108
drwxr-xr-x  15 root root  4096 Jun  1 12:05 ./
drwxr-xr-x 150 root root 12288 May 28 06:14 ../
drwxr-xr-x   2 root root  4096 Apr 17 21:38 conf.d/
drwx------   2 root root  4096 Apr 17 21:38 ecdsa/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 pkcs12/
drwx------   2 root root  4096 Apr 17 21:38 pkcs8/
drwx------   2 root root  4096 Apr 17 21:38 private/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 pubkey/
drwx------   2 root root  4096 Apr 17 21:38 rsa/
lrwxrwxrwx   1 root root    22 Jun  1 12:05 swanctl.conf@ -> swanctl.conf.ALUMNOBIB
-rw-r--r--   1 root root   925 Jun  1 09:59 swanctl.conf.ALUMNO
-rw-r--r--   1 root root   898 May 29 13:06 swanctl.conf.ALUMNOBIB
-rw-r--r--   1 root root   937 May 29 13:07 swanctl.conf.UPVNET
-rw-r--r--   1 root root   911 May 29 13:07 swanctl.conf.UPVNETBIB
-rw-r--r--   1 root root  3280 Jun  1 09:16 swanctl.conf.allprofiles
-rw-r--r--   1 root root 16822 Apr 17 21:38 swanctl.conf.old
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509aa/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ac/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ca/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509crl/
drwxr-xr-x   2 root root  4096 Apr 17 21:38 x509ocsp/
root@UbuntuPVNTest:/etc/swanctl# swanctl --load-all
agent plugin requires CAP_SETUID/CAP_SETGID capability
plugin 'agent': failed to load - agent_plugin_create returned NULL
loaded ike secret 'ike-psk'
loaded eap secret 'eap-user'
no authorities found, 0 unloaded
no pools found, 0 unloaded
loaded connection 'upv-ALUMNO-BIB'
successfully loaded 1 connections, 1 unloaded



  • Sin etiquetas