Com configurar una VPN basada en IPsec amb Strongswan a CentOS/RHEL 8


strongSwan és una solució VPN de codi obert, multiplataforma, moderna i completa basada en IPsec per a Linux que ofereix suport complet per a Internet Key Exchange (tant IKEv1 com IKEv2) per establir associacions de seguretat (SA) entre dos iguals. Té totes les funcions, és modular per disseny i ofereix desenes de connectors que milloren la funcionalitat bàsica.

Article relacionat: Com configurar una VPN basada en IPsec amb Strongswan a Debian i Ubuntu

En aquest article, aprendràs a configurar passarel·les VPN IPsec de lloc a lloc mitjançant strongSwan als servidors CentOS/RHEL 8. Això permet que els companys s'autentiquin entre ells mitjançant una clau precompartida (PSK) forta. Una configuració de lloc a lloc significa que cada passarel·la de seguretat té una subxarxa darrere.

No oblideu utilitzar les vostres adreces IP del món real durant les configuracions mentre seguiu la guia.

Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Pas 1: habilitar el reenviament IP del nucli a CentOS 8

1. Comenceu habilitant la funcionalitat de reenviament d'IP del nucli al fitxer de configuració /etc/sysctl.conf a les dues passarel·les VPN.

# vi /etc/sysctl.conf

Afegiu aquestes línies al fitxer.

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

2. Després de desar els canvis al fitxer, executeu l'ordre següent per carregar els nous paràmetres del nucli en temps d'execució.

# sysctl -p

3. A continuació, creeu una ruta estàtica permanent al fitxer /etc/sysconfig/network-scripts/route-eth0 a les dues passarel·les de seguretat.

# vi /etc/sysconfig/network-scripts/route-eth0

Afegiu la línia següent al fitxer.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. A continuació, reinicieu el gestor de xarxa per aplicar els nous canvis.

# systemctl restart NetworkManager

Pas 2: instal·lació de strongSwan a CentOS 8

5. El paquet strongswan es proporciona al repositori EPEL. Per instal·lar-lo, heu d'habilitar el repositori EPEL i, a continuació, instal·lar strongwan a les dues passarel·les de seguretat.

# dnf install epel-release
# dnf install strongswan

6. Per comprovar la versió de strongswan instal·lada a les dues passarel·les, executeu l'ordre següent.

# strongswan version

7. A continuació, inicieu el servei strongswan i activeu-lo perquè s'iniciï automàticament a l'arrencada del sistema. A continuació, verifiqueu l'estat de les dues passarel·les de seguretat.

# systemctl start strongswan 
# systemctl enable strongswan
# systemctl status strongswan

Nota: La darrera versió de strongswan a CentOS/REHL 8 inclou suport per a tots dos swanctl (una nova utilitat de línia d'ordres portàtil introduïda amb strongSwan 5.2.0, que s'utilitza per configurar, controlar i supervisar el dimoni IKE Charon mitjançant el connector vici) i la utilitat d'inici (o ipsec) utilitzant el connector de traç obsolet.

8. El directori de configuració principal és /etc/strongswan/ que conté fitxers de configuració per als dos connectors:

# ls /etc/strongswan/

Per a aquesta guia, utilitzarem la utilitat IPsec que s'invoca mitjançant l'ordre strongswan i la interfície de traç. Per tant, utilitzarem els següents fitxers de configuració:

  • /etc/strongswan/ipsec.conf: fitxer de configuració del subsistema strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets: fitxer de secrets.

Pas 3: Configuració de passarel·les de seguretat

9. En aquest pas, heu de configurar els perfils de connexió a cada passarel·la de seguretat per a cada lloc mitjançant el fitxer de configuració /etc/strongswan/ipsec.conf strongswan.

# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

Copieu i enganxeu la configuració següent al fitxer.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

Copieu i enganxeu la configuració següent al fitxer:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Descrivim breument cadascun dels paràmetres de configuració anteriors:

  • config setup: defineix la informació general de configuració per a IPSec que s'aplica a totes les connexions.
  • charondebug: especifica quanta sortida de depuració de Charon s'ha de registrar.
  • identificadors únics: defineix si un identificador de participant concret s'ha de mantenir únic.
  • conn gateway1-to-gateway2: s'utilitza per definir el nom de la connexió.
  • tipus: defineix el tipus de connexió.
  • Automàtic: s'utilitza per declarar com gestionar la connexió quan s'inicia o es reinicia IPSec.
  • keyexchange: declara la versió del protocol IKE que cal utilitzar.
  • authby: especifica com s'han d'autenticar els companys entre ells.
  • esquerra: declara l'adreça IP de la interfície de xarxa pública del participant esquerre.
  • leftsubnet: declara la subxarxa privada darrere del participant esquerre.
  • dret: declara l'adreça IP de la interfície de xarxa pública del participant adequat.
  • rightsubnet: declara la subxarxa privada darrere del participant esquerre.
  • ike: s'utilitza per declarar una llista d'algoritmes d'encriptació/autenticació IKE/ISAKMP SA que s'utilitzaran. Tingueu en compte que aquesta pot ser una llista separada per comes.
  • esp: especifica una llista d'algoritmes d'encriptació/autenticació ESP que s'utilitzaran per a la connexió.
  • agressiu: declara si s'utilitza el mode agressiu o principal.
  • keyingtries: declara el nombre d'intents que s'han de fer per negociar una connexió.
  • ikellifetime: especifica quant de temps ha de durar el canal de claus d'una connexió abans de ser renegociada.
  • durada: especifica quant de temps ha de durar una instància concreta d'una connexió, des de la negociació correcta fins a la caducitat.
  • dpddelay: declara l'interval de temps amb el qual els missatges R_U_THERE/intercanvis d'INFORMACIÓ s'envien al parell.
  • dpdtimeout: s'utilitza per declarar l'interval de temps d'espera, després del qual s'eliminen totes les connexions a un parell en cas d'inactivitat.
  • dpdaction: especifica com utilitzar el protocol Dead Peer Detection (DPD) per gestionar la connexió.

Podeu trobar una descripció de tots els paràmetres de configuració del subsistema strongSwan IPsec llegint la pàgina de manual ipsec.conf.

# man ipsec.conf

Pas 4: Configuració de PSK per a l'autenticació peer-to-peer

10. A continuació, heu de generar un PSK fort per ser utilitzat pels iguals per a l'autenticació de la manera següent.

# head -c 24 /dev/urandom | base64

11. Afegiu el PSK al fitxer /etc/strongswan/ipsec.conf a les dues passarel·les de seguretat.

# vi /etc/strongswan/ipsec.secrets

Introduïu la línia següent al fitxer.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. A continuació, inicieu el servei strongsan i comproveu l'estat de les connexions.

# systemctl restart strongswan
# strongswan status

13. Comproveu si podeu accedir a les subxarxes privades des de qualsevol de les passarel·les de seguretat executant una ordre ping.

# ping 10.20.1.1
# ping 10.10.1.1

14. Per últim, però no menys important, per obtenir més ordres de strongswan per activar/desactivar les connexions manualment i més, consulteu la pàgina d'ajuda de strongswan.

# strongswan --help

Això és tot per ara! Per compartir els vostres pensaments amb nosaltres o fer preguntes, poseu-vos en contacte amb nosaltres mitjançant el formulari de comentaris següent. I per obtenir més informació sobre la nova utilitat swanctl i la nova estructura de configuració més flexible, consulteu la documentació d'usuari de strongSwan.