GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare una VPN basata su IPsec con Strongswan su Debian e Ubuntu

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
Ubuntu
  1. Come utilizzare APT con proxy su Ubuntu e Debian

  2. Come installare e configurare Gerbera Media Server in Ubuntu/Debian

  3. Come installare e configurare mysql 8 su Ubuntu 20.04

  4. Come configurare un firewall con UFW in Ubuntu \ Debian

  5. Come impostare o modificare il fuso orario su Ubuntu 20.04 e 21.04

Come configurare un server VPN IKEv2 con StrongSwan su Ubuntu 22.04

Come configurare ModSecurity con Nginx su Debian/Ubuntu

Come installare Drupal con Apache su Debian e Ubuntu

Come configurare una VPN basata su IPsec con Strongswan su CentOS/RHEL 8

Come configurare Mailman con Debian e ISPConfig

Come impostare e configurare una VPN con OpenVPN su Ubuntu 18.04