PDA

View Full Version : Configuración manual de protonvpn free usando ikev2 via strongswan-ipsec



soyasi
10-Nov-2021, 10:26
Este método funciona tanto con wicked, como con netwokmanager, pero su activación y desactivación es manual

Voy a explicarlo detalladamente con una cuenta free de openvpn.

Lo primero que debemos de hacer es registrarnos en protonvpn, para conseguir nuestro usuario y contraseña ikev2:

https://i.ibb.co/V24YQGw/ikev2b.png (https://ibb.co/RzwTBKj)

Una vez obtenidos, copialos en un archivo de texto, ya que los usaremos más adelante.

posteriormente buscamos el apartado de archivos de configuración de openvpn

https://i.ibb.co/XZQYBdc/configprotonvpnfree.png (https://ibb.co/jvNJKxn)

y nos copiamos las direcciones de los servidores free que queramos utilizar, en este caso, dejo algunos de los que podemos usar:


Holanda
nl-free-01.protonvpn.com
nl-free-02.protonvpn.com
nl-free-03.protonvpn.com
nl-free-04.protonvpn.com
nl-free-05.protonvpn.com
nl-free-06.protonvpn.com
nl-free-07.protonvpn.com
nl-free-08.protonvpn.com
nl-free-09.protonvpn.com
nl-free-10.protonvpn.com
nl-free-11.protonvpn.com
USA
us-free-01.protonvpn.com
us-free-02.protonvpn.com
us-free-03.protonvpn.com
Japón
jp-free-01.protonvpn.com
jp-free-02.protonvpn.com
jp-free-03.protonvpn.com


Una vez obtenidos los datos que vamos a utilizar, instalamos los siguientes paquetes:


zypper in strongswan strongswan-ipsec strongswan-libs0

una vez instalados los paquetes, bajamos el certificado protonvpn y lo copiamos al directorio apropiado, hazlo como root o bien usando sudo.


wget https://protonvpn.com/download/ProtonVPN_ike_root.der -O /tmp/protonvpn.der


mv /tmp/protonvpn.der /etc/ipsec.d/cacerts/

comprueba que efectivamente el certificado se ha copiado en el directorio adecuado:


ls /etc/ipsec.d/cacerts

veras el certificado:
protonvpn.der

A partir de ahora deberemos de editar/configurar dos ficheros: ipsec.secrets e ipsec.conf.

El primero que yo edito es ipsec.secrets
dejando su contenido de la siguiente forma

usuario : EAP password/contraseña el usuario: es el código alfamunérico que hemos obtenido de la página web protonvpn (Ikev2) y hemos copiado en el archivo de texto y el password/contraseña: es la contraseña que hemos obtenido de la página web de protonvpn (ikev2) y hemos copiado en el archivo de texto. Con eso ya tenemos editado y configurado ipsec.secrets.

El segundo que edito es ipsec.conf
en mi caso, configuro 3 servidores, pero puedes configurar uno o los que desees, siempre guardando la misma estructura.


# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup-->asegurate que has quitado la almohadilla
# strictcrlpolicy=yes
# uniqueids = no
# Add connections here.

# Sample VPN1 connections
conn protonvpn01-->nombre único de la conexión, en este caso protonvpn01
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2! (sin espacio después del símbolo =)
right=nl-free-01.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-01.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

# Sample VPN2 connections
conn protonvpn02-->nombre único de la conexión, en este caso protonvpn02
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2!(sin espacio después del símbolo =)
right=nl-free-02.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-02.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

# Sample VPN3 connections
conn protonvpn03-->nombre único de la conexión, en este caso protonvpn03
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2!(sin espacio después del símbolo =)
right=nl-free-03.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-03.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

Con esto ya hemos editado/configurado nuestra conexión, grabamos y salimos.

¿como arrancamos y comprobamos que todo esta bien?

ipsec start ó ipsec restart si no hemos desconectado correctamente, de esta forma eliminas los pid creados anteriormente.


linux:/home/soyasi # ipsec start
Starting strongSwan 5.8.2 IPsec [starter]...


linux:/home/soyasi # ipsec restart
Stopping strongSwan IPsec...
Starting strongSwan 5.8.2 IPsec [starter]...

Ahora toca levantar la vpn que hayamos elegido: en este caso ipsec up protonvpn03


linux:/home/soyasi # ipsec up protonvpn03
initiating IKE_SA protonvpn03[1] to 192.40.57.231
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) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1080 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (60 bytes)
parsed IKE_SA_INIT response 0 [ N(COOKIE) ]
initiating IKE_SA protonvpn03[1] to 192.40.57.231
generating IKE_SA_INIT request 0 [ N(COOKIE) SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1112 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (38 bytes)
parsed IKE_SA_INIT response 0 [ N(INVAL_KE) ]
peer didn't accept DH group ECP_256, it requested ECP_384
initiating IKE_SA protonvpn03[1] to 192.40.57.231
generating IKE_SA_INIT request 0 [ N(COOKIE) SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1144 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (304 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
selected proposal: IKE:AES_GCM_16_256/PRF_HMAC_SHA2_384/ECP_384
local host is behind NAT, sending keep alives
remote host is behind NAT
sending cert request for "C=CH, O=ProtonVPN AG, CN=ProtonVPN Root CA"
no IDi configured, fall back on IP address
establishing CHILD_SA protonvpn03{1}
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) CERTREQ CPRQ(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (306 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1248 bytes)
parsed IKE_AUTH response 1 [ EF(1/3) ]
received fragment #1 of 3, waiting for complete IKE message
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1248 bytes)
parsed IKE_AUTH response 1 [ EF(2/3) ]
received fragment #2 of 3, waiting for complete IKE message
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1231 bytes)
parsed IKE_AUTH response 1 [ EF(3/3) ]
received fragment #3 of 3, reassembled fragmented IKE message (3601 bytes)
parsed IKE_AUTH response 1 [ IDr CERT CERT AUTH EAP/REQ/ID ]
received end entity cert "CN=lxc-nl-17.protonvpn.com"
received issuer cert "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
using certificate "CN=lxc-nl-17.protonvpn.com"
using untrusted intermediate certificate "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
checking certificate status of "CN=lxc-nl-17.protonvpn.com"
certificate status is not available
using trusted ca certificate "C=CH, O=ProtonVPN AG, CN=ProtonVPN Root CA"
checking certificate status of "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
certificate status is not available
reached self-signed root ca with a path length of 1
authentication of '192.40.57.231' with RSA_EMSA_PKCS1_SHA2_384 successful
server requested EAP_IDENTITY (id 0x00), sending 'XXXXXXXXXXXXXXXXXXXXXX'
generating IKE_AUTH request 2 [ EAP/RES/ID ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (90 bytes), src family: 2
retransmit 1 of request with message ID 2
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (90 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (83 bytes)
parsed IKE_AUTH response 2 [ EAP/REQ/MD5 ]
server requested EAP_MD5 authentication (id 0x01)
requesting EAP_MSCHAPV2 authentication, sending EAP_NAK
generating IKE_AUTH request 3 [ EAP/RES/NAK ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (67 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (104 bytes)
parsed IKE_AUTH response 3 [ EAP/REQ/MSCHAPV2 ]
server requested EAP_MSCHAPV2 authentication (id 0x02)
generating IKE_AUTH request 4 [ EAP/RES/MSCHAPV2 ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (144 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (112 bytes)
parsed IKE_AUTH response 4 [ EAP/REQ/MSCHAPV2 ]
EAP-MS-CHAPv2 succeeded: '(null)'
generating IKE_AUTH request 5 [ EAP/RES/MSCHAPV2 ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (67 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (65 bytes)
parsed IKE_AUTH response 5 [ EAP/SUCC ]
EAP method EAP_MSCHAPV2 succeeded, MSK established
authentication of '192.168.1.3' (myself) with EAP
generating IKE_AUTH request 6 [ AUTH ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (113 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (401 bytes)
parsed IKE_AUTH response 6 [ AUTH CPRP(ADDR DNS MASK) SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
authentication of '192.40.57.231' with EAP successful
IKE_SA protonvpn03[1] established between 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]
scheduling reauthentication in 9729s
maximum IKE_SA lifetime 10269s
installing DNS server 10.1.0.1 to /run/strongswan/resolv.conf
handling INTERNAL_IP4_NETMASK attribute failed
installing new virtual IP 10.1.164.180
selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
CHILD_SA protonvpn03{1} established with SPIs c4e6bd70_i cae2cfe4_o and TS 10.1.164.180/32 === 0.0.0.0/0
received AUTH_LIFETIME of 13750s, reauthentication already scheduled in 9729s
connection 'protonvpn03' established successfully


si vemos que en vez de connection 'protonvpn03' established successfully el final es failed probaremos a levantar otra de las que tengamos configuradas, ya que al ser gratuitos pueden haber llegado al 100% de ocupación.

para comprobar que todo es correcto: ipsec status


linux:/home/soyasi # ipsec status
Security Associations (1 up, 0 connecting):
ike_sa 0
--------
protonvpn03[1]: ESTABLISHED 7 minutes ago, 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]

child_sa 0-0
------------
protonvpn03{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c4e6bd70_i cae2cfe4_o
protonvpn03{1}: 10.1.164.180/32 === 0.0.0.0/0

cuando no queramos estar conectado a la vpn: ipsec down protonvpn03


linux:/home/soyasi # ipsec down protonvpn03
deleting IKE_SA protonvpn03[1] between 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]
sending DELETE for IKE_SA protonvpn03[1]
generating INFORMATIONAL request 7 [ D ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (65 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (57 bytes)
parsed INFORMATIONAL response 7 [ ]
IKE_SA deleted
IKE_SA [1] closed successfully

¡ojo! asegurate siempre de hacer un bak de los archivos. Se podría usar yast2-vpn para hacer la configuración, pero lo encuento más complicado.
Si quieres hacer la prueba, tener en cuenta que yast2-vpn borra cualquier fichero modificado manualmente.


Agradecer a Victorhck (https://victorhckinthefreeworld.com/) el artículo que publicó en su día de protonvpn (https://victorhckinthefreeworld.com/2020/04/24/todas-aplicaciones-protonmail-protonvpn-software-libre-auditadas/), ya que sin su publicación, probablemente no lo hubiera conocido.

Espero que les sirva de ayuda.

soyasi

gvcastellon
16-Dec-2021, 05:18
Este método funciona tanto con wicked, como con netwokmanager, pero su activación y desactivación es manual

Voy a explicarlo detalladamente con una cuenta free de openvpn.

Lo primero que debemos de hacer es registrarnos en protonvpn, para conseguir nuestro usuario y contraseña ikev2:

https://i.ibb.co/V24YQGw/ikev2b.png (https://ibb.co/RzwTBKj)

Una vez obtenidos, copialos en un archivo de texto, ya que los usaremos más adelante.

posteriormente buscamos el apartado de archivos de configuración de openvpn

https://i.ibb.co/XZQYBdc/configprotonvpnfree.png (https://ibb.co/jvNJKxn)

y nos copiamos las direcciones de los servidores free que queramos utilizar, en este caso, dejo algunos de los que podemos usar:


Holanda
nl-free-01.protonvpn.com
nl-free-02.protonvpn.com
nl-free-03.protonvpn.com
nl-free-04.protonvpn.com
nl-free-05.protonvpn.com
nl-free-06.protonvpn.com
nl-free-07.protonvpn.com
nl-free-08.protonvpn.com
nl-free-09.protonvpn.com
nl-free-10.protonvpn.com
nl-free-11.protonvpn.com
USA
us-free-01.protonvpn.com
us-free-02.protonvpn.com
us-free-03.protonvpn.com
Japón
jp-free-01.protonvpn.com
jp-free-02.protonvpn.com
jp-free-03.protonvpn.com


Una vez obtenidos los datos que vamos a utilizar, instalamos los siguientes paquetes:


zypper in strongswan strongswan-ipsec strongswan-libs0

una vez instalados los paquetes, bajamos el certificado protonvpn y lo copiamos al directorio apropiado, hazlo como root o bien usando sudo.


wget https://protonvpn.com/download/ProtonVPN_ike_root.der -O /tmp/protonvpn.der


mv /tmp/protonvpn.der /etc/ipsec.d/cacerts/

comprueba que efectivamente el certificado se ha copiado en el directorio adecuado:


ls /etc/ipsec.d/cacerts

veras el certificado:
protonvpn.der

A partir de ahora deberemos de editar/configurar dos ficheros: ipsec.secrets e ipsec.conf.

El primero que yo edito es ipsec.secrets
dejando su contenido de la siguiente forma

usuario : EAP password/contraseña el usuario: es el código alfamunérico que hemos obtenido de la página web protonvpn (Ikev2) y hemos copiado en el archivo de texto y el password/contraseña: es la contraseña que hemos obtenido de la página web de protonvpn (ikev2) y hemos copiado en el archivo de texto. Con eso ya tenemos editado y configurado ipsec.secrets.

El segundo que edito es ipsec.conf
en mi caso, configuro 3 servidores, pero puedes configurar uno o los que desees, siempre guardando la misma estructura.


# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup-->asegurate que has quitado la almohadilla
# strictcrlpolicy=yes
# uniqueids = no
# Add connections here.

# Sample VPN1 connections
conn protonvpn01-->nombre único de la conexión, en este caso protonvpn01
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2! (sin espacio después del símbolo =)
right=nl-free-01.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-01.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

# Sample VPN2 connections
conn protonvpn02-->nombre único de la conexión, en este caso protonvpn02
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2!(sin espacio después del símbolo =)
right=nl-free-02.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-02.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

# Sample VPN3 connections
conn protonvpn03-->nombre único de la conexión, en este caso protonvpn03
left=%defaultroute
leftsourceip=%config
leftauth=eap-mschapv2
eap_identity=--> ¡nombre de usuario de ikev2!(sin espacio después del símbolo =)
right=nl-free-03.protonvpn.com-->nombre del server con el que quieres conectar
rightsubnet=0.0.0.0/0
rightauth=pubkey
rightid=%nl-free-03.protonvpn.com-->nombre del server con el que quieres conectar(sin espacio después del signo %)
rightca=/etc/ipsec.d/cacerts/protonvpn.der-->ruta del certificado
keyexchange=ikev2
type=tunnel
auto=add

Con esto ya hemos editado/configurado nuestra conexión, grabamos y salimos.

¿como arrancamos y comprobamos que todo esta bien?

ipsec start ó ipsec restart si no hemos desconectado correctamente, de esta forma eliminas los pid creados anteriormente.


linux:/home/soyasi # ipsec start
Starting strongSwan 5.8.2 IPsec [starter]...


linux:/home/soyasi # ipsec restart
Stopping strongSwan IPsec...
Starting strongSwan 5.8.2 IPsec [starter]...

Ahora toca levantar la vpn que hayamos elegido: en este caso ipsec up protonvpn03


linux:/home/soyasi # ipsec up protonvpn03
initiating IKE_SA protonvpn03[1] to 192.40.57.231
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) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1080 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (60 bytes)
parsed IKE_SA_INIT response 0 [ N(COOKIE) ]
initiating IKE_SA protonvpn03[1] to 192.40.57.231
generating IKE_SA_INIT request 0 [ N(COOKIE) SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1112 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (38 bytes)
parsed IKE_SA_INIT response 0 [ N(INVAL_KE) ]
peer didn't accept DH group ECP_256, it requested ECP_384
initiating IKE_SA protonvpn03[1] to 192.40.57.231
generating IKE_SA_INIT request 0 [ N(COOKIE) SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(REDIR_SUP) ]
sending packet: from 192.168.1.3[500] to 192.40.57.231[500] (1144 bytes), src family: 2
received packet: from 192.40.57.231[500] to 192.168.1.3[500] (304 bytes)
parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(HASH_ALG) N(CHDLESS_SUP) N(MULT_AUTH) ]
selected proposal: IKE:AES_GCM_16_256/PRF_HMAC_SHA2_384/ECP_384
local host is behind NAT, sending keep alives
remote host is behind NAT
sending cert request for "C=CH, O=ProtonVPN AG, CN=ProtonVPN Root CA"
no IDi configured, fall back on IP address
establishing CHILD_SA protonvpn03{1}
generating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) CERTREQ CPRQ(ADDR DNS) SA TSi TSr N(MOBIKE_SUP) N(NO_ADD_ADDR) N(MULT_AUTH) N(EAP_ONLY) N(MSG_ID_SYN_SUP) ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (306 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1248 bytes)
parsed IKE_AUTH response 1 [ EF(1/3) ]
received fragment #1 of 3, waiting for complete IKE message
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1248 bytes)
parsed IKE_AUTH response 1 [ EF(2/3) ]
received fragment #2 of 3, waiting for complete IKE message
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (1231 bytes)
parsed IKE_AUTH response 1 [ EF(3/3) ]
received fragment #3 of 3, reassembled fragmented IKE message (3601 bytes)
parsed IKE_AUTH response 1 [ IDr CERT CERT AUTH EAP/REQ/ID ]
received end entity cert "CN=lxc-nl-17.protonvpn.com"
received issuer cert "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
using certificate "CN=lxc-nl-17.protonvpn.com"
using untrusted intermediate certificate "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
checking certificate status of "CN=lxc-nl-17.protonvpn.com"
certificate status is not available
using trusted ca certificate "C=CH, O=ProtonVPN AG, CN=ProtonVPN Root CA"
checking certificate status of "C=CH, O=ProtonVPN AG, CN=ProtonVPN Intermediate CA 1"
certificate status is not available
reached self-signed root ca with a path length of 1
authentication of '192.40.57.231' with RSA_EMSA_PKCS1_SHA2_384 successful
server requested EAP_IDENTITY (id 0x00), sending 'XXXXXXXXXXXXXXXXXXXXXX'
generating IKE_AUTH request 2 [ EAP/RES/ID ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (90 bytes), src family: 2
retransmit 1 of request with message ID 2
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (90 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (83 bytes)
parsed IKE_AUTH response 2 [ EAP/REQ/MD5 ]
server requested EAP_MD5 authentication (id 0x01)
requesting EAP_MSCHAPV2 authentication, sending EAP_NAK
generating IKE_AUTH request 3 [ EAP/RES/NAK ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (67 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (104 bytes)
parsed IKE_AUTH response 3 [ EAP/REQ/MSCHAPV2 ]
server requested EAP_MSCHAPV2 authentication (id 0x02)
generating IKE_AUTH request 4 [ EAP/RES/MSCHAPV2 ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (144 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (112 bytes)
parsed IKE_AUTH response 4 [ EAP/REQ/MSCHAPV2 ]
EAP-MS-CHAPv2 succeeded: '(null)'
generating IKE_AUTH request 5 [ EAP/RES/MSCHAPV2 ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (67 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (65 bytes)
parsed IKE_AUTH response 5 [ EAP/SUCC ]
EAP method EAP_MSCHAPV2 succeeded, MSK established
authentication of '192.168.1.3' (myself) with EAP
generating IKE_AUTH request 6 [ AUTH ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (113 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (401 bytes)
parsed IKE_AUTH response 6 [ AUTH CPRP(ADDR DNS MASK) SA TSi TSr N(AUTH_LFT) N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) N(ADD_6_ADDR) ]
authentication of '192.40.57.231' with EAP successful
IKE_SA protonvpn03[1] established between 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]
scheduling reauthentication in 9729s
maximum IKE_SA lifetime 10269s
installing DNS server 10.1.0.1 to /run/strongswan/resolv.conf
handling INTERNAL_IP4_NETMASK attribute failed
installing new virtual IP 10.1.164.180
selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ
CHILD_SA protonvpn03{1} established with SPIs c4e6bd70_i cae2cfe4_o and TS 10.1.164.180/32 === 0.0.0.0/0
received AUTH_LIFETIME of 13750s, reauthentication already scheduled in 9729s
connection 'protonvpn03' established successfully


si vemos que en vez de connection 'protonvpn03' established successfully el final es failed probaremos a levantar otra de las que tengamos configuradas, ya que al ser gratuitos pueden haber llegado al 100% de ocupación.

para comprobar que todo es correcto: ipsec status


linux:/home/soyasi # ipsec status
Security Associations (1 up, 0 connecting):
ike_sa 0
--------
protonvpn03[1]: ESTABLISHED 7 minutes ago, 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]

child_sa 0-0
------------
protonvpn03{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c4e6bd70_i cae2cfe4_o
protonvpn03{1}: 10.1.164.180/32 === 0.0.0.0/0

cuando no queramos estar conectado a la vpn: ipsec down protonvpn03


linux:/home/soyasi # ipsec down protonvpn03
deleting IKE_SA protonvpn03[1] between 192.168.1.3[192.168.1.3]...192.40.57.231[192.40.57.231]
sending DELETE for IKE_SA protonvpn03[1]
generating INFORMATIONAL request 7 [ D ]
sending packet: from 192.168.1.3[4500] to 192.40.57.231[4500] (65 bytes), src family: 2
received packet: from 192.40.57.231[4500] to 192.168.1.3[4500] (57 bytes)
parsed INFORMATIONAL response 7 [ ]
IKE_SA deleted
IKE_SA [1] closed successfully

¡ojo! asegurate siempre de hacer un bak de los archivos. Se podría usar yast2-vpn para hacer la configuración, pero lo encuento más complicado.
Si quieres hacer la prueba, tener en cuenta que yast2-vpn borra cualquier fichero modificado manualmente.


Agradecer a Victorhck (https://victorhckinthefreeworld.com/) el artículo que publicó en su día de protonvpn (https://victorhckinthefreeworld.com/2020/04/24/todas-aplicaciones-protonmail-protonvpn-software-libre-auditadas/), ya que sin su publicación, probablemente no lo hubiera conocido.

Espero que les sirva de ayuda.

soyasi

Gracias @soyasi...
Por ahora estoy usando "ExpressVPN (https://www.expressvpn.com)" me conecto usando "openvpn" funciona bien y la oferta que obtuve por 1 año de suscripción no estuvo mal.
La puedo instalar en mi "Router" pero cuando la desconectaba hubo algunos conflictos con otros dispositivos de mi red.
También lo estoy usando en mi Media Player 'Nvidia Shield" para el uso de Kodi, hasta ahora mi "ISP" no ha protestado. ;)
Intenté usar un Cliente que tiene para Linux, pero no me funciona bien, es por eso que uso "openvpn".

Salud y Suerte.
Have a lot of Fun!!!

DiabloRojo
16-Dec-2021, 08:59
Tengo una cuenta gratuita de ProtonVPN que suelo usar en Windows, con tu guía intentare usarlo en openSUSE.
Por la experiencia de Windows habría que meter todos los servidores gratuitos de Holanda, en mi caso, en el archivo ipsec.conf

victorhck
16-Dec-2021, 11:59
Hola.

Si se me permite añado unos enlaces de tutoriales que realicé hace un tiempo, por si pueden ser útiles o complementar esta guía:

- https://victorhckinthefreeworld.com/2017/09/08/como-conectarnos-a-protonvpn-en-plasma-mediante-networkmanager/
- https://victorhckinthefreeworld.com/2017/03/03/como-conectarnos-a-un-vpn-mediante-openvpn-para-mantener-nuestra-privacidad/
- https://victorhckinthefreeworld.com/2017/06/21/como-conectarnos-a-protonvpn-en-linux/

Saludos.

karlggest
17-Dec-2021, 03:37
Hola.

Muevo al hilo a la sección de guías, que al fin y al cabo es lo que es.

Salud!!