strongSwan è un'implementazione VPN (Virtual Private Network) basata su IPsec open source, multipiattaforma, completa e ampiamente utilizzata che funziona su Linux, FreeBSD, OS X, Windows, Android e iOS. È principalmente un demone di chiavi che supporta Internet Key Exchange protocolli (IKEv1 e IKEv2 ) per stabilire associazioni di sicurezza (SA ) tra due pari.
Questo articolo descrive come configurare una VPN IPSec da sito a sito gateway utilizzando strongSwan su Ubuntu e Debian server. Per sito a sito intendiamo che ogni gateway di sicurezza ha una sottorete dietro di esso. Inoltre, i peer si autenticheranno a vicenda utilizzando una chiave precondivisa (PSK ).
Ambiente di test
Ricorda di sostituire i seguenti IP con i tuoi IP del mondo reale per configurare il tuo ambiente.
Gateway del sito 1 (tecmint-devgateway)
OS 1: Debian or Ubuntu Public IP: 10.20.20.1 Private IP: 192.168.0.101/24 Private Subnet: 192.168.0.0/24
Gateway del sito 2 (tecmint-prodgateway)
OS 2: Debian or Ubuntu Public IP: 10.20.20.3 Private IP: 10.0.2.15/24 Private Subnet: 10.0.2.0/24
Passaggio 1:abilitazione dell'inoltro dei pacchetti del kernel
1. Innanzitutto, devi configurare il kernel per abilitare l'inoltro dei pacchetti aggiungendo le variabili di sistema appropriate in /etc/sysctl.conf file di configurazione su entrambi i gateway di sicurezza.
$ sudo vim /etc/sysctl.conf
Cerca le seguenti righe e decommentale e imposta i loro valori come mostrato (leggi i commenti nel file per ulteriori informazioni).
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. Quindi, carica le nuove impostazioni eseguendo il comando seguente.
$ sudo sysctl -p

