COMPUTING > Virtual Private Cloud > VMware vCloud Director > VPN kapcsolat létrehozása OpenVPN-nel

3.4.1 VPN kapcsolat létrehozása OpenVPN-nel

VPN kapcsolat OpenVPN segítségével történő létrehozásához tekintse meg a hivatalos VMware dokumentációt.

Az OpenVPN egy SSL VPN megoldás, amely kiterjeszti az OSI 2 és OSI 3 szintű biztonságos hálózatot az SSL/TLS szektorszabvány protokollt használva és konfigurációk széles skáláját fedve le. Az OpenVPN támogatja a Windows, Linux, FreeBSD, OpenBSD, macOS, iOS és Android operációs rendszerű klienseket.

Támogatja a tanúsítványokon, intelligens kártyákon és/vagy felhasználónév és jelszó hitelesítő adatokon alapuló rugalmas kliens-hitelesítési módszereket, továbbá lehetővé teszi a felhasználóknak vagy csoportoknak, hogy a virtuális VPN-re alkalmazott tűzfalszabályok segítségével valósítsák meg a hozzáférés szabályozást.

Az alábbiakban ismertetjük az általános elveket, valamint a VPN-kapcsolat OpenVPN használatával történő létrehozásához szükséges lépéseket. A Windows Server 2019 és az Ubuntu 20.04 konfigurálásához/megvalósításához szükséges példa útmutatók hivatkozásai a cikk végén találhatók.
 
A VPN konfigurálása gyakran magában foglalja a privát alhálózatok összekapcsolását különböző helyekről. Az IANA (Internet Assigned Numbers Authority) a következő három IP címtartományt foglalta le a magánhálózatok számára (az RFC 1918-ban meghatározva):
  • 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)
Fontos, hogy olyan címeket válasszunk, amelyekkel a lehető legnagyobb mértékben elkerülhetjük az IP címek vagy alhálózatok ütközését. A kiszolgáló hálózati konfigurációjának bizonyos szempontjait optimalizálni kell a forgalom VPN-en keresztül történő helyes irányításához:
  • IP cím továbbítás - az operációs rendszer azon képessége, hogy fogadja a bejövő hálózati csomagokat egy interfészen, felismerje, hogy azokat nem magának a rendszernek szánták, hanem át kell adni egy másik hálózatnak, majd ennek megfelelően továbbítani;
  • tűzfal konfigurálása - a távoli elérésű VPN kiszolgálóként működő virtuális gépen kell végrehajtani:
    • SSH port;
    • VPN megoldás által használt portok (például a 1194-es UDP port az előre meghatározott port az OpenVPN számára);
Fontos annak biztosítása, hogy a vDC (virtuális adatközpont) hálózaton lévő virtuális gépek kapcsolódjanak a VPN használatával, hogy a hálózati forgalom a VPN kiszolgálóhoz irányítódjon. Az egyik megoldás a one-to-many NAT megvalósítása a csatlakoztatott ügyfelek számára.
Az OpenVPN konfiguráció létrehozásának első lépése egy PKI (nyilvános kulcsú infrastruktúra) beállítása. A PKI a következőkből áll:
  • egy külön tanúsítvány (más néven nyilvános kulcs) és egy privát kulcs a szerverhez és minden klienshez;
  • egy a tanúsító hatóság (CA) által kiadott tanúsítvány és kulcs, amely az egyes kiszolgálók és kliens tanúsítványok aláírására szolgál;
Az OpenVPN támogatja a tanúsítványokon alapuló kétirányú hitelesítést, ami azt jelenti, hogy a kliensnek hitelesítenie kell a szervertanúsítványt, a szervernek pedig hitelesítenie kell az klienstanúsítványt. Az OpenVPN azt javasolja, hogy a PKI-k kezelését easy-rsa, egy a CA PKI létrehozásához és kezeléséhez használható CLI (Command-Line Interface) segítségével végezze el. A saját tanúsító hatóság konfigurálásához, valamint a tanúsítványok és kulcsok generálásához szükséges lépések az OpenVPN dokumentációjában találhatók.

Szerver oldali megvalósítás

Az OpenVPN szerver a 1194-es portot és az UDP protokollt használja alapértelmezett beállításként a kliens kapcsolatok elfogadásához. Ha a kliens korlátozott hálózati környezetben található, és másik portot kell használni, a port és a protokoll beállításai módosíthatók. A 1194-es port az IANA által az OpenVPN-hez rendelt hivatalos portszám, de bármely 1 és 65535 közötti portszám működni fog, ha még nincs használatban a szerveren. A 443-as port a legnépszerűbb választás, mivel a tűzfalszabályok általában engedélyezik.

A konfigurációs részletek a server.conf fájlban archiválódnak, és olyan információkat tartalmaznak, mint az IP cím és a port (amelyen a kiszolgáló figyel), a szolgáltatás titkosítási listája, a szolgáltatás tanúsítványa stb.

A konfiguráció kiindulópontjaként javasoljuk a minta OpenVPN konfigurációs fájlok használatát, amelyek a következő helyen találhatók:
  • az OpenVPN forrásdisztribúció sample-config-files könyvtára
  • a /usr/share/doc/packages/openvpn vagy /usr/share/doc/openvpn könyvtárban található sample-config-files könyvtár, ha RPM vagy DEB csomagból van telepítve
  • Start Menu > All Programs > OpenVPN > OpenVPN Sample Configuration Files Windows esetében
Ha az OpenVPN minta konfigurációs fájljait használja, egy VPN egy TUN (routed mode) virtuális hálózati interfész segítségével jön létre, amely figyeli a kliens kapcsolatokat az UDP 1194-es porton, és virtuális címeket oszt ki a kliens kapcsolathoz a 10.8.0.0/24 alhálózatról. A fent leírt könyvtárban található fájlok paramétereinek szerkesztésével ez a viselkedés megváltoztatható.
 
A minta konfigurációs fájlok használata előtt a ca, cert, key és dh (Diffie hellman) paramétereket úgy kell módosítani, hogy azok a PKI szekcióban generált fájlokra mutassanak. A kiszolgáló konfigurációs fájlja ezután használatra kész.

Kliens oldali megvalósítás

A következő lépések a kliens konfigurálására vonatkoznak: a tanúsítvány és a kulcspár legenerálása, valamint a kliens konfigurációs fájl létrehozása.

Az utolsó lépés a kliens konfigurációs fájljához kapcsolódik, amely megismétli a kiszolgáló konfigurációs fájljában beállított alapértelmezett direktívákat:
  • A kiszolgáló konfigurációs fájljához hasonlóan először módosítsa a ca, cert, key és dh paramétereket, hogy a korábban generált fájlokra mutassanak. Vegye figyelembe, hogy minden kliensnek saját tanúsítvány/kulcspárral kell rendelkeznie. Csak a ca fájl univerzális az OpenVPN szerveren és az összes kliensen.
  • Módosítsa a távoli direktívát, hogy az OpenVPN szerver állomásnevére/IP címére és portszámára mutasson: használja a nyilvános IP címet, amely a VPN kiszolgáló NAT címe.

Példák arra, hogy hogyan hozható létre VPN kapcsolat OpenVPN segítségével: