GNU/Linux >> Tutoriales Linux >  >> Ubuntu

VPN Ipsec basada en Libreswan usando claves precompartidas y RSA en Ubuntu

En este tutorial, LibreSwan se instalará en la plataforma Ubuntu. LibreSwan es una implementación de código abierto del protocolo IPsec, se basa en el proyecto FreeSwan y está disponible como paquete listo para usar en distribuciones de Linux basadas en RedHat. Sin embargo, se dan instrucciones detalladas en el código fuente del proyecto para compilarlo en otras plataformas Linux. Después del proceso de instalación, se configurará una VPN IPsec basada en puerta de enlace para proteger los datos del emisor al receptor.

Los detalles sobre el protocolo IPsec se proporcionan en nuestro artículo anterior. Sin embargo, a continuación se explica una breve información sobre las dos partes del protocolo IPsec con respecto a LibreSwan.

Una VPN basada en IPsec consta del intercambio de claves de Internet protocolo y la carga útil de seguridad encapsulada (ESP) protocolo.

-->   IKE

Como su nombre lo indica, el propósito del protocolo IKE es autenticar (usando una clave precompartida, criptografía de clave pública, freeradius) pares de una VPN, generar claves dinámicamente y compartir las claves con los pares VPN. Las claves de cifrado para la segunda fase de IPsec también dependen de IKE. Libreswan implementa el protocolo IKE utilizando el programa pluto del proyecto.

-->   ESP

El protocolo ESP es la especificación real de la política acordada entre pares que se implementa en la pila IPsec del kernel de Linux (NETEY/XFRM).

Características de Libreswan

  • Compatibilidad con autenticación basada en clave precompartida.
  • Compatibilidad con autenticación basada en clave pública.
  • Admite ambas versiones IKE v1/v2 de intercambio de claves.
  • Compatible con la biblioteca criptográfica NSS.
  • Xauth y DNSSec también son compatibles.

Paquetes necesarios para Ubuntu 16.04

Se requiere instalar los siguientes paquetes en Ubuntu para una compilación exitosa de LibreSwan. También se brinda una breve información en el código fuente sobre cómo habilitar o deshabilitar complementos/funciones y comandos cuando instala LibreSwan.

apt-get -y update
apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

La instalación de los paquetes necesarios se muestra a continuación.

El último código fuente de la herramienta IPsec se descarga con el comando wget y se extrae con el siguiente comando tar.

wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20

No es necesario ejecutar el comando de configuración, simplemente ejecute make comando que mostrará dos formas de construir LibreSwan como se muestra a continuación.

Finalmente, ejecuta make all  Comando para compilar LibreSwan en la plataforma.

make all

Ahora ejecuta make install comando para instalar el programa IPsec.

Iniciar el servicio IPsec

Como se muestra en la captura de pantalla anterior, se requiere habilitar el servicio IPSec en la plataforma Ubuntu usando el siguiente comando.

systemctl enable ipsec.service

Es necesario inicializar la biblioteca criptográfica NSS antes de iniciar el servicio IPsec. Lo utiliza LibreSwan para el uso de algoritmos criptográficos en IPsec VPN.

IPsec initnss

Finalmente, inicie el servicio IPSec usando el siguiente comando.

ipsec setup start

Ejecutar estado ipsec comando para ver la configuración de LibreSwan en la plataforma Ubuntu.

ipsec status

Configuración de LibreSwan

En este tutorial, se configurará una VPN IPsec entre pares utilizando una clave precompartida y claves RSA (par de claves públicas/privadas). La configuración de ambos compañeros (izquierda/derecha) se muestra a continuación.

VPN basada en clave precompartida

ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

versión 2                                                                            192.168.15.145 192.168.15.245:PSK "vpn_psk>123"123

config setup                                                         
                 protostack=clave de red
conexión vpn_psk

                  ike=aes256-sha256;modp4096
                  fase2alg=aes256-sha256;modp4096
                  izquierda=192.168.15.145
                  subred izquierda=172.16.10.0/24
                  derecha=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=secreto
                  tipo=túnel
                  auto=iniciar

ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

versión 2                                                                            192.168.15.245 192.168.15.145:PSK "vpn_psk123"

config setup                                                         
                 protostack=clave de red