Carica le impostazioni del kernel Sysctl
3. Se hai abilitato un servizio firewall UFW, devi aggiungere le seguenti regole a /etc/ufw/before.rules file di configurazione appena prima delle regole di filtro in entrambi i gateway di sicurezza.
Gateway del sito 1 (tecmint-devgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE COMMIT
Gateway del sito 2 (tecmint-prodgateway)
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE COMMIT
4. Una volta aggiunte le regole del firewall, applica le nuove modifiche riavviando UFW come mostrato.
$ sudo ufw disable $ sudo ufw enable
Fase 2:installazione di strongSwan in Debian e Ubuntu
5. Aggiorna la cache del pacchetto su entrambi i gateway di sicurezza e installa strongswan pacchetto utilizzando il gestore di pacchetti APT.
$ sudo apt update $ sudo apt install strongswan
6. Una volta completata l'installazione, lo script di installazione avvierà strongswan servizio e abilitarlo per l'avvio automatico all'avvio del sistema. Puoi verificarne lo stato e se è abilitato utilizzando il seguente comando.
$ sudo systemctl status strongswan.service $ sudo systemctl is-enabled strongswan.service
Fase 3:configurazione dei gateway di sicurezza
7. Successivamente, devi configurare i gateway di sicurezza utilizzando /etc/ipsec.conf file di configurazione.
Gateway del sito 1 (tecmint-devgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo nano /etc/ipsec.conf
Copia e incolla la seguente configurazione nel file.
config setup charondebug="all" uniqueids=yes conn devgateway-to-prodgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.1 leftsubnet=192.168.0.101/24 right=10.20.20.3 rightsubnet=10.0.2.15/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
Gateway del sito 2 (tecmint-prodgateway)
$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig $ sudo cp /etc/ipsec.conf
Copia e incolla la seguente configurazione nel file.
config setup charondebug="all" uniqueids=yes conn prodgateway-to-devgateway type=tunnel auto=start keyexchange=ikev2 authby=secret left=10.20.20.3 leftsubnet=10.0.2.15/24 right=10.20.20.1 rightsubnet=192.168.0.101/24 ike=aes256-sha1-modp1024! esp=aes256-sha1! aggressive=no keyingtries=%forever ikelifetime=28800s lifetime=3600s dpddelay=30s dpdtimeout=120s dpdaction=restart
Ecco il significato di ogni parametro di configurazione:
- configurazione di configurazione – specifica le informazioni di configurazione generali per IPSec che si applicano a tutte le connessioni.
- charondebug – definisce la quantità di output di debug di Caronte da registrare.
- Uniquei – specifica se un particolare ID partecipante deve essere mantenuto univoco.
- conn prodgateway-to-devgateway – definisce il nome della connessione.
- digitare – definisce il tipo di connessione.
- auto – come gestire la connessione all'avvio o al riavvio di IPSec.
- scambio di chiavi – definisce la versione del protocollo IKE da utilizzare.
- autorizzato – definisce come i peer devono autenticarsi a vicenda.
- sinistra – definisce l'indirizzo IP dell'interfaccia di rete pubblica del partecipante sinistro.
- sottorete sinistra – indica la sottorete privata dietro il partecipante sinistro.
- destra – specifica l'indirizzo IP dell'interfaccia di rete pubblica del partecipante corretto.
- rightsubnet – indica la sottorete privata dietro il partecipante sinistro.
- mi piace – definisce un elenco di algoritmi di crittografia/autenticazione IKE/ISAKMP SA da utilizzare. Puoi aggiungere un elenco separato da virgole.
- specialmente – definisce un elenco di algoritmi di crittografia/autenticazione ESP da utilizzare per la connessione. Puoi aggiungere un elenco separato da virgole.
- aggressivo – indica se utilizzare la Modalità Aggressiva o Principale.
- tentativi di digitazione – indica il numero di tentativi da effettuare per negoziare una connessione.
- ikelifetime – indica quanto tempo deve durare il canale di codifica di una connessione prima di essere rinegoziato.
- a vita – definisce quanto tempo deve durare una particolare istanza di una connessione, dalla negoziazione riuscita alla scadenza.
- dpddelay – specifica l'intervallo di tempo con cui R_U_THERE messaggi/scambi INFORMAZIONALI vengono inviati al peer.
- dpdtimeout – specifica l'intervallo di timeout, dopo il quale tutte le connessioni a un peer vengono eliminate in caso di inattività.
- dpdazione – definisce come utilizzare il protocollo Dead Peer Detection (DPD) per gestire la connessione.
Per ulteriori informazioni sui parametri di configurazione di cui sopra, leggere ipsec.conf pagina man eseguendo il comando.
$ man ipsec.conf
Fase 4:configurazione di PSK per l'autenticazione peer-to-peer
8. Dopo aver configurato entrambi i gateway di sicurezza, genera un PSK sicuro per essere utilizzato dai peer utilizzando il seguente comando.
$ head -c 24 /dev/urandom | base64

Genera chiave PSK
9. Quindi, aggiungi il PSK in /etc/ipsec.secrets file su entrambi i gateway.
$ sudo vim /etc/ipsec.secrets
Copia e incolla la riga seguente.
------- Site 1 Gateway (tecmint-devgateway) ------- 10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac=" ------- Site 2 Gateway (tecmint-prodgateway) ------- 10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. Riavvia IPSec programma e verificarne lo stato per visualizzare le connessioni.
$ sudo ipsec restart $ sudo ipsec status

Visualizza lo stato della connessione IPSec
11. Infine, verifica di poter accedere alle sottoreti private da entrambi i gateway di sicurezza eseguendo un comando ping.
$ ping 192.168.0.101 $ ping 10.0.2.15

Verifica la configurazione della VPN da sito a sito
12. Inoltre, puoi interrompere e avviare IPSec come mostrato.
$ sudo ipsec stop $ sudo ipsec start
13. Per saperne di più sui comandi IPSec per attivare manualmente le connessioni e altro, vedere la pagina della guida di IPSec.
$ ipsec --help
È tutto! In questo articolo, abbiamo descritto come configurare una VPN IPSec da sito a sito utilizzando strongSwan su Ubuntu e Debian server, in cui entrambi i gateway di sicurezza sono stati configurati per autenticarsi reciprocamente utilizzando un PSK . Se hai domande o pensieri da condividere, contattaci tramite il modulo di feedback qui sotto.
Condividere è prendersi cura...Condividi su FacebookCondividi su TwitterCondividi su LinkedinCondividi su Reddit