A bejegyzésből megtudhatod, hogy hogyan telepíts és konfigurálj néhány perc alatt egy teljes értékű- és abszolút biztonságos vpn kapcsolatot.
Az OpenVPN Szerver telepítés
Töltsük le a telepítő scriptet, majd indítsuk el a telepítést
wget https://git.io/vpn -O openvpn-install.sh
Tegyük futtathatóvá
chmod a+x openvpn-install.sh
Futtatás
./openvpn-install.sh
A telepítés folyamán a következő adatokat kell megadnunk:
- Válasszuk ki a szerver IP címét
- Adjuk meg a port számot, alapértelmezés: 1194
- DNS szerver kiválasztása
- Kliens neve (Automatikusan létrehozza az első kliens konfigurációját)
A script futtatásához meg kell nyomnunk egy tetszőleges gombot. A telepítés és konfigurálás automatikusan lezajlik. Ezze a VPN szerver szolgáltatás telepítése be is fejeződött. A kliens konfig a .ovpn kiterjesztéssel megtalálható a rendszeren.
Túzfal beállítása
Ahhoz hogy csatlakozni tudjunk a szerverhez kívülről tűzfal használata esetén néhány beállítás szükséges. IPTables használata esetén a következő beállítás szükséges
nano /etc/rc.local
Adjuk meg a szükséges szabályokat
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -I INPUT -p udp --dport 1194 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to <szerver ip>
Amennyiben az ufw -t használjuk a tűzfal szabályok kezelésére, a következő utasítások- és beállítások kellenek. Én az IspConfig-ot használom a szerver menedzselésére, érdekes módon itt elegendő a 1194-es port- és a címfordítás engedélyezése, és a tűzfal egyéb beállításai nélkül is működik az openvpn szolgáltatás. Még nem néztem utána, hogy az IspConfig által generált tűzfal szabályok miként engedélyezik a kliens NAT-olását a külvilág felé. Tehát IspConfig esetén a before.rules konfiguráció módosítása kihagyható.
ufw allow 1194/udp
Konfiguráció
nano /etc/ufw/before.rules
Adjuk hozzá az állomány megfelelő részéhez a következő beállításokat
[...]
*filter
[...]
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source <szerver ip>
[...]
# ok icmp code for FORWARD
-A ufw-before-forward -m state --state RELATED,ESTABLISHED -j ACCEPT #Csak ha még nem szerepel ez a szabály fentebb
-A ufw-before-forward -s 10.8.0.0/24 -j ACCEPT
-A ufw-before-forward -i tun+ -j ACCEPT
-A ufw-before-forward -i tap+ -j ACCEPT
Engedélyezzük a címfordítást
nano /etc/ufw/sysctl.conf
Keressük meg az alábbi szekciót és vegyük ki a kommentet
net/ipv4/ip_forward=1
Aktualizáljuk a tűzfal szabályt
ufw reload
Elkészültünk, nincs más dolgunk, mint a klienst telepíteni a rendszerünkre, ami lehet Windows, vagy Linux Desktop. Az OpenVPN GUI innen érhető el.
Új kliens
Amennyiben új klienset szeretnénk felvenni, nincs más dolgunk, mint a telepítő scriptet elindítani. Felismeri, hogy a szolgáltatás már fut, és új- a telepítéstől eltérő menü jelenik meg, melynél kiválasztható az új kliens hozzáadásának lehetősége.
Kiegészítés
A script által generált server.conf állomány kiegészítésre szorul. Egyrészt az openvpn szerver 2.5 előtti verziói a cipher BF-CBC beállítást preferálták, azonban kiderült, hogy a BlowFish – kellő elfogott csomagszám esetén – ma már törhető. Így érdemes ezt átállítani a cipher AES-256-CBC rejtjelezésre, amely jelenleg biztonságos. Második lépésként szintén egészítsük ki a konfigurációt, szúrjuk be a következő sort: data-ciphers AES-256-GCM:AES-128-GCM:AES-256-CBC:BF-CBC. A jövőben a cipher kivezetésre kerül, az új direktíva veszi át a szerepét. Amint látható itt azt soroljuk fel, hogy mely rejtjelezési módokat támogassa az openvpn szerverünk. A kliens konfigurációból már a cipher utasítást ki is vehetjük és csak ez kerüljön bele: data-ciphers-fallback AES-256-CBC. Értelemszerűen ezzel azt adtuk meg, hogy a kliens a szerver által támogatottak közül az: AES-256-CBC rejtjelezést szeretnénk használni. Ezt a kiegészítést 2021. 12. 12.-én írtam, az általam használt openvpn szerver 2.5.4 -es verziójú.
Windows Kliens
OpenVPN-GUI
A Windows alatt használható OpenVPN kliens program a: openvpn.net címről tölthető le, azon belől is a community > download almenü alatt találhatóak az egyes verziók. Telepítést követően a:
C:\Users\<Felhasználói név>\OpenVPN\config
alkönyvtárban kell létrehozni a kliens ovpn kiterjesztésű konfigurációs állományát, melyet a fenti script legenerált. Amennyiben ezzel megvagyunk, manuálisan már tudunk csatlakozni a VPN szerverünkhöz.
OpenVPN-Connect
Az OpenVPN Connect arra szolgál, hogy Windows alól automatikusan tudjunk kliensként csatlakozni egy OpenVPN szerverhez. A szoftver használata rendkívül egyszerű, külön bemutatást nem igényel.
Linux Kliens
Linux alatt telepítsük fel az openvpn szolgáltatást:
apt install openvpn
Módosítsuk az alapértelmezett beállítást:
nano /etc/default/openvpn
Keressük meg- és módosítsuk az alábbi szekciót, vegyük el a kettős keresztet:
AUTOSTART="all"
A kliens konfigurációt helyezzük el az „/etc/openvpn” könyvtárba, client.conf néven.
Majd adjuk ki az alábbi utasítást. Figyelem, mivel az OpenVPN képes több – különböző – szerverhez kapcsolódni egy időben, így a szolgáltatás engedélyezését- és indítását a konfiguráció nevére hivatkozva kell megadni, melyet a @ utáni rész jelöl:
systemctl enable openvpn@client.service systemctl daemon-reload service openvpn start
Újraindítást követően a kliensnek automatikusan el kell indulnia. Arra viszont figyelni kell, ha az openvpn szerver ipv6 címet is oszt, és a kliens gépünkön az ipv6 használata le van tíltva az „/etc/sysctl.conf” állományban, akkor nem fog elindulni a szolgáltatás.