LINUX

Installa e configura StrongSwan VPN su Ubuntu 20.04

Una rete privata virtuale viene utilizzata per creare una rete privata da una connessione Internet pubblica per proteggere la tua identità. La VPN utilizza un tunnel crittografato per inviare e ricevere dati in modo sicuro.

strongSwan è uno dei software VPN più famosi che supporta vari sistemi operativi tra cui Linux, OS X, FreeBSD, Windows, Android e iOS. Utilizza il protocollo IKEv1 e IKEv2 per stabilire la connessione sicura. Puoi estendere la sua funzionalità con plugin integrati.

In questo tutorial, spiegheremo le istruzioni dettagliate su come configurare un server VPN KEv2 con StrongSwan su Ubuntu 20.04.

Prerequisito

• Due sistemi che eseguono Ubuntu Server 20.04
• Una password root è configurata su entrambi i server

Installa StrongSwan

Per impostazione predefinita, StrongSwan è disponibile nel repository predefinito di Ubuntu 20.04. Puoi installarlo con altri componenti richiesti usando il seguente comando:

apt install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins libtss2-tcti-tabrmd0 -y

Dopo aver installato tutti i pacchetti, puoi procedere alla generazione di un certificato CA.

Genera un certificato per il server VPN

Successivamente, dovrai generare un certificato e una chiave per il server VPN per verificare l’autenticità del server dal lato client.

Innanzitutto, crea una chiave privata per la CA radice con il seguente comando:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem

Successivamente, crea una CA radice e firmala utilizzando la chiave sopra:

ipsec pki --self --in /etc/ipsec.d/private/ca.key.pem --type rsa --dn "CN=My VPN Server CA" --ca --lifetime 3650 --outform pem > /etc/ipsec.d/cacerts/ca.cert.pem

Successivamente, crea una chiave privata per il server VPN utilizzando il seguente comando:

ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/server.key.pem

Infine, genera il certificato del server utilizzando il seguente comando:

ipsec pki --pub --in /etc/ipsec.d/private/server.key.pem --type rsa | ipsec pki --issue --lifetime 2750 --cacert /etc/ipsec.d/cacerts/ca.cert.pem --cakey /etc/ipsec.d/private/ca.key.pem --dn "CN=vpn.domain.com" --san="vpn.domain.com" --flag serverAuth --flag ikeIntermediate --outform pem > /etc/ipsec.d/certs/server.cert.pem

A questo punto, tutti i certificati sono pronti per il server VPN.

Configura la VPN StrongSwan

Il file di configurazione predefinito di strongswan è /etc/ipsec.conf. Possiamo eseguire il backup del file di configurazione principale e creare un nuovo file:

mv /etc/ipsec.conf /etc/ipsec.conf-bak

Successivamente, crea un nuovo file di configurazione:

nano /etc/ipsec.conf

Aggiungi le seguenti impostazioni di configurazione e connessione:

config setup
        charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
        strictcrlpolicy=no
        uniqueids=yes
        cachecrls=no

conn ipsec-ikev2-vpn
      auto=add
      compress=no
      type=tunnel
      keyexchange=ikev2
      fragmentation=yes
      forceencaps=yes
      dpdaction=clear
      dpddelay=300s
      rekey=no
      left=%any
      [email protected]
      leftcert=server.cert.pem
      leftsendcert=always 
      leftsubnet=0.0.0.0/0
      right=%any
      rightid=%any
      rightauth=eap-mschapv2
      rightsourceip=10.10.10.0/24
      rightdns=8.8.8.8
      rightsendcert=never
      eap_identity=%identity

  • left=%any – %any indica che il server utilizzerà l’indirizzo privato a cui riceve il traffico per il resto della connessione.
  • [email protected]_domain – controlla il nome di dominio che il server presenterà ai client e conserva la @ quando si utilizza il nome di dominio. Se il tuo server sarà raggiungibile tramite indirizzo IP, dovresti utilizzare l’IP.
  • leftcert=server.cert.pem – è il percorso del certificato pubblico per il server configurato in precedenza. Il server deve essere in grado di autenticarsi con i client.
  • leftsendcert=always – per garantire che qualsiasi client che si connette al server riceva una copia del certificato pubblico durante l’impostazione della connessione iniziale.
  • leftsubnet=0.0.0.0/0 – dice che tutti i client dietro il server saranno raggiungibili.

