Avere una rete privata virtuale (VPN) è fondamentale in quest’era tecnologica. Le VPN sono diventate sempre più importanti per uso personale e soprattutto per le aziende e le imprese. E se stai ancora decidendo quale soluzione VPN scegliere, perché non considerare OpenConnect VPN?
OpenConnect VPN è una soluzione VPN gratuita con prestazioni e funzionalità di livello enterprise. E in questo tutorial, imparerai come configurare e connetterti al server OpenConnect VPN (ocserv).
Continua a leggere e tieni lontane le entità maliziose dalla tua rete!
Prerequisiti
Questo tutorial prevede dimostrazioni pratiche. Per seguirla, assicurati di avere quanto segue:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- Un utente amministratore o un utente non-root con privilegi sudo/root.
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
Installazione del server OpenConnect VPN
Il server OpenConnect VPN è un server VPN basato su SSL open-source per Linux, disponibile sulla maggior parte delle distribuzioni Linux, come Debian, Ubuntu, RHEL/CentOS e Fedora.
Il server OpenConnect VPN supporta la maggior parte dei client, dai desktop/computer ai dispositivi mobili (Android e iOS). Allo stesso modo, il server OpenConnect VPN supporta diversi metodi di autenticazione, come Radius, OpenID, Kerberos e Smart Card.
Ma prima di poter sfruttare queste funzionalità, devi installare il server OpenConnect VPN, come segue:
1. Accedi al tuo server via SSH e esegui il seguente comando apt update
per aggiornare e aggiornare l’indice dei pacchetti. Questo comando garantisce di avere le informazioni sui pacchetti più recenti.

2. Successivamente, esegui il comando apt install
seguente per installare il pacchetto ocserv
.
Una volta completata l’installazione, il nuovo servizio di sistema chiamato ocserv
sarà attivo e

3. Ora, esegui i seguenti comandi systemctl
per assicurarti che il servizio ocserv
sia in esecuzione.
Come puoi vedere dall’output, lo stato del servizio ocserv
è abilitato e in esecuzione.

Generazione di Certificati SSL/TLS
Con il Server VPN OpenConnect installato, il passo successivo è assicurarsi di poter connettersi in modo sicuro al Server VPN OpenConnect. Come? Il primo passo è generare i certificati SSL/TLS tramite Certbot e LetsEncrypt.
Ma prima di generare i certificati, assicurati di avere un indirizzo email per registrarti su LetsEncrypt, e che il nome di dominio punti all’indirizzo IP del server Debian.
Per generare certificati SSL/TLS:
1. Esegui il comando seguente per installare certbot
sul tuo server Linux.

2. Successivamente, esegui il comando certbot
di seguito per generare i certificati SSL/TLS. Assicurati di modificare l’indirizzo email ([email protected]
) e il nome di dominio (vpn.atadomain.io
) di conseguenza.

3. Infine, esegui il seguente comando per verificare che i certificati SSL/TLS generati esistano nella directory del tuo dominio.
Se avviene con successo, vedrai le chiavi pubbliche (fullchain.pem) e private (privkey.pem), come mostrato di seguito.

Configurazione del server VPN OpenConnect
Anche con i certificati SSL/TSL a tua disposizione, rimarranno lì a meno che non configuriamo il server VPN OpenConnect. Modificherai la configurazione predefinita del server VPN OpenConnect (/etc/ocserv/ocserv.conf) come segue:
- Cambia il metodo di autenticazione predefinito.
- Disabilita UDP sul server VPN OpenConnect.
- Cambia i certificati SSL/TLS predefiniti.
- Impostazione del nome di dominio e di una rete interna o indirizzo IP per i client.
Per configurare il server VPN OpenConnect, segui i passaggi seguenti:
1. Prima di tutto, esegui il comando cp
di seguito per eseguire il backup della configurazione predefinita del server VPN OpenConnect (ocserv.conf
) in ocserv.conf.orig
memorizzato nella directory /etc/ocserv
.
2. Successivamente, apri la configurazione del server VPN OpenConnect (/etc/ocserv/ocserv.conf) utilizzando il tuo editor preferito.
3. Cambia il valore del parametro auth
in plain[passwd=/etc/ocserv/ocpasswd]
, come mostrato di seguito. Ciò sostituirà l’autenticazione predefinita tramite file di password con i moduli di autenticazione plug-in (PAM).
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. Ora, metti il #
davanti al parametro udp-port
per disabilitare le connessioni UDP predefinite.
Utilizzerai OpenConnect VPN solo con il protocollo TCP, il quale può aumentare la velocità tramite parametri del kernel.
tcp-port = 443
#udp-port = 443

5. Sostituisci il percorso del file del certificato nel parametro server-cert
con la chiave pubblica e il parametro server-key
con la chiave privata.
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. Cambia il valore del parametro try-mtu-discovery
a true
per abilitare la scoperta dell’MTU. Farlo aumenta la velocità e le prestazioni del server VPN OpenConnect.
try-mtu-discovery = true

7. Successivamente, inserisci il nome di dominio del server VPN OpenConnect nel parametro default-domain
e cambia l’indirizzo IP interno predefinito nel parametro ipv4-network
.
In questo esempio, i client VPN utilizzeranno la rete interna 10.11.0.0/24
.
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. Commenta i parametri di default della route
aggiungendo un carattere #
all’inizio di ogni riga per disabilitare il gateway di default della route predefinita. Una volta finito, salva il file ed esci dall’editor.
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. Ora, esegui i seguenti comandi per riavviare
il servizio ocserv
, applicare le modifiche e elencare tutte le porte aperte (ss
) nel tuo sistema.
Se il server VPN OpenConnect è in esecuzione, vedrai la porta 443 nello stato LISTEN e utilizzato dal servizio ocserv, come mostrato di seguito.

Aggiunta di utenti al server VPN OpenConnect
Con il server VPN OpenConnect configurato, hai bisogno di un modo per connetterti. Come? Creando e aggiungendo un utente VPN al server VPN OpenConnect.
Per aggiungere un utente al server OpenConnect VPN, creerai un utente VPN e genererai un file password tramite l’utilità ocpasswd
nel seguente modo:
Esegui il comando ocpasswd
qui sotto per creare un nuovo utente. Quando richiesto, inserisci una nuova password per l’utente e ripetila. La scelta del nome utente per questo tutorial è atauser
, ma puoi fornirne uno personalizzato.
Una volta creato l’utente, viene creato anche il file password (/etc/ocserv/ocpasswd
).

Ora, esegui il seguente comando cat
per controllare i dettagli del file password (/etc/ocserv/ocpasswd
).

Aggiunta delle regole del firewall UFW per aprire porte cruciali
Su un sistema Debian, il firewall predefinito è IPTables, che richiede una comprensione approfondita delle reti per essere configurato. Perché non semplificare il processo? In questo tutorial, installerai e configurerai UFW come firewall predefinito.
1. Esegui il seguente comando per installare
UFW accettando automaticamente tutte le richieste (-y
)

2. Una volta installato UFW, esegui i seguenti comandi ufw
per aprire le porte cruciali affinché il server OpenConnect VPN funzioni correttamente.
Quando richiesto, inserisci Y e premi Invio per procedere con l’operazione, come mostrato di seguito.

3. Infine, esegui il seguente comando per verificare lo stato di UFW e assicurarti che UFW sia in esecuzione.
Il risultato qui sotto mostra lo stato attivo di UFW e tutte le regole del firewall aggiunte.

Attivazione del Port Forwarding
Con un server VPN in esecuzione, devi indirizzare il traffico dal mondo esterno al tuo server abilitando il port forwarding. Consentirai il port forwarding sul tuo server Debian tramite parametri del kernel.
Per abilitare il port forwarding, segui questi passaggi:
Esegui il seguente comando, che non produce output nel terminale, ma crea un nuovo file chiamato /etc/sysctl.d/60-ocserv.conf
. Questo file contiene parametri del kernel per abilitare il port forwarding nel tuo sistema.
Ora, esegui il comando sysctl
qui sotto per applicare i nuovi parametri del kernel e abilitare il port forwarding.

Configurazione NAT con UFW
Abilitare il port forwarding è solo uno dei primi passi da compiere. Questa volta, devi garantire che i client VPN possano connettersi a Internet o a reti specifiche tramite il server VPN OpenConnect. Come? Configurando il NAT tramite UFW.
Per configurare NAT con UFW per il server VPN OpenConnect:
1. Esegui il seguente comando per controllare l’elenco delle interfacce sul tuo sistema.
In questo esempio, l’interfaccia eth1 sarà il gateway NAT per i client VPN.

2. Successivamente, apri la configurazione UFW (/etc/ufw/before.rules) utilizzando il tuo editor preferito e aggiungi le seguenti righe prima dell’opzione *filter
. Queste configurazioni applicheranno NAT agli utenti VPN (specificando l’interfaccia in uscita) o alla rete interna all’interfaccia eth1
.
Assicurati di modificare il subnet (10.11.0.0/24
) con le reti dei tuoi client VPN e l’interfaccia (eth1
) con l’interfaccia di rete.
# NAT per il server VPN OpenConnect
# con rete client 10.11.0.0/24
# all'interfaccia eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. Aggiungi le seguenti righe sotto la sezione ok icmp code for FORWARD
delle opzioni ufw-before-forward
, salva il file ed esci dall’editor.
Queste configurazioni abilitano l’inoltro (sorgente e destinazione) della rete client VPN.
# permetti l'inoltro della rete client VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. Una volta salvato, esegui il seguente comando per ricaricare le regole UFW e riavviare il servizio UFW. In questo modo assicuri che la configurazione NAT venga applicata al sistema.
5. Infine, esegui il seguente comando iptables
per controllare lo stato NAT su UFW poiché il backend di UFW è IPTables.
Quando avrai successo, riceverai un output simile a quello sotto riportato.

Collegamento al server VPN OpenConnect tramite OpenConnect-GUI
Seguendo le istruzioni, dovresti ora avere un server OpenConnect VPN completamente funzionante. Ma dopo tutto il lavoro svolto, è arrivato il momento della verità.
Il server OpenConnect VPN potrebbe essere in esecuzione, ma c’è solo un modo migliore per verificarlo: connettersi al server OpenConnect VPN.
Per connettersi al server OpenConnect VPN, è necessario installare l’applicazione OpenConnect-GUI:
1. Apri il tuo browser web preferito e visita la pagina GitHub di OpenConnect-GUI.
2. Successivamente, scarica e installa l’applicazione OpenConnect VPN per Windows.

3. Apri il client VPN OpenConnect-GUI e fai clic sul menu File → Profili → Nuovo profilo (avanzato) (o premi Ctrl+Shift+N). Comparirà una piccola finestra in cui è possibile compilare i dettagli del nuovo profilo (passaggio quattro).

4. Ora, compila le informazioni del profilo VPN con quanto segue:
- Nome – Fornisci un nome di connessione (ad esempio, testvpn).
- Gateway – Specifica il nome di dominio del tuo server OpenConnect VPN (ad esempio, https://vpn.atadomain.io).
- Username – L’utente aggiunto (atauser) al server OpenConnect VPN.
Una volta compilato, fai clic su Salva per confermare le informazioni e creare il profilo VPN.

5. Successivamente, imposta il profilo VPN appena creato (testvpn) come Server e clicca su Connetti per stabilire una connessione al server OpenConnect VPN.

6. Quando richiesto, inserisci la Password del tuo utente VPN e clicca su OK.

7. Una volta connesso, il colore del lucchetto cambierà in verde, come mostrato di seguito.

8. Infine, clicca sulla scheda Informazioni VPN per ottenere uno stato dettagliato della connessione. Dovresti vedere l’indirizzo IP interno ottenuto dal server VPN, il server DNS e la versione TLS utilizzata.

Conclusione
In questa guida, hai imparato a configurare il server VPN OpenConnect. Allo stesso tempo, hai imparato ad utilizzare certificati SSL/TLS e ad aggiungere regole del firewall per stabilire una connessione sicura con il server VPN OpenConnect.
Con questa nuova conoscenza, perché non integrare il server VPN OpenConnect con molteplici back-end di autenticazione, come Radius e OpenID? O aggiungere uno strato di sicurezza per l’autenticazione del cliente tramite autenticazione a due fattori?