OpenVPN szerver telepítése Windows‑ra
A VPN szerverek használata mára nagyon elterjedté vált céges és otthoni környezetben is. A VPN kapcsolat alapvető célja, hogy két eszköz között egy biztonságos csatornát hozzon létre. Ezzel kivitelezhető, hogy egy cég telephelyei között titkosított formában utazzanak az adatok, a munkavállalók biztonságosan tudjanak otthonról vagy akár egy kávézóból is dolgozni, ahol a nyilvános wifi hálózatot használják. Számos VPN szolgáltató van a piacon, akik profi szolgáltatást biztosítanak. De sokféle megoldás létezik arra is, ha valaki egy saját VPN szervert akar beüzemelni.
Az alábbi útmutató részletesen végigvezet egy Windows-os OpenVPN szerver beüzemelésének lépésein.
1. lépés: OpenVPN telepítése
Töltsd le a telepítőfájlt a szerverre az OpenVPN hivatalos oldaláról. Az installálás közben pipáld be az EasyRSA 2 Certificate Management Scripts komponenst.
OpenVPN telepítése Windows-ra
A klienseken nem szükséges telepíteni az EasyRSA 2 Certificate Management Scripts komponenst.
2. lépés: Előkészítés
2.1. Indíts egy parancssort rendszergazdaként:
Start menü → Parancssor → Jobb klikk → Futtatás rendszergazdaként
2.2. Lépj be a C:\Program Files\OpenVPN\easy-rsa mappába:
cd "C:\Program Files\OpenVPN\easy-rsa"
Megjegyzés: ha a mappa nem létezik, akkor nem telepítetted az EasyRSA 2 Certificate Management Scripts komponenst.
2.3. OpenVPN beállításainak inicializálása:
init-config
Megjegyzés: az init-config parancsot csak egyszer futtasd a telepítés folyamán.
2.4. Nyisd meg a vars.bat fájlt egy szövegszerkesztővel:
notepad vars.bat
2.5. Ez a fájl tartalmazza az alapbeállításokat, amit a kulcsgenerálás során a program később felkínál. Módosítsd a szükséges beállításokat, például:
set KEY_COUNTRY=HU
set KEY_PROVINCE=Pest
set KEY_CITY=Budapest
set KEY_ORG=Securitylayer
set KEY_EMAIL=openvpn@securitylayer.hu
2.6. Mentsd el a módosításokat.
2.7. Futtasd az alábbi két parancsot:
vars
clean-all
2.8. Állíts be egy statikus/fix IP-címet a VPN szerverednek. Ezt megteheted a routered kezelőfelületén keresztül, vagy a szerver hálózati beállításainál is.
3. Tanúsítványok és kulcsok elkészítése
3.1. Certificate authority (CA) tanúsítvány és kulcs generálása:
build-ca
Megjegyzés: az összes szerver és kliens tanúsítvány aláírására szolgál.
Enter-rel hagyd jóvá az alapértelmezett értéket (amit a 2.5‑ös pontban beállítottál), vagy adj meg új értékeket, például:
Country Name (2 letter code) [HU]:
State or Province Name (full name) [Pest]:
Locality Name (eg, city) [Budapest]:
Organization Name (eg, company) [Securitylayer]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [openvpn@securitylayer.hu]:
3.2. A szerver tanúsítvány és kulcs generálása:
build-key-server server
Megjegyzés:
- a Common Name-hez írd be hogy server
- a Sign the certificate?-et hagyd jóvá egy y-nal
- az 1 out of 1 certificate requests certified, commit?-ot hagyd jóvá egy y-nal
- a szerver tanúsítványa elkészült
Szerver tanúsítvány létrehozása
3.3. A kliens tanúsítvány és kulcs generálása
Most fogod generálni a klienshez szükséges fájlokat. Később ezekkel az adatfájlokkal lehet majd a szerverhez kapcsolódni. A példában az első kliens neve rendszergazda‑laptop lesz:
build-key rendszergazda‑laptop
Megjegyzés: a Common Name-hez írd be az elnevezést, amit a parancsban is használtál, azaz rendszergazda‑laptop
Ha több felhasználó fog csatlakozni a szerverhez, akkor ismételd meg a 3.3‑as pontot.
3.4. Diffie-Hellman paraméter létrehozása:
build-dh
Megjegyzés: ez több percet is igénybe vehet, várd meg a folyamat végét.
3.5. Generálj egy közös titkos kulcsot:
"C:\Program Files\OpenVPN\bin\openvpn.exe" --genkey --secret "C:\Program Files\OpenVPN\easy-rsa\keys\ta.key"
Megjegyzés: ezt a szerver és a kliensek is használni fogják a kapcsolat felépítéséhez.
4. A szerver konfigurációs fájl
Az alapértelmezett konfigurációs fájlokat itt éred el:
Start menü → OpenVPN → OpenVPN Sample Configuration Files
4.1. Másold át az alapértelmezett szerver konfigurációs fájlt (server.ovpn) az easy-rsa\keys könyvtárba:
copy "C:\Program Files\OpenVPN\sample-config\server.ovpn" "C:\Program Files\OpenVPN\easy-rsa\keys\server.ovpn"
4.2. Nyisd meg a server.ovpn fájlt:
notepad "C:\Program Files\OpenVPN\easy-rsa\keys\server.ovpn"
4.3. Keresd meg az alábbi sorokat a fájlban:
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
4.4. Módosítsd a sorokat erre:
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
key "C:\\Program Files\\OpenVPN\\config\\server.key"
dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
A további két lépés opcionális, de sok esetben hasznosak. Ha nincs rá szükséged, akkor mentsd el a fájlt és ugorj az 5‑ös ponthoz.
Amiket itt még bemutatok:
- A VPN szerver helyi hálózatán (LAN) lévő eszközök távoli elérése
- Teljes adatforgalom átirányítása a VPN szerver felé
4.5. A VPN szerver helyi hálózatán (LAN) lévő eszközök távoli elérése
Alapértelmezetten nem minden adatforgalmat küldi el a kliens a VPN szervernek, csak azt, ami eleve oda van címezve. Alapból a VPN szerver helyi hálózatáról a kliensnek nincs információja, nem tudja, hogy azt a VPN szerveren keresztül el tudja érni. Ezért jelezni kell a kliens felé, hogy milyen alhálózatot érhet el a szerveren keresztül. A példában legyen a VPN szerver helyi hálózata: 192.168.10.0/24
Add hozzá a szerver konfigurációs fájlhoz az alábbi sort:
push "route 192.168.10.0 255.255.255.0"
Így már a kliensek a szerver felé fogják küldeni az adatcsomagokat, amit a szerver helyi hálózatába szánnak. Viszont a szerver alapértelmezetten nem továbbítja, ehhez be kell kapcsolni az IP forwarding-ot a registry-ben.
Nyisd meg a Beállításszerkesztő-t (Registry Editor-t) a parancssorból:
regedit
A fejlécbe másold be az alábbi elérési utat, vagy navigálj oda manuálisan:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Nyisd meg a REG_DWORD típusú IPEnableRouter nevű kulcsot, majd módosítsd az értékét 0‑ról 1‑re.
Megjegyzés: a módosítást követően a számítógépet újra kell indítani.
A routeren, amihez csatlakozik a VPN szerver létre kell hoznod egy statikus forgalomirányítást (route-olást), hogy megfelelően működjön a hálózati forgalom, az alábbiak szerint:
- Hálózat/Network: 10.8.0.0 (a VPN szerver által biztosított hálózat)
- Alhálózat/Subnet: 255.255.255.0 (a VPN szerver alhálózati maszkja)
- Alapértelmezett átjáró/Default gateway: 192.168.10.20 (a VPN szerver helyi hálózaton használt IP címe, amit a 2.8‑as pontban állítottál be)
Statikus útvonal beállítása egy Asus routeren
Most már a kliensek távolról is el fogják érni a VPN szerver "mögött" lévő helyi hálózatban található eszközöket.
4.6. Teljes adatforgalom átirányítása a VPN szerver felé
Mint említettem alapból nem minden adatforgalom megy a VPN szerver felé, csak az, ami oda lett címezve. Ha megnyitsz egy weboldalt, akkor az továbbra is közvetlenül a helyi internet csatlakozási pontodon keresztül kerül letöltésre. Ha egy titkosítatlan wifi hálózatot használsz, akkor hiába kapcsolódsz a VPN szerverhez, ha nem irányítod át az összes forgalmat először a megbízható VPN szerver felé.
Az összes forgalom átirányításához add hozzá a szerver konfigurációs fájlhoz az alábbi sort:
push "redirect-gateway def1"
Ahhoz, hogy a DNS lekérések működjenek, add hozzá az alábbi sort, ahol az IP-cím helyére helyettesítsd be a DNS szerver IP-címét. Például:
push "dhcp-option DNS 10.8.0.1"
VAGY
push "dhcp-option DNS 8.8.8.8"
4.7. Mentsd el és zárd be a konfigurációs fájlt.
5. Alapértelmezett kliens konfigurációs fájl módosítása
5.1. Nyisd meg az alapértelmezett kliens konfigurációs fájlt:
notepad "C:\Program Files\OpenVPN\sample-config\client.ovpn"
5.2. Keresd meg az alábbi sort:
remote my‑server‑1 1194
5.3. Módosítsd a my‑server‑1 bejegyzést a VPN szervered publikus IP címére vagy domain nevére. Ha az internetszolgáltatód nem biztosít számodra fix IP-címet, akkor célszerű DDNS szolgáltatást használni.
Az 1194 a csatlakozáshoz szükséges portot jelöli. A módosítása nem kötelező, de biztonsági okokból erősen ajánlott. Cseréld ki egy tetszőleges számra 1024 és 65535 között (javasolt a 10000 feletti port használata), a példában ez 45678 lesz.
Például:
remote 1.2.3.4 45678
VAGY
remote openvpn.dyndns.org 45678
5.4. Mentsd el és zárd be.
6. A kliens konfigurációs fájlok létrehozása
A további pontokat annyiszor kell megismételni, amennyi klienst hoztál létre korábban a 3.3‑as pont szerint. A példában a korábban használt rendszergazda‑laptop nevű klienssel mutatom be a teendőket, de ezt szükség esetén cserélni kell az általad használt kliensek neveire!
6.1. Másold az alapértelmezett kliens konfigurációs fájlt (client.ovpn) az easy-rsa\keys könyvtárba:
copy "C:\Program Files\OpenVPN\sample-config\client.ovpn" "C:\Program Files\OpenVPN\easy-rsa\keys\rendszergazda‑laptop.ovpn"
6.2. Nyisd meg a kliens konfigurációs fájlt:
notepad "C:\Program Files\OpenVPN\easy-rsa\keys\rendszergazda‑laptop.ovpn"
6.3. Töröld ki az alábbi sorokat a fájlból:
ca ca.crt
cert client.crt
key client.key
6.4. Másold át a ca.crt, client.crt és client.key fájlok tartalmát az alábbiak szerint:
<ca>
# IDE MÁSOLOD A CA.CRT TARTALMÁT
</ca>
<cert>
# IDE MÁSOLOD A RENDSZERGAZDA‑LAPTOP.CRT TARTALMÁT
</cert>
<key>
# IDE MÁSOLOD A RENDSZERGAZDA‑LAPTOP.KEY TARTALMÁT
</key>
6.5. Mentsd el és zárd be.
7. A szerver fájlok átmásolása a megfelelő helyre
Másold át a szerver futtatásához szükséges fájlokat (ca.crt, ta.key, dh2048.pem, server.crt, server.key, server.ovpn) a C:\Program Files\OpenVPN\easy-rsa\keys\ mappából a C:\Program Files\OpenVPN\config\ mappába.
robocopy "C:\Program Files\OpenVPN\easy-rsa\keys\ " "C:\Program Files\OpenVPN\config\ " ca.crt ta.key dh2048.pem server.crt server.key server.ovpn
8. A kliens fájlok átmásolása a megfelelő helyre
Másold át a kliensekhez tartozó fájlokat a kliens eszközökre. Ezt célszerű biztonságos módon megoldani, például egy pendriveon, vagy titkosított módon továbbítani email-ben.
A példánkban ezekre a fájlokra lesz szükség a rendszergazda‑laptop kliens konfigurálásához:
- ta.key
- rendszergazda‑laptop.ovpn
Megjegyzés: a ta.key tartalma szintén beilleszthető az klienshez tartozó konfigurációs fájlba (pl. rendszergazda‑laptop.ovpn), de ezt nem minden VPN program támogatja. A ta.key tartalmát szükség szerint <tls-auth> és </tls-auth> közé lehet beilleszteni.
Windows-os kliens esetén ide kell beilleszteni a két fájlt:
C:\Program Files\OpenVPN\config\
9. Port átirányítás
Ahhoz, hogy a nyilvános internet felől elérhető legyen a VPN szerver, egy portot kell nyitni a routeren keresztül. Lépj be a router kezelőfelületére, majd állítsd be a port átirányítást (port forward).
- a külső port/External Port helyére az 5.3‑as pontban megadott portot kell használni, pl.: 45678
- a belső port/Internal Port alapértelmezés szerint 1194 (ez a szerver konfigurációs fájlban módosítható)
- a belső IP-cím/Internal IP Address a VPN szerver lokális címe lesz pl. 192.168.10.20
- a protokoll/Protocol alapértelmezés szerint UDP, de ez is módosítható a szerver és a kliens konfigurációs fájlban, viszont a kettőnek egyeznie kell
Porttovábbítás beállítása egy Asus routeren
10. Tűzfal beállítása
A szerver tűzfalán engedélyezni kell a 1194‑es porton érkező bejövő UDP kapcsolatokat, hogy a csatlakozás sikeres legyen.
OpenVPN szerver engedélyezése a Windows tűzfalban
11. OpenVPN szerver automatikus indítása
Az OpenVPN-t a szerveren célszerű szolgáltatásként futtatni, mivel ha a számítógép újraindul, akkor automatikusan felhasználói beavatkozás nélkül is el fog indulni.
11.1. Nyisd meg a Szolgáltatások/Services programot:
Start menü → Szolgáltatások
11.2. Keresd meg a listában az OpenVPN service nevű szolgáltatást, majd nyisd meg.
11.3. Az indítás típusánál válaszd ki az Automatikus lehetőséget.
11.4. Indítsd el a szolgáltatást.
OpenVPN szerver automatikus indítása szolgáltatásként
Megjegyzés: a szervert ajánlott szünetmentes tápegységgel ellátni, továbbá beállítani a BIOS-ban/UEFI-ben, hogy egy esetleges áramkimaradás után automatikusan induljon el.
12. OpenVPN kliens indítása
Az OpenVPN klienst Windows-ban itt éred el:
Start menü → OpenVPN → OpenVPN GUI
A program ikonja az óra mellett található. Ha csak egy VPN konfigurációs fájlt használ (azaz egy szerverhez lett párosítva), akkor dupla klikkel indítható a csatlakozás vagy a jobb klikkes menüből.
OpenVPN ikon a kliens számítógépen
VPN kapcsolatot nem csak számítógépről tudsz létesíteni, akár mobiltelefonról és sok más egyéb eszközről is működik.
További információért látogass el az OpenVPN hivatalos honlapjára.