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 i dati in modo sicuro.
strongSwan è uno dei software VPN più famosi che supporta diversi sistemi operativi tra cui Linux, OS X, FreeBSD, Windows, Android e iOS. Utilizza il protocollo IKEv1 e IKEv2 per stabilire una connessione sicura. Puoi estenderne le funzionalità con i plug-in integrati.
In questo tutorial, spiegheremo passo dopo passo le istruzioni su come configurare un server VPN KEv2 con StrongSwan su Ubuntu 20.04.
Prerequisito
• Due sistemi che eseguono il server Ubuntu 20.04
• Una password di 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-get install strongswan strongswan-pki libcharon-extra-plugins libcharon-extauth-plugins libstrongswan-extra-plugins -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 sul lato client.
Innanzitutto, crea una chiave privata per la CA radice con il comando seguente:
ipsec pki --gen --size 4096 --type rsa --outform pem > /etc/ipsec.d/private/ca.key.pem
Quindi, 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
Quindi, crea una chiave privata per il server VPN utilizzando il comando seguente:
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 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
Quindi, 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
Salva e chiudi il file /etc/ipsec.conf.
Successivamente, dovrai definire le 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 riavvia il servizio StrongSwan come segue:
systemctl restart strongswan-starter
Per consentire a StrongSwan di avviarsi all'avvio del sistema, digita:
systemctl enable strongswan-starter
Verifica lo stato del server VPN, digita:
systemctl status strongswan-starter
Abilita l'inoltro 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
Decommenta le 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-get install strongswan libcharon-extra-plugins -y
Una volta installati tutti i pacchetti, interrompere il servizio StrongSwan con il seguente comando:
systemctl stop strongswan-starter
Successivamente, dovrai 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, usa 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, 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, verifica lo stato della connessione VPN utilizzando il seguente comando:
ipsec status
Dovresti ottenere il seguente output:
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 sopra indica che è stata stabilita una connessione VPN tra client e server e l'indirizzo IP 10.10.10.1 assegnato alla macchina client.
Puoi anche verificare il tuo nuovo indirizzo IP con il seguente comando:
ip a
Dovresti ottenere il seguente output:
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
Nella guida sopra, abbiamo imparato come configurare un server VPN StrongSwan e un client su Ubuntu 20.04. Ora puoi proteggere la tua identità e proteggere le tue attività online.