Cómo configurar IPsec VPN usando Libreswan
El propósito de la VPN basada en IPsec es cifrar el tráfico en la capa de red del modelo OSI para que el atacante no pueda espiar entre el cliente y el servidor VPN. En nuestro artículo sobre strongswan, que también proporciona la funcionalidad del protocolo IPsec en Windows, Linux y Mac OS. Sin embargo, las herramientas LibreSwan y OpenSwan también están disponibles para el mismo propósito. En este tutorial, nuestro enfoque es LibreSwan, que es otra implementación del protocolo IPsec para el entorno Unix / Linux. LibreSwan se ha bifurcado del proyecto OpenSwan IPsec y está disponible en distribuciones de Linux basadas en RedHat.
En este tutorial, LibreSwan se compilará desde la fuente en Ubuntu 16.04 LTS. Las instrucciones para la compilación de LibreSwan para diferentes distribuciones de Linux se dan en el archivo Léame. La siguiente instantánea muestra los paquetes requeridos, habilitar / deshabilitar funciones y comandos para la instalación de LibreSwan.
Después de la instalación de LibreSwan, la VPN se configurará en la puerta de enlace al modo de puerta de enlace para cifrar el tráfico. Diferente ejemplos de LibreSwan La configuración se da en el sitio web del proyecto.
Cómo instalar Libreswan
También se asume que el reenvío de paquetes está habilitado en la distribución de Linux. Los siguientes paquetes son necesarios para la compilación de LibreSwan en Ubuntu 16.04 LTS.
apt-get -y update apt-get -y install libnss3-dev libnspr4-dev pkg-config libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make
El último código fuente de LibreSwan se puede descargar desde el sitio web del proyecto. El archivo comprimido se extrae con el siguiente comando.
tar -xzf libreswan-3.19.tar.gz
Ahora ejecute el comando «make» para obtener instrucciones para la compilación de LibreSwan.
Entonces, ejecute el comando «make all» para construir LibreSwan en Ubuntu VM. Este comando generará el siguiente error de que no se encuentra el archivo de encabezado independiente.
fatal error: unbound.h: No suh file or directory
Por lo tanto, también se requieren algunos paquetes más para LibreSwan. El siguiente comando instalará la biblioteca de desarrollo para unbound.
apt-get install libunbound-dev
Otro error debido a la ausencia de una biblioteca de eventos ocurrirá durante la compilación de LibreSwan.
fatal error: event.h: No suh file or directory
Ejecute el siguiente comando para instalar el paquete libevent.
apt-get install libevent-dev
El script de instalación muestra otro error debido a que falta el paquete systemd en la plataforma Ubuntu.
fatal error: systemd/sd-daemon.h: No suh file or directory
La instalación del paquete requerido se muestra a continuación.
apt-get install libsystemd-dev
Finalmente, vuelva a ejecutar «make all» o «make install» para compilar e instalar LibreSwan.
make all
El comando anterior instalará LibreSwan en el sistema. Sin embargo, se produjo el siguiente error al usar el comando «ipsec start».
/usr/local/sbin/ipsec: certutil: Not found
Los siguientes comandos también dieron el mismo error que se muestra a continuación.
ipsec setup start ipsec initnss
* (se requiere que la biblioteca NSS genere las claves requeridas)
/usr/local/sbin/ipsec: certutil: Not found
apt-get install libnss3-tools
El siguiente comando inicializa la biblioteca de cifrado NSS que se requiere para la herramienta LibreSwan.
ipsec initnss
Finalmente, inicie con éxito el servicio ipsec como se muestra a continuación.
ipsec setup start
Después de la instalación exitosa de LibreSwan, el siguiente paso es configurar la configuración de VPN en ambas VM. En este ejemplo, se configura un túnel basado en PSK para asegurar la puerta de enlace al tráfico de la puerta de enlace.
Lado A: archivo de configuración ipsec.conf
root@test-VirtualBox:/home/test# cat /etc/ipsec.conf config setup protostack=netkey conn vpn left=192.168.15.50 leftsubnet=10.12.50.0/24 right=192.168.15.5 rightsubnet=10.12.5.0/24 authby=secret pfs=yes rekey=yes keyingtries=3 type=tunnel auto=start ike=aes256-sha1;modp2048 phase2alg=aes256-sha1;modp2048
ipsec.secrets
192.168.15.50 192.168.15.5: PSK "12345678asdfghjk1qwe3wqA“
Lado B – Archivo de configuración ipsec.conf
root@test-VirtualBox:/home/test# cat /etc/ipsec.conf config setup protostack=netkey conn vpn left=192.168.15.50 leftsubnet=10.12.50.0/24 right=192.168.15.5 rightsubnet=10.12.5.0/24 authby=secret pfs=yes rekey=yes keyingtries=3 type=tunnel auto=start ike=aes256-sha1;modp2048 phase2alg=aes256-sha1;modp2048
ipsec.secrets
192.168.15.5 192.168.15.50: PSK "12345678asdfghjk1qwe3wqA“
Después de establecer la configuración anterior, ejecute el siguiente comando en ambos lados y se iniciará el proceso de negociación ipsec.
ipsec restart
Lado a:
Lado B:
El estado de ipsec vpn también se verifica usando el siguiente comando.
setkey -D
La instantánea anterior muestra 4 SA (asociaciones de seguridad) establecidas entre VM y el estado del túnel es «maduro».
Conclusión
En este tutorial, otra implementación de IPsec de código abierto «LibreSwan» se compila e instala con éxito en la máquina virtual de Ubuntu. También está configurado para establecer una puerta de enlace a una VPN de puerta de enlace basada en el PSK entre dos máquinas virtuales. También se observa que la configuración de LibreSwan es diferente a la de StrongSwan.