conexión vpn_psk

         ike=aes256-sha256;modp4096
         fase2alg=aes256-sha256;modp4096
         izquierda=192.168.15.245
         subred izquierda=192.169.50.0/24
         derecha=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=secreto
         tipo=túnel
         auto=iniciar

Después de establecer la configuración anterior en los archivos ipsec.conf e ipsec.secrets, ejecute el siguiente comando en ambos lados para iniciar el proceso de negociación de IPSec.

ipsec restart

Estado de VPN de clave previamente compartida

La salida de estado ipsec y setkey -D los comandos se muestran a continuación.

ipsec status

setkey -D

VPN basada en clave RSA (pública/privada)

Se requiere generar claves RSA para ambas máquinas e incluirlas en el archivo de configuración. La versión reducida de una clave RSA se muestra en este tutorial. También asegúrese de que la clave pública incluida esté en una sola línea.

Generación de claves RSA

Como se muestra a continuación, los siguientes comandos se utilizan para generar claves para ambos pares.

 ipsec newhostkey --output /etc/ipsec.secrets

La clave pública generada se agrega en el archivo ipsec.secrets como se muestra a continuación.

De manera similar, las claves RSA se generan usando el mismo comando para la máquina del lado derecho, como se muestra en la siguiente instantánea.

Como se muestra arriba, los comandos de generación de claves incluyen automáticamente la clave pública RSA en /etc/ipsec.secrets en ambas máquinas pares. La clave privada de RSA se almacena en la base de datos de NSS en  /etc/ipsec.d/*.db archivos.

Después de generar claves RSA, el siguiente paso cambia la configuración de ambas máquinas en el archivo ipsec.conf.

ipsec.conf (configuration file of left VM)             

versión 2                                                                                  

config setup                                                         
                 protostack=clave de red
conexión vpn_rsa

                  ike=aes256-sha256;modp4096
                  fase2alg=aes256-sha256;modp4096
                  izquierda=192.168.15.145
                  subred izquierda=172.16.10.0/24
                  derecha=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=rsasig

                  tipo=túnel
                  auto=iniciar

ipsec.conf (configuration file of right VM)              

versión 2                                                                             

config setup                                                         
                 protostack=clave de red
conexión vpn_rsa

         ike=aes256-sha256;modp4096
         fase2alg=aes256-sha256;modp4096
         izquierda=192.168.15.245
         subred izquierda=192.169.50.0/24
         derecha=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=rsasig
         rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
         leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

         tipo=túnel
         auto=iniciar

Después de cambiar los archivos de configuración de LibreSwan, el siguiente paso es reiniciar el servicio IPsec en ambas máquinas con el siguiente comando.

ipsec restart

El estado de la VPN IPsec en el dispositivo izquierdo se muestra en la siguiente captura de pantalla. Muestra que RSASIG se utiliza en la política para autenticar a los pares del túnel IPsec.

El propósito de este tutorial es explorar "LibreSwan", que proporciona la implementación del protocolo IPsec. Está disponible en las distribuciones de RedHat, sin embargo, se puede compilar fácilmente para otra plataforma como Ubuntu/Debian. En este artículo, la primera herramienta LibreSwan se crea desde el origen y luego se configuran dos VPN usando claves precompartidas y RSA entre los dispositivos de puerta de enlace.


Ubuntu
  1. VPN IPsec basada en StrongSwan usando certificados y clave previamente compartida en Ubuntu 16.04

  2. Cómo instalar y configurar el servidor Algo VPN en Ubuntu 20.04

  3. Uso de ATA a través de Ethernet (AoE) en Ubuntu 12.10 (iniciador y destino)

  4. Uso de Ansible para instalar y configurar Elasticsearch en Ubuntu 20.04

  5. Ubuntu:¿cómo desplazarse en una terminal de Ubuntu usando las teclas de flecha?

Cómo encontrar y eliminar archivos duplicados en Ubuntu usando Fdupes

Uso de Yarn en Ubuntu y otras distribuciones de Linux

Uso de archivos y carpetas en la pantalla del escritorio en Ubuntu

Consejos y trucos para usar Ctrl+Z en Ubuntu Linux

¿Las teclas de acceso directo de Ubuntu 18.04 no guardan capturas de pantalla?

Cómo usar apt-get reinstall en Debian y Ubuntu