OpenVPN je řešení SSL VPN, které rozšiřuje zabezpečenou síť na úrovni OSI 2 a OSI 3 pomocí standardního protokolu SSL/TLS a pokrývá širokou škálu konfigurací. OpenVPN podporuje klienty s operačními systémy Windows, Linux, FreeBSD, OpenBSD, macOS, iOS a Android.
Podporuje flexibilní metody autentizace klientů založené na certifikátech, čipových kartách a/nebo uživatelských jménech a heslech a umožňuje uživatelům nebo skupinám implementovat zásady řízení přístupu pomocí pravidel brány firewall aplikovaných na virtuální VPN.
Obecné zásady spolu s kroky potřebnými k vytvoření připojení VPN pomocí OpenVPN jsou uvedeny níže; na konci jsou uvedeny odkazy na vzorové příručky pro konfiguraci/implementaci pro Windows Server 2019 a Ubuntu 20.04.
Konfigurace sítě VPN často zahrnuje propojení privátních podsítí z různých míst. L'IANA (Internet Assigned Numbers Authority) vyhradila následující tři bloky adresního prostoru IP pro privátní sítě Internet (kodifikováno v RFC 1918):
- 10.0.0.0 – 10.255.255.255 (prefix 10/8)
- 172.16.0.0 – 172.31.255.255 (prefix 172.16/12)
- 192.168.0.0 – 192.168.255.255 (prefix 192.168/16)
Je důležité zvolit adresy, které co nejvíce snižují pravděpodobnost konfliktních IP adres nebo podsítí. Některé aspekty síťové konfigurace serveru musí být optimalizovány, aby bylo možné správně směrovat provoz prostřednictvím sítě VPN:
- přeposílání IP adres - schopnost operačního systému přijmout příchozí síťové pakety na rozhraní, rozpoznat, že nejsou určeny pro tento systém, ale že je třeba je předat jiné síti, a proto je předat dál;
- konfigurace firewallu - musí být provedena na virtuálním serveru, který funguje jako server VPN pro vzdálený přístup:
- SSH port;
- porty používané pro VPN (například port UDP/1194 předdefinovaný pro OpenVPN);
Je důležité zajistit, aby virtuální servery v síti virtuálního datacentra směrovaly síťový provoz na VPN server. Jedním z řešení je implementace NAT typu one-to-many pro připojené klienty.
Prvním krokem při vytváření konfigurace sítě
OpenVPN je nastavení PKI (infrastruktura veřejných klíčů). PKI se skládá z:
- samostatný certifikát (známý také jako veřejný klíč) a soukromý klíč pro server a každého klienta;
- certifikát a klíč vydaný hlavní certifikační autoritou (CA) používaný k podpisu každého serverového a klientského certifikátu;
OpenVPN podporuje obousměrné ověřování na základě certifikátů, což znamená, že klient musí ověřit certifikát serveru a server musí ověřit certifikát klienta. OpenVPN doporučuje správu PKI pomocí
easy-rsa, rozhraní příkazového řádku (CLI) pro vytvoření a správu PKI certifikační autority. Kroky potřebné ke konfiguraci vlastní certifikační autority a k vygenerování certifikátů a klíčů naleznete v dokumentaci OpenVPN.
Implementace na straně serveru
Server OpenVPN používá port 1194 a protokol UDP jako výchozí nastavení pro přijímání klientských připojení. Pokud se klient nachází v omezeném síťovém prostředí a je třeba použít jiný port, lze volby portu a protokolu změnit. Port 1194 je oficiální číslo portu přidělené organizací IANA pro OpenVPN, ale bude fungovat jakékoli číslo portu v rozmezí 1 až 65535, pokud již není na serveru používáno. Port 443 je nejoblíbenější volbou, protože je obvykle povolen pravidly brány firewall.
Podrobnosti o konfiguraci jsou archivovány v souboru server.conf, který obsahuje informace, jako je adresa IP a port, na kterém server naslouchá, certifikát služby a tak dále.
Jako výchozí bod pro vaši konfiguraci doporučujeme použít vzorové konfigurační soubory OpenVPN, které naleznete:
- adresář sample-config-files distribuovanž OpenVPN
- adresář sample-config-files který se nachází v adresáři /usr/share/doc/packages/openvpn nebo /usr/share/doc/openvpn pokud je nainstalován z balíčku RPM nebo DEB
- Nabídka Start > Všechny programy > OpenVPN > Vzorové konfigurační soubory OpenVPN v systému Windows
Pokud použijete ukázkové konfigurační soubory OpenVPN, bude vytvořena síť VPN pomocí virtuálního síťového rozhraní TUN (směrovaný režim), které bude naslouchat klientským připojením na portu UDP 1194 a bude distribuovat virtuální adresy klientům připojení z podsítě 10.8.0.0/24. Úpravou parametrů souborů, které se nacházejí ve výše popsaném adresáři, lze toto chování změnit.
Před použitím ukázkových konfiguračních souborů je třeba změnit parametry ca, cert, key a dh (Diffie hellman) tak, aby odkazovaly na soubory vygenerované v sekci PKI. Konfigurační soubor serveru je pak připraven k použití.
Implementace na straně klienta
Následující kroky se týkají konfigurace klienta: generování páru certifikátu a klíče a vytvoření konfiguračního souboru klienta.
Poslední krok se týká konfiguračního souboru klienta, který replikuje výchozí pravidla nastavené v konfiguračním souboru serveru:
- Stejně jako u konfiguračního souboru serveru musíte nejprve změnit parametry ca, cert, key a dh tak, aby směřovaly na již vygenerované soubory. Berte na vědomí, že každý klient by měl mít svůj vlastní pár certifikát/klíč. Soubor ca je jediný, který je univerzální pro server OpenVPN a pro všechny klienty
- V konfiguraci uveďte veřejnou IP adresu a port, který používá NAT.
Příklady toho, jak vytvořit připojení VPN s OpenVPN: