OpenVPN: setup server e client
OpenVPN è una delle soluzioni VPN open source più collaudate al mondo, supportata da praticamente ogni sistema operativo. Configurarla correttamente richiede attenzione ai certificati, alle porte e alle policy di routing. In questa guida vediamo come installare OpenVPN server su Linux e configurare i client desktop e mobile.
Architettura OpenVPN
OpenVPN opera in user-space utilizzando OpenSSL per la crittografia e TLS per lo scambio chiavi. Può lavorare su UDP (predefinito, più veloce) o TCP (utile per attraversare firewall restrittivi). Il modello classico prevede un server centrale con certificati PKI e client che si autenticano con coppia chiave/certificato firmati dalla CA aziendale.
Procedura passo-passo
- Installa OpenVPN e easy-rsa con apt install openvpn easy-rsa sul server Debian/Ubuntu.
- Inizializza la PKI con make-cadir, esegui ./easyrsa init-pki e build-ca per creare la Certificate Authority.
- Genera certificato server con ./easyrsa build-server-full server nopass e parametri Diffie-Hellman con ./easyrsa gen-dh.
- Crea il file /etc/openvpn/server.conf indicando porta 1194 UDP, dev tun, push route per la rete interna e dns.
- Abilita IP forwarding con sysctl -w net.ipv4.ip_forward=1 e regola NAT con iptables -t nat -A POSTROUTING.
- Avvia il servizio con systemctl enable --now openvpn@server e verifica i log con journalctl -u openvpn@server.
- Genera il certificato client con ./easyrsa build-client-full nome nopass ed esporta un file .ovpn unificato.
- Importa il profilo .ovpn nei client OpenVPN Connect (Windows, macOS, iOS, Android) e prova la connessione.
Sicurezza avanzata e TLS-auth
Per irrobustire OpenVPN si aggiunge la direttiva tls-auth (o tls-crypt, più moderna) che richiede un'HMAC su ogni pacchetto di controllo. Questo previene attacchi DoS al canale di controllo e blocca scan automatici. Aggiungi tls-crypt /etc/openvpn/ta.key sia nel file server.conf sia nel client.ovpn, dopo aver generato la chiave con openvpn --genkey secret ta.key. Combinato con cifrari moderni (AES-256-GCM, SHA-256, ECDHE) si ottiene una configurazione resistente agli standard 2026.
Performance e tuning
OpenVPN gira in user-space è il throughput dipende molto da CPU e tipologia di rete. Per ottimizzare: usa UDP invece di TCP, abilita fast-io, riduci verb a 3, valuta sndbuf e rcvbuf a 393216, e considera tun-mtu 1500 con mssfix automatico. Su CPU con AES-NI, AES-256-GCM e quasi gratuito e raggiunge facilmente 200-400 Mbps. In assenza di AES-NI, valuta ChaCha20-Poly1305 che è più efficiente su ARM e CPU vecchie.
Multi-istanza e revoca certificati
Per ambienti aziendali e utile gestire revoche con CRL (Certificate Revocation List): genera la CRL con ./easyrsa gen-crl e referenziala in server.conf con crl-verify crl.pem. Quando un dipendente lascia l'azienda esegui ./easyrsa revoke nome seguito da rigenerazione CRL: il server rifiutera subito il certificato. Per ambienti con migliaia di client suddividi in più istanze OpenVPN bilanciate da HAProxy in modalita TCP passthrough.
Topologia subnet vs net30
OpenVPN supporta due topologie: net30 (legacy, /30 per ogni client, IP buffer) e subnet (moderna, tutti i client nello stesso /24). La modalita subnet è raccomandata: riduce overhead, semplifica firewall, supporta IPv6 ottimamente. Aggiungi topology subnet in server.conf e adegua la subnet della direttiva server. La maggior parte dei client moderni la gestisce trasparentemente, ma documenta la scelta per evitare regressioni.
Integrazione con MFA
Per autenticazione a due fattori in OpenVPN configura plugin come openvpn-plugin-auth-pam con backend pam_google_authenticator (TOTP) o duo-openvpn (Duo Security). I client digiteranno username, password e codice TOTP. In alternativa, usa OpenVPN Access Server (versione commerciale) con MFA integrata o aggiungi reverse proxy con Authelia/Authentik davanti.
Best practice di sicurezza
Indipendentemente dalla soluzione VPN scelta, alcune regole valgono sempre: usa chiavi e certificati robusti (RSA 2048+ o ECC P-256+, chiavi WireGuard generate con tool ufficiali), aggiorna regolarmente sia il software server sia i client, applica patch security non appena rilasciate, monitora i log per identificare attività anomale, ruota le credenziali periodicamente, segmenta la rete in modo che il tunnel non dia accesso indiscriminato a tutta la LAN aziendale, e formalizza una policy di disaster recovery con backup delle configurazioni. La VPN protegge il tunnel in transito ma non sostituisce hygiene di sicurezza degli endpoint: combina con MFA, EDR, patching aggressivo e formazione utenti per ottenere una postura di sicurezza completa.
Monitoring e osservabilita
Una VPN che non viene monitorata è una VPN che non sai se funziona. Raccogli metriche minime: numero di sessioni attive, latenza media end-to-end, percentuale di handshake riusciti vs falliti, throughput aggregato, geolocazione client. Strumenti come Prometheus + Grafana, Zabbix, PRTG o stack ELK forniscono dashboard utili. Configura alert proattivi su soglie critiche: tunnel down per oltre N minuti, picchi anomali di tentativi di autenticazione falliti, traffico fuori orario. In ambito aziendale integra con SIEM per correlazione cross-system e response automatica. Il monitoring continuo trasforma la VPN da componente passiva a infrastruttura osservabile e tunable nel tempo.
Documentazione e procedure operative
Documenta sempre l'architettura VPN come la documentereresti per un nuovo collega che la prende in carico domani: diagramma di rete, IP scheme, chiavi/certificati e dove sono custoditi, procedure di onboarding e revoca utenti, processi di rotazione chiavi, runbook per incidenti comuni (tunnel giu, latency anomala, certificato scaduto), responsabilità ownership. Conserva la documentazione in un wiki interno (Confluence, BookStack, GitBook) versionato e con backup. Quando un membro del team lascia, basta passare il riferimento alla documentazione: continuita operativa garantita anche con turnover.
Errori comuni e come risolverli
- TLS handshake failed: verifica che la porta 1194 UDP sia aperta sul firewall e che l'orario di server e client sia sincronizzato via NTP.
- Errore certificato scaduto: rigenera CA e certificati estesi con --days 3650 oppure ruota i certificati prima della scadenza.
- Client connesso ma senza internet: controlla il NAT iptables, l'IP forwarding del kernel è la direttiva push redirect-gateway def1.
- MTU troppo alta: aggiungi tun-mtu 1400 e mssfix 1360 nella configurazione client per evitare frammentazione su reti mobili.
Domande frequenti
D: Meglio UDP o TCP?
R: UDP è più performante perché non genera doppio handshake; TCP serve solo se l'unico modo per uscire dalla rete e via porta 443.
D: Quanti client può gestire un server OpenVPN?
R: Dipende da CPU e banda: un VPS modesto regge tranquillamente 50-100 client concorrenti con throughput nell'ordine dei 100 Mbps.
D: OpenVPN è ancora attuale rispetto a WireGuard?
R: Si: e più lento ma offre più opzioni di autenticazione (LDAP, RADIUS, OTP) ed è supportato da un'ecosistema enterprise consolidato.
Hai bisogno di aiuto?
Se vuoi configurare VPN aziendale con G Tech Group, scrivici tramite il modulo di contatto.