GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come configurare IKEv2 VPN utilizzando Strongswan e Lets Encrypt su CentOS 8

Strongswan è un'implementazione IPSec multipiattaforma open source. È una soluzione VPN basata su IPSec che si concentra su meccanismi di autenticazione avanzati. Strongswan offre supporto per i protocolli di scambio di chiavi IKEv1 e IKEv2, autenticazione basata su certificati X.509 o chiavi precondivise e autenticazione utente EAP IKEv2 sicura.

In questo tutorial, ti mostrerò come installare un server VPN IPSec utilizzando Strongswan. Creeremo un server VPN IKEv2 con l'autenticazione "EAP-MSCHAPv2" e utilizzeremo i certificati Letsencrypt sul server CentOS 8.

Prerequisiti

  • Server CentOS 8
  • Privilegi di root

Cosa faremo?

  • Installa Strongswan su CentOS 8
  • Genera SSL Letsencrypt
  • Configura Strongswan
  • Abilita NAT Firewall
  • Abilita il port forwarding
  • Test

Passaggio 1:installa Strongswan su CentOS 8

In questo primo passaggio, installeremo il software di implementazione IPsec di strongswan e tutti i pacchetti necessari dal repository EPEL.

Prima di installare il pacchetto strongswan, devi aggiungere il repository EPEL al sistema CentOS 8.

Aggiungi il repository EPEL per il server CentOS 8.

sudo dnf install epel-release

Successivamente, installa il pacchetto strongswan dal repository EPEL utilizzando il comando dnf di seguito.

sudo dnf install strongswan

Attendi l'installazione del pacchetto strongswan.

Passaggio 2 - Genera certificato SSL con Let's encrypt

Per questa guida, creeremo il server VPN IKEv2 utilizzando un nome di dominio "vpn.hakase-labs.io" e utilizzeremo i certificati generati daletsencrypt.

In questo passaggio, installeremo manualmente lo strumento letencrypt 'certbot' e genereremo certificati per il nome di dominio del server 'vpn.hakase-labs.io'.

Scarica il file binario di certbot da GitHub usando il comando wget di seguito.

wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto

Successivamente, rendilo eseguibile modificando i permessi del file.

chmod +x /usr/local/bin/certbot-auto

E lo strumento certbot per la generazione di certificati Letsencrypt è stato installato.

Prima di generare i certificati Letsencrypt, dobbiamo aprire le porte HTTP e HTTPS del server utilizzando firewall-cmd.

Aggiungi i servizi HTTP e HTTPS all'elenco dei servizi firewalld eseguendo i comandi firewall-cmd di seguito.

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

Ora possiamo generare nuovi file di certificati SSL utilizzando lo strumento letencrypt certbot-auto.

Modifica l'indirizzo email e il nome di dominio con il tuo ed esegui il comando 'certbot-auto' di seguito.

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

Una volta completato, otterrai il risultato come di seguito.

Tutti i certificati del tuo nome di dominio vengono generati nella directory '/etc/letsencrypt/live/domain.com'.

Successivamente, dobbiamo copiare i file del certificato 'fullchain.pem', 'privkey.pem' e 'chain.pem' nella directory '/etc/strongswan/ipsec.d/'.

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

Tutti i certificati Letencrypt per la VPN Strongswan denominata 'vpn.hakase-labs.io' sono stati generati e copiati nella directory '/etc/strongswan/ipsec.d'.

tree /etc/strongswan/ipsec.d/

Fase 3 - Configura Strongswan

Vai alla directory '/etc/strongswan' ed esegui il backup del file di configurazione predefinito 'ipsec.conf'.

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

Creane uno nuovo 'ipsec.conf' usando l'editor vim.

vim ipsec.conf

E incolla la seguente configurazione.

config setup
    uniqueids=never # allow multiple connections per user
    charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2,  mgr 2"

conn %default
    fragmentation=yes
    closeaction=restart
    rekey=no
    dpdaction=clear
    keyexchange=ikev2
    compress=yes
    dpddelay=35s
    lifetime=3h
    ikelifetime=12h

    ike=aes256gcm16-prfsha512-ecp384!
    esp=aes256gcm16-ecp384!

    left=%any
    [email protected]
    leftcert=fullchain.pem
    leftsendcert=always
    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=never
    eap_identity=%identity

conn ikev2-pubkey
    auto=add

Salva ed esci.

Successivamente, dobbiamo modificare il file "ipsec.secrets" per definire la chiave privata del server RSA e le credenziali della password dell'utente EAP.

Modifica il file 'ipsec.secrets'.

vim ipsec.secrets

Incolla la configurazione qui sotto.

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

Salva ed esci.

E la configurazione IPSec di Strongswan è stata completata. Aggiungi il servizio strongswan all'avvio dell'avvio e quindi avvia il servizio.

systemctl enable strongswan
systemctl start strongswan

Il servizio strongswan è attivo e funzionante sul server CentOS 8, verificalo utilizzando il comando seguente.

systemctl status strongswan
netstat -plntu

E ti verrà mostrato il risultato come di seguito.

Passaggio 4 - Abilita NAT in Firewalld

In questo passaggio, abiliteremo il masquerading NAT e aggiungeremo i protocolli IPSec Authentication Header (AH) e Encapsulating Security Payload (ESP) su Firewalld utilizzando la configurazione 'rich-rule'.

Aggiungi 'AH' e 'ESP' per i protocolli di autenticazione e crittografia al firewalld.

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

Aggiungi le porte e il servizio UDP ipsec.

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

Ora abilita la modalità NAT masquerade e ricarica le regole di configurazione del firewalld.

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

La modalità NAT su firewalld è stata abilitata, verifica utilizzando il comando seguente.

firewall-cmd --list-all

Di seguito il risultato.

Passaggio 5:abilitare il port forwarding

Per abilitare il port forwarding, dobbiamo modificare il file 'sysctl.conf'.

Modifica il file '/etc/sysctl.conf' usando l'editor vim.

vim /etc/sysctl.conf

Incolla lì la seguente configurazione.

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

Salva ed esci, ora ricarica usando il comando sysctl qui sotto.

sysctl -p

Il port forwarding è stato abilitato. Ora riavvia il servizio Strongswan.

systemctl restart strongswan

Passaggio 6:test della VPN IPSec Strongswan

In questo caso, faremo il test su MacOS X e telefono Android.

Su MacOS

- Apri le "Preferenze di Sistema" e fai clic sul menu "Rete".

Fai clic sul pulsante "+" per creare una nuova connessione VPN.

    • Interfaccia:'VPN'
    • Tipo VPN:'IKEv2'
    • Nome servizio:'IKEv2-vpn

- In 'Indirizzo server' e 'ID remoto', digita il nome di dominio VPN 'ikev2.hakase-labs.io'.
- Fai clic su 'Impostazioni di autenticazione'.
- Autenticazione utilizzando un 'Nome utente' .
- Digita il nome utente 'tensai' con la password '[email protected]'
- Fai clic su 'OK' e fai clic su 'Applica'.


Nel client è stata creata una nuova connessione VPN IKEv2. Ora fai clic sul pulsante Connetti.


E il client è stato connesso al server VPN strongswan e ha un indirizzo IP interno/privato 10.15.1.1.

Su Android

- Scarica e installa l'applicazione Android nativa di strongswan da Google-Play.
- Aggiungi un nuovo profilo VPN
- Digita il nome di dominio del server "ikev2.hakase-labs.io" e utilizza il nome utente e la password EAP IKEv2 autenticazione.

Di seguito è il risultato quando ci connettiamo al server VPN.

Il server VPN basato su IPSec IKEv2 è stato creato utilizzando Strongswan e Letsencrypt sul server CentOS 8.


Cent OS
  1. Come configurare IKEv2 VPN utilizzando Strongswan e Lets crittografare su CentOS 7

  2. Come configurare il burattinaio e l'agente su CentOS 8

  3. Come configurare il burattinaio e l'agente su CentOS 7

  4. Come installare e configurare DRBD su CentOS

  5. Come configurare il firewall utilizzando FirewallD su CentOS 8

Come installare Askbot con Nginx e proteggere con Lets Encrypt su CentOS 8

Come installare Shopware 6 con NGINX e Lets Encrypt su CentOS 8

Come installare PrestaShop con Apache e Lets Encrypt SSL su CentOS 8

Come installare e configurare Asterisk 13 (PBX) su Centos 7

Come impostare e configurare il server FTP su CentOS

Come configurare il server e il client VPN Linux utilizzando OpenVPN