OpenVPN používá SSL/TLS (zajišťuje šifrování a autentizaci), podporuje platformy Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X a Windows 2000/XP.
Program běží v user módu (nemusí se patchovat jádro).
Podporuje tunel (1:1) nebo klient/server (N:1).
Bezpečný a odolný na nekvalitních linkách, podpora HTTP a SOCKS proxy – klient se může připojit odkudkoliv.
Pro každý směr komunikace je možno použít jiný klíč.
OpenVPN umí automaticky navazovat spadlé spojení.
Instalace Unix/Linux
Stáhnout balíček openvpn,
provédst příkazy:
./configure
make
make install
sestavení programu:
rpmbuild -tb [tarball]
kde tarball je název archivu
instalovat:
rpm -ivh [binary-rpm]
Standardně je použit protokol UDP, ale použít lze i TCP (HTTP nebo SOCKS proxy). Komunikace probíhá na jediném portu, což umožňuje např. snadnou konfiguraci firewallu.
OpenVPN komunikuje prostřednictvím TUN a TAP rozhraní.
Pro kompresi se používá knihovna LZO.
Spouštěcí skript:
sample-scripts/openvpn.init
nakopírujeme do
/etc/init.d
a přidáme
chkconfig --add openvpn
Instalace ve Windows
stahnout balíček OpenVPN a nainstalovat. Ten přidá "Virtual TAP" síťové zařízení a službu OpenVPN.
Generování klíčů (certifikátů) pod operačním systémem MS Windows
Pomocí programu mycert.exe (My Certification Wizard) se provede vygenerování obou potřebných klíčů (privátní klíč i žádost o osobní certifikát). Pro spuštění programu je potřeba mít nainstalované OpenVPN a program mycert.exe nakopírovaný do podsložky bin v adresáři s OpenVPN. Vytváření je díky interaktivnímu režimu dostatečně intuitivní.
Link produktu: http://sweb.cz/mycert/
Generování klíčů pod systémem Unix/Linux
Provede se příkazem
openssl req –new –out cert.pem -keyout key.pem -days 1098
kde jednotli vé parametry jsou:
req práce s certifikační žádostí (X.509 Certificate Signing Request (CSR) Management).
-out provede výpis žádosti o osobní certifikát (Certificate Reguest) do souboru cert.pem.
-days určuje, za jak dlouho vyprší platnost certifikátu.
-new vytváří se nový soubor
-keyout privátní klíč se zapisuje do souboru key.pem.
Vysvětlení jednotlivých položek konfigurace openSSL (standardně /etc/ssl/openssl.cnf) je možno nalézt zde: http://www.yarpen.cz/openssl/
Takto se vytváří jeden certifikát, chceme-li však vytvořit certifikáty v rámci jedné certifikační autority, nastavíme v souboru /etc/ssl/openssl.conf v sekci [ca] položku default_ca – jedná se o jméno výchozí certifikační autority.
V sekci [CA_default] se nastaví např. default_days = 3600 a politiku na volnou policy = policy_anything.
Je potřeba vytvořit adresáře v /etc/ssl/: např. adresář demoCA a podadresáře certs, crl, newcerts, private, prázdný soubor index.txt a soubor serial s obsahem 01. Dále se vygeneruje sám sebou podepsaný certifikát certifikační autority:
openssl req -new -x509 -nodes -out cacert.pem -keyout cakey.pem -days 1098
Vygenerovaný certifikát se přesune do adresáře
/etc/ssl/demoCA
a klíč do
/etc/ssl/demoCA/private
Soubor s certifikátem se přejmenuje tak, aby měl příponu crt. Je to kvůli snadnějšímu importu ve Windows.
Když budeme chtít vytvořit podepsaný certifikát, vytvoříme nejdříve žádost:
openssl req -new -nodes -out request.pem -keyout key.pem -days 1098
Podepsání je možné ukázat v módu „ca“:
openssl ca -in request.pem -out cert.pem
Ve výstupním souboru bude podepsaný certifikát, obsah souboru serial je nyní 02, v adresáři certs je podepsaný certifikát a v souboru index.txt je údaj o certifikátu.
Nastavení HTTP proxy
Pomocí parametru programu
openvpn.exe –http-proxy adress port [usr][auth]
kde jednotlivé položky znamenají:
adress, port – adresa a port pro připojení pomocí http proxy serveru
usr – je dvouřádkový soubor, obsahující uživatelské jméno/heslo pro případnou autentifikaci
auth – nastavit auth=’ntlm‘, pokud server tuto (NTLM) autentifikaci vyžaduje
Dále je možno provést konfiguraci pomocí aplikace OpenVPN GUI, kde v interaktivním režimu je možno volit ve vlastním nastavení buď HTTP Proxy nebo SOCKS Proxy. Tento program také poskytuje informace o běžících sítích VPN.