Dopo il lato server, possiamo vedere la configurazione lato client:

  • right=%any in modo che il server accetti tutte le connessioni in entrata da qualsiasi client remoto.
  • rightid=%any per garantire che il server non rifiuterà le connessioni dai client che forniscono un’identità prima che venga stabilito il tunnel crittografato.
  • rightauth=eap-mschapv2 per configurare il metodo di autenticazione che i client utilizzeranno per autenticarsi sul server.
  • rightsourceip=10.10.10.0/24 all’indirizzo di rete che verrà utilizzato per assegnare indirizzi IP privati ​​ai client
  • rightdns=8.8.8.8,8.8.4.4 I resolver DNS pubblici di Google, ma puoi cambiarli se vuoi
  • rightsendcert=never per comunicare al server che i client non devono inviare un certificato per l’autenticazione.

Successivamente, dovrai definire le tue credenziali utente EAP e le chiavi private RSA per l’autenticazione.

Puoi configurarlo modificando il file /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Aggiungi la seguente riga:

: RSA "server.key.pem"
vpnsecure : EAP "password"

Quindi riavviare il servizio StrongSwan come segue:

systemctl restart strongswan-starter

Per abilitare l’avvio di StrongSwan all’avvio del sistema, digitare:

systemctl enable strongswan-starter

Controlla lo stato del server VPN, digita:

systemctl status strongswan-starter

Abilita il reindirizzamento dei pacchetti del kernel

Successivamente, dovrai configurare il kernel per abilitare l’inoltro dei pacchetti modificando il file /etc/sysctl.conf:

nano /etc/sysctl.conf

Rimuovere il commento dalle seguenti righe:

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

Salva e chiudi il file, quindi ricarica le nuove impostazioni utilizzando il seguente comando:

sysctl -p

Installa e configura il client StrongSwan

In questa sezione, installeremo il client StrongSwan sulla macchina remota e ci connetteremo al server VPN.

Innanzitutto, installa tutti i pacchetti richiesti con il seguente comando:

apt install strongswan libcharon-extra-plugins -y

Una volta installati tutti i pacchetti, arrestare il servizio StrongSwan con il seguente comando:

systemctl stop strongswan-starter

Successivamente, sarà necessario copiare il file ca.cert.pem dal server VPN nella directory /etc/ipsec.d/cacerts/. Puoi copiarlo usando il comando SCP come mostrato di seguito:

scp [email protected]:/etc/ipsec.d/cacerts/ca.cert.pem /etc/ipsec.d/cacerts/

Per configurare l’autenticazione del client VPN, utilizzare il file /etc/ipsec.secrets:

nano /etc/ipsec.secrets

Aggiungi la seguente riga:

vpnsecure : EAP "password"

Quindi modifica il file di configurazione principale di strongSwan:

nano /etc/ipsec.conf

Aggiungi le seguenti righe che corrispondono al tuo dominio, la password che hai specificato nel file /etc/ipsec.secrets.

conn ipsec-ikev2-vpn-client
    auto=start
    right=vpn.domain.com
    rightid=vpn.domain.com
    rightsubnet=0.0.0.0/0
    rightauth=pubkey
    leftsourceip=%config
    leftid=vpnsecure
    leftauth=eap-mschapv2
    eap_identity=%identity

Ora avvia il servizio VPN StrongSwan usando il seguente comando:

systemctl start strongswan-starter

Successivamente, controlla lo stato della connessione VPN utilizzando il seguente comando:

ipsec status

Dovresti ottenere il seguente risultato:

Security Associations (1 up, 0 connecting):
ipsec-ikev2-vpn-client[1]: ESTABLISHED 28 seconds ago, 104.245.32.158[vpnsecure]...104.245.33.84[vpn.domain.com]
ipsec-ikev2-vpn-client{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: ca6f451c_i ca9f9ff7_o
ipsec-ikev2-vpn-client{1}: 10.10.10.1/32 === 0.0.0.0/0

L’output precedente indica che viene stabilita una connessione VPN tra il client e il server e che l’indirizzo IP 10.10.10.1 viene assegnato al computer client.

Puoi anche verificare il nuovo indirizzo IP con il seguente comando:

ip a

Dovresti ottenere il seguente risultato:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:00:68:f5:20:9e brd ff:ff:ff:ff:ff:ff
inet 104.245.32.158/25 brd 104.245.32.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.10.1/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::200:68ff:fef5:209e/64 scope link
valid_lft forever preferred_lft forever

Conclusione

In questa guida, abbiamo imparato come configurare un server e un client VPN StrongSwan su Ubuntu 20.04. Ora puoi proteggere la tua identità e proteggere le tue attività online.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close