GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar IKEv2 VPN usando Strongswan y Lets encrypt en CentOS 7

Strongswan es una implementación de IPSec multiplataforma de código abierto. Es una solución VPN basada en IPSec que se enfoca en mecanismos de autenticación sólidos. Strongswan ofrece compatibilidad con los protocolos de intercambio de claves IKEv1 e IKEv2, autenticación basada en certificados X.509 o claves previamente compartidas y autenticación de usuario EAP IKEv2 segura.

En este tutorial, le mostraré cómo instalar un servidor VPN IPSec usando Strongswan. Crearemos un servidor VPN IKEv2 con la autenticación 'EAP-MSCHAPv2' y usaremos certificados Letsencrypt en el servidor CentOS 7.

Requisitos

  • Servidor CentOS 7
  • Privilegios de raíz

¿Qué haremos?

  1. Instalar Strongswan en CentOS 7
  2. Generar SSL Letsencrypt
  3. Configurar Strongswan
  4. Habilitar cortafuegos NAT
  5. Habilitar el reenvío de puertos
  6. Pruebas

Paso 1:instale Strongswan en CentOS 7

En este primer paso, instalaremos el software de implementación strongswan IPsec y todos los paquetes necesarios del repositorio de EPEL.

Instale el repositorio EPEL e instale el paquete strongswan usando los comandos yum a continuación.

yum -y instalar epel-release
yum -y instalar strongswan

Espere a que se instale el paquete strongswan.

Paso 2:generar un certificado SSL con Let's encrypt

Crearemos el servidor VPN IKEv2 usando un nombre de dominio 'ikev2.hakase-labs.io' y usaremos certificados generados desde letsencrypt.

En este paso, instalaremos la herramienta letsencrypt 'certbot' y generaremos certificados para el nombre de dominio del servidor 'ikev2.hakase-labs.io'.

Instale la herramienta 'certbot' letsencrypt.

yum -y instalar certbot

Después de la instalación de certbot, debemos abrir el puerto HTTP y HTTPS del servidor usando firewall-cmd.

Agregue los servicios HTTP y HTTPS a la lista de servicios de firewalld ejecutando los comandos firewall-cmd a continuación.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --recargar

Ahora podemos generar nuevos archivos de certificados SSL usando la herramienta certbot de letsencrypt.

Ejecute el comando certbot a continuación.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d ikev2.hakase-labs.io

Se han generado certificados Letsencrypt para el nombre de dominio vpn 'ikev2.hakase-labs.io' y se encuentran en el directorio '/etc/letsencrypt/live'.

A continuación, debemos copiar los archivos de certificado 'fullchain.pem', 'privkey.pem' y 'chain.pem' en el directorio '/etc/strongswan/ipsec.d/'.

cp /etc/letsencrypt/live/ikev2.hakase-labs.io/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/ikev2.hakase-labs .io/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/chain.pem /etc/strongswan/ipsec.d/cacerts //pre>

Todos los certificados de letsencrypt para la VPN de Strongswan denominados 'ikev2.hakase-labs.io' se han generado y copiado en el directorio '/etc/strongswan/ipsec.d'.

árbol /etc/strongswan/ipsec.d/

Paso 3:configurar Strongswan

Vaya al directorio '/etc/strongswan' y haga una copia de seguridad del archivo de configuración predeterminado 'ipsec.conf'.

cd /etc/strongswan/
mv ipsec.conf ipsec.conf.asli

Cree uno nuevo 'ipsec.conf' usando el editor vim.

vim ipsec.conf

Y pega la siguiente configuración.

#configuración global IPsec#chron loggerconfig setup charondebug="ike 1, knl 1, cfg 0" uniqueids=no#define new ipsec connectionconn hakase-vpn auto=add compress=no type=tunnel keyexchange=ikev2 ike=aes128- sha1-modp1024, aes128-sha1-modp1536, aes128-sha1-modp2048, aes128-sha256-ecp256, aes128-sha256-modp1024, aes128-sha256-modp1536, aes128-sha256-modp2048, aes256-2aes56-4-sha1-sha1 modp4096-modp1024, aes256-sha1-modp1024, aes256-sha256-modp1024, aes256-sha256-modp1536, aes256-sha256-modp2048, aes256-sha256-modp4096, aes256-sha384-ecp384, aes256-moda384, aes256-sha302-sha302-sha302-sha302-sha302 ¡modp1536, aes256-sha384-modp2048, aes256-sha384-modp4096, aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024, 3des-sha1-modp1024! esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha286,-ecp256 sha256-modp1024, aes128-sha256-modp1536, aes128-sha256-modp2048, aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024, aes128gcm16, aes128gcm16-ecp256, AES256-sha1, AES256-sha256, AES256-sha256-modp1024, aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes284-sha384-sha305 ¡modp4096, aes256gcm16, aes256gcm16-ecp384, 3des-sha1! fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [email protected] leftcert=fullchain.pem leftsendcert=siempre leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap- mschapv2 rightsourceip=10.15.1.0/24 rightdns=1.1.1.1,8.8.8.8 rightsendcert=nunca eap_identity=%identidad

Guardar y salir.

Detalles de configuración:

  • Cree una nueva conexión de túnel VPN IPSec llamada 'hakase-vpn'.
  • Especifique los conjuntos de cifrado IKEv2 y ESP para la autenticación.
  • La configuración del servidor 'izquierda' usando un nombre de dominio 'ikev2.hakase-labs.io' y usando el certificado letsencrypt 'fullchain.pem' ubicado en el directorio '/etc/strongswan/ipsec.d/certs'.
  • Los clientes 'correctos'/configuración remota con el método de autenticación EAP 'eap-mschapv2', asignan el rango de direcciones IP virtuales '10.15.1.0/24' a todos los clientes conectados y usan DNS público Cloudflare y google.

A continuación, debemos editar el archivo 'ipsec.secrets' para definir la clave privada del servidor RSA y las credenciales de la contraseña de usuario de EAP.

Edite el archivo 'ipsec.secrets'.

vim ipsec.secretos

Pegue la configuración a continuación.

:RSA "privkey.pem"hakase :EAP "[email protected]"tensai :EAP "[email protected]"

Guardar y salir.

Detalles de configuración:

  • Especifique la clave privada del servidor RSA mediante el certificado letsencrypt 'privkey.pem' ubicado en el directorio '/etc/strongswan/ipsec.d/private'.
  • Defina las credenciales de usuario de EAP con el formato 'usuario:EAP "contraseña"'.

La configuración de strongswan IPSec se ha completado. Inicie el servicio strongswan y habilítelo para que se inicie cada vez que se inicie el sistema.

systemctl iniciar strongswan
systemctl habilitar strongswan

Paso 4:habilite NAT en Firewalld

En este paso, habilitaremos el enmascaramiento de NAT y agregaremos el encabezado de autenticación (AH) de los protocolos IPSec y la carga útil de seguridad encapsulada (ESP) en Firewalld mediante la configuración de "regla enriquecida".

Agregue 'AH' y 'ESP' para los protocolos de autenticación y encriptación al firewalld.

firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add -rich-rule='protocolo de regla value="ah" accept'

Agregue los puertos y el servicio ipsec UDP.

firewall-cmd --zone=public --permanent --add-port=500/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp
firewall-cmd --zone=público --permanente --add-service="ipsec"

Ahora habilite el enmascaramiento del modo NAT y vuelva a cargar las reglas de configuración del cortafuegos.

firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --recargar

Se ha habilitado el modo NAT en firewalld, compruébelo con el siguiente comando.

firewall-cmd --listar-todos

El siguiente es el resultado.

Paso 5:habilitar el reenvío de puertos

Para habilitar el reenvío de puertos, necesitamos editar el archivo 'sysctl.conf'.

Edite el archivo '/etc/sysctl.conf' usando el editor vim.

vim /etc/sysctl.conf

Pegue la siguiente configuración allí.

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

Guarde y salga, ahora vuelva a cargar usando el comando sysctl a continuación.

sysctl-p

Se ha habilitado el reenvío de puertos. Ahora reinicie el servicio strongswan.

systemctl reiniciar strongswan

Paso 6:prueba de VPN IPSec de Strongswan

En este caso, haremos la prueba en el teléfono MacOS X y Android.

En MacOS

- Abra las 'Preferencias del sistema' y haga clic en el menú 'Red'.

Haga clic en el botón '+' para crear una nueva conexión VPN.

    • Interfaz:'VPN'
    • Tipo de VPN:'IKEv2'
    • Nombre del servicio:'IKEv2-vpn

- En 'Dirección del servidor' e 'ID remoto', escriba el nombre de dominio VPN 'ikev2.hakase-labs.io'.
- Haga clic en 'Configuración de autenticación'.
- Autenticación mediante un 'Nombre de usuario' .
- Escriba el nombre de usuario 'tensai' con la contraseña '[email protected]'
- Haga clic en 'OK' y haga clic en 'Apply'.


Se ha creado una nueva conexión VPN IKEv2 en el cliente. Ahora haga clic en el botón de conexión.


Y el cliente se conectó al servidor VPN strongswan y tiene una dirección IP interna/privada 10.15.1.1.

En Android

- Descargue e instale la aplicación nativa de Android strongswan desde Google-Play.
- Agregue un nuevo perfil de VPN
- Escriba el nombre de dominio del servidor 'ikev2.hakase-labs.io' y use el nombre de usuario y la contraseña de IKEv2 EAP autenticación.

El siguiente es el resultado cuando nos conectamos al servidor VPN.

El servidor VPN basado en IPSec IKEv2 se creó utilizando Strongswan y Letsencrypt en el servidor CentOS 7.


Cent OS
  1. Cómo configurar VPN IKEv2 usando Strongswan y Lets Encrypt en CentOS 8

  2. Cómo instalar y configurar DRBD en CentOS

  3. Cómo configurar e instalar Oracle Weblogic en CentOS 7

  4. Cómo instalar Shopware con NGINX y Lets Encrypt en CentOS 7

  5. Cómo instalar WonderCMS con Nginx y Lets Encrypt SSL en CentOS 7

Cómo instalar Shopware 6 con NGINX y Lets Encrypt en CentOS 8

Cómo Instalar PrestaShop con Apache y Lets Encrypt SSL en CentOS 8

Cómo instalar y configurar Asterisk 13 (PBX) en Centos 7

Cómo instalar y administrar paquetes en CentOS usando RPM

Cómo instalar Webmin en CentOS 8 y Rocky Linux 8

Cómo instalar VPN PPTP en CentOS 6