OpenVPN: VPN OpenSource basata su SSL
OpenVPN ( http://openvpn.net/ ) è un progetto interessante per realizzare VPN basate su SSL/TLS per l'autenticazione e la confidenzialità dei dati, garantendo maggiore sicurezza rispetto ai metodi di altre soluzioni VPN legacy. Esiste per Linux, Windows, MacOS e altri Unix per cui
Lavora completamente in userspace ed ha una installazione e configurazione semplici.
Viene usato UDP (porta 1194 di default) come protocollo di trasporto e può incapsulare arbitrario traffico IP, utilizza i device TUN/TAP e le relative interfacce di rete (tun0, tun1 ....).
Installazione
Esiste come pacchetto precompilato in molte distribuzioni. La compilazione dei sorgenti non presenta particolari difficoltà e non richiede la compilazione del kernel o di un modulo.
Volendo si può creare un rpm direttamente dai sorgenti con:
rpmbuild -tb openvpn-[versione].tar.gz
Configurazione
Il file di configurazione sta in /etc/openvpn/
.
Nei documenti distribuiti con i sorgenti o comunque nell'HowTo ufficiale esistono numerosi esempi di configurazione per contesti diversi.
La creazione di certificati x509 e di una certification authority propria è facilitata da alcuni appositi script.
Troubleshooting
Via syslog vengono loggati i messaggi del server e, in caso di problemi questi sono generalmente piuttosto espliciti. A livello di firewalling e networking si applicano le solite procedure:
- attivazione di adeguato logging su iptables per capire se qualcosa viene erroneamente filtrato
- verifica di routing e parametri di rete.
Vantaggi
- Cross platform, esiste per i principali sistemi operativi
- Semplice da installare e configurare, client e server si differenziano solo per la configurazione
- Utilizza robusti e consolidati algoritmi di criptazione e hashing
- Più semplice di IpSec, più sicuro di protocolli custom usati per altre soluzioni open source
- Come IpSec opera in tunnel mode e può trasportare pacchetti IP di qualsiasi natura.
- Non ha problemi con il natting
- Può usare certificate x509 per la distribuzione delle chiavi pubbliche
Svantaggi
- Lavorando in user space e usando device TUN/TAP è potenzialmente più lento di soluzioni kernel based, anche se prove reali sembrano dimostrare il contrario.
- L'overhead dei pacchetti è relativamente elevato: il pacchetto IP da trasportare viene incaspulato in SSL e a sua volta incapsulato in UDP.