Bevezetés
Szeretne biztonságosan hozzáférni az internethez okostelefonjáról vagy laptopjáról, amikor egy nem megbízható hálózathoz csatlakozik (pl. szállodai vagy kávézói Wi-Fi)? Szerencsére van mód arra, hogy teljesüljön a kívánsága. Biztonságosan csatlakozhat egy nem megbízható hálózathoz, mintha egy magánhálózaton lenne, egy virtuális magánhálózat (VPN).
Mi az a VPN?
A VPN a Virtual Private Network (virtuális magánhálózat) rövidítése. Lehetőséget nyújt egy biztonságos alagút megnyitására egy megbízható szerver felé. Ezután minden kérés ezen a szerveren keresztül kerül elküldésre és fogadásra. Előnye a hozzáférés és a tranzakciók biztosítása olyan nyilvános hálózatok használatakor, mint például egy szálloda ingyenes Wi-Fi-je.
A VPN-en keresztül minden adat titkosítva van, és a szerveren keresztül kerül feldolgozásra. A köztes eszközöknek, például a harmadik féltől származó útválasztóknak és hasonlóknak nincs lehetőségük a forgalmat nem kívánt célhelyekre átirányítani. Emellett a kapcsolat sikeres létrejötte után Ön a szerver hálózatának részévé válik. Más szerverek, számítógépek vagy eszközök, például nyomtatók, amelyek általában csak a szerver helyi hálózatában lennének elérhetők, most a VPN-alagúton keresztül is elérhetők. Mivel azonban nem kell minden adatot titkosított alagúton keresztül küldeni, a VPN-kliens beállítható úgy is, hogy a kéréseknek csak egy meghatározott része menjen át a VPN-alagúton. A forgalom többi része normál módon, az interneten keresztül bonyolódik.
Ebben az útmutatóban végigvezetjük az OpenVPN szerver Ubuntu 18.04-en történő beállításának lépésein.
Követelmények
Szüksége van hozzáférésre egy Ubuntu 18.04 szerverhez, hogy hosztolja a(z) OpenVPN szolgáltatást az útmutató elvégzéséhez. A kézikönyv megkezdése előtt be kell állítania egy nem-root felhasználót is sudo jogosultságokkal. Könnyedén telepítheti szerverét, ha követi az Ubuntu szerver beállításáról szóló útmutatónkat.
Ezenkívül szüksége lesz egy külön számítógépre, amely tanúsítványkiosztóként (CA) működik. Technikailag használhatja a(z) OpenVPN szerverét vagy a helyi számítógépét tanúsítványkiosztóként. Ezt azonban nem javasoljuk, mivel ez biztonsági réseknek tenné ki a VPN-t. Az hivatalos OpenVPN dokumentáció szerint a tanúsítványkiosztót egy külön számítógépre kell helyezni, amely a tanúsítványkérelmek importálására és aláírására van kijelölve. Feltételezzük tehát, hogy a tanúsítványkiosztó egy különálló Ubuntu 18.04 szerveren található, amely szintén rendelkezik egy sudo jogosultságokkal rendelkező nem-root felhasználóval és egy alapvető tűzfallal. Ebben az útmutatóban minden telepítési és konfigurációs lépés a lehető legegyszerűbb lesz mindegyik telepítésnél. Megtekintheti a(z) Docker alatti Open VPN szerver beállításáról szóló útmutatónkat.
1. lépés – Az OpenVPN és az EasyRSA telepítése
Először frissítse a VPN-szerver csomagindexét, és telepítse az OpenVPN-t. Az OpenVPN-t az apt segítségével telepítheti, mivel az elérhető az alapértelmezett Ubuntu tárolókban:
|
1 2 |
sudo apt update sudo apt install openvpn |
2. lépés: Tanúsítványkiosztó létrehozása
Hozzon létre egy egyszerű tanúsítványkiosztót (CA) a megbízható tanúsítványok kibocsátásához az OpenVPN szerver számára. Ehhez töltse le az EasyRSA legújabb verzióját mind a CA gépre, mind az OpenVPN szerverre a wget segítségével. A legújabb verzió letöltéséhez lépjen a hivatalos EasyRSA GitHub projekt Releases (Kiadások) oldalára, másolja ki a .tgz végződésű fájl letöltési linkjét, és illessze be a következő parancsba:
|
1 |
wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz <span class="s1">--no-check-certificate</span> |
Ezután csomagolja ki a tarballt:
|
1 2 |
cd ~ tar xvf EasyRSA-3.0.4.tgz |

Ezen a ponton minden szükséges szoftver sikeresen telepítve lett a CA számítógépére és a szerverére.
3. lépés – Az EasyRSA változóinak konfigurálása és a CA felépítése
Az EasyRSA tartalmaz egy konfigurációs fájlt, amelyet szerkeszthet, hogy meghatározzon számos változót a CA számára a következő parancs használatával:
|
1 |
cd ~/EasyRSA-3.0.4/ |
A könyvtárban található egy vars.example nevű fájl. Készítsen egy másolatot erről a fájlról, és nevezze el a másolatot vars-nak, kiterjesztés nélkül:
|
1 |
cp vars.example vars |
Nyissa meg ezt az új fájlt a kedvenc szövegszerkesztőjével:
|
1 |
nano vars |
Ezután keresse meg azokat a beállításokat, amelyek az új tanúsítványok alapértelmezett mezőit határozzák meg. Ez a következőhöz fog hasonlítani:
|
1 2 3 4 5 6 |
#set_var EASYRSA_REQ_COUNTRY "US" #set_var EASYRSA_REQ_PROVINCE "California" #set_var EASYRSA_REQ_CITY "San Francisco" #set_var EASYRSA_REQ_ORG "Copyleft Certificate Co" #set_var EASYRSA_REQ_EMAIL "me@example.net" #set_var EASYRSA_REQ_OU "My Organizational Unit" |
Módosítsa ezeket a változókat tetszés szerint az alábbiak szerint:
|
1 2 3 4 5 6 |
set_var EASYRSA_REQ_COUNTRY "SL" set_var EASYRSA_REQ_PROVINCE "Zurich" set_var EASYRSA_REQ_CITY "Zurich City" set_var EASYRSA_REQ_ORG "CloudSigma" set_var EASYRSA_REQ_EMAIL "admin@example.com" set_var EASYRSA_REQ_OU "Community" |
Ha elkészült, mentse el és zárja be a fájlt. A következő lépés az easyrsa parancsfájl meghívása és futtatása az init-pki opcióval a nyilvános kulcsú infrastruktúra (PKI) inicializálásához a CA szerveren:
|
1 |
./easyrsa init-pki |

Ezután futtassa a build-ca parancsot a nopass opcióval, hogy ne kérjen jelszót minden alkalommal, amikor kapcsolatba lép a CA-val:
|
1 |
./easyrsa build-ca nopass |
A kimenetben meg kell erősítenie a CA általános nevét (common name):

Ezzel a CA a helyére került, és készen áll a tanúsítvány-aláírási kérelmek aláírására.
4. lépés – Szervertanúsítvány, kulcs és titkosítási fájlok generálása
Miután a CA elkészült, létrehozhatja a privát kulcsot és a tanúsítványkérelmet a szerverről, majd elküldheti azt a CA-nak aláírásra a szükséges tanúsítvány létrehozásával. Először navigáljon az EasyRSA könyvtárba az OpenVPN szerveren:
|
1 |
cd EasyRSA-3.0.4 |
Onnan futtassa az easyrsa parancsfájlt az init-pki opcióval. Bár ezt a parancsot már futtatta a CA számítógépen, ezt a parancsot itt is le kell futtatni. Ez azért van, mert a szerver és a CA PKI könyvtárai különböznek:
|
1 |
./easyrsa init-pki |
Ezután hívja meg újra az easyrsa parancsfájlt, ezúttal a gen-req opcióval, amelyet a számítógép általános neve követ:
|
1 |
./easyrsa gen-req server nopass |
Ez létrehoz egy privát kulcsot a szerver számára és egy server.req nevű tanúsítványkérelem-fájlt. Másolja a szerverkulcsot az /etc/openvpn/ könyvtárba:
|
1 |
sudo cp ~/EasyRSA-3.0.4/pki/private/server.key /etc/openvpn/ |
Továbbítsa a server.req fájlt a CA számítógépére egy biztonságos módszerrel (például SCP-vel az alábbi példában):
|
1 |
scp ~/EasyRSA-3.0.4/pki/reqs/server.req cloudsigma@your_CA_ip:/tmp |
Ezután navigáljon az EasyRSA könyvtárba a CA számítógépén:
|
1 |
cd EasyRSA-3.0.4/ |
Használja ismét az easyrsa parancsfájlt a server.req fájl importálásához, és adja hozzá annak általános nevét (common name) a fájl elérési útja után:
|
1 |
./easyrsa import-req /tmp/server.req server |
Ezután írja alá a kérelmet az easyrsa parancsfájl futtatásával a sign-req opcióval, amelyet a kérelem típusa és az általános név követ. Az OpenVPN szerver tanúsítványkérelméhez ügyeljen arra, hogy a server kérelemtípust használja:
|
1 |
./easyrsa sign-req server server |
A kimenet arra kéri, hogy ellenőrizze, a kérés megbízható forrásból származik-e. Írja be, hogy yes, majd nyomja meg az Entert a megerősítéshez. Kérjük, ellenőrizze az alább látható részleteket a pontosság érdekében. Kérjük, vegye figyelembe, hogy ez a kérés még nincs jelszóval ellenőrizve.
Kérje le a tárgyat, és írja alá szervertanúsítványként 3650 napra:

Ha titkosította a CA-kulcsot, ezen a ponton meg kell adnia a jelszót. Ezután egy biztonságos módszerrel másolja vissza az aláírt tanúsítványt a VPN-szerverére:
|
1 |
scp pki/issued/server.crt siigma@your_server_ip:/tmp |
Másolja át a ca.rt fájlt a szerverre, mielőtt kijelentkezne a CA számítógépről:
|
1 |
scp pki/ca.crt siigma@our_server_ip:/tmp |
Ezután jelentkezzen be újra az OpenVPN-szerverére, és másolja a server.crt és ca.crt fájlokat az /etc/openvpn/ könyvtárba:
|
1 |
sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/ |
Ezután navigáljon az EasyRSA könyvtárába:
|
1 |
cd ~/EasyRSA-3.0.4/ |
Írja be a következő kódot egy erős Diffie-Hellman kulcs létrehozásához, amelyet a kulcscsere során használhat:
|
1 |
./easyrsa gen-dh |
Ha kész, generáljon egy HMAC-aláírást a szerver TLS állapotellenőrzési funkciójának javítása érdekében:
|
1 |
openvpn --genkey --secret ta.key |
Amikor a parancs befejeződött, másolja a két új fájlt az / etc / openvpn / könyvtárba:
|
1 2 |
sudo cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/ sudo cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/ |
Így a szerver által igényelt összes tanúsítvány és kulcsfájl előállításra került. Most létrehozhatja a megfelelő tanúsítványt és kulcsot, amelyet a kliens számítógép fog használni az OpenVPN szerver eléréséhez.
4. lépés – Klienstanúsítvány és kulcspár generálása
Ezután létrehozunk egy klienskulcsot és több tanúsítványt. Ha több kliense van, ezt a folyamatot minden kliensnél megismételheti. Vegye figyelembe azonban, hogy minden kliens esetében egyedi név értéket kell átadnia a szkriptnek. Ebben az útmutatóban az első tanúsítvány/kulcspár neve client1 lesz. Először hozzon létre egy könyvtárszerkezetet a saját könyvtárában (home directory) a klienstanúsítványok és kulcsfájlok tárolására:
|
1 |
mkdir -p ~/client-configs/keys |
Mivel biztonsági okokból ebben a könyvtárban menti a tanúsítvány/kulcspárt és a kliens konfigurációs fájlját, most vissza kell vonnia a jogosultságokat:
|
1 |
chmod -R 700 ~/client-configs |
Ezután navigáljon vissza az EasyRSA könyvtárba, és futtassa az easyrsa szkriptet a gen-req és nopass opciókkal, valamint a kliens általános nevével:
|
1 2 |
cd ~/EasyRSA-3.0.4/ ./easyrsa gen-req client1 nopass |
Nyomja meg az Entert a közös név megerősítéséhez. Ezután másolja a client1.key fájlt a korábban létrehozott / client-configs / keys / könyvtárba:
|
1 |
cp pki/private/client1.key ~/client-configs/keys/ |
Ezután egy biztonságos módszerrel másolja át a client1.req fájlt a CA számítógépére:
|
1 |
scp pki/reqs/client1.req sigma@your_CA_ip:/tmp |
Jelentkezzen be a CA számítógépére, navigáljon az EasyRSA könyvtárba, és importálja a tanúsítványkérést:
|
1 2 3 |
ssh siigma@your_CA_ip cd EasyRSA-3.0.4/ ./easyrsa import-req /tmp/client1.req client1 |

Ezután, az előző lépéshez hasonlóan, írja alá a kérést a szerveren. Ezúttal azonban meg kell adnia a kliens kéréstípust:
|
1 |
./easyrsa sign-req client client1 |
A felszólításra írja be, hogy yes annak megerősítésére, hogy alá kívánja írni a tanúsítványkérést, és hogy a tanúsítványkérés megbízható forrásból származik. Kérjük, írja be a “yes” szót a folytatáshoz, vagy írjon be bármi mást az elvetéshez:
|
1 |
Megerősítés Kérés Részletek: Yes |

Ha titkosította a CA-kulcsot, itt is meg kell adnia a jelszót. Ez létrehoz egy client1.crt nevű klienstanúsítvány-fájlt. Másolja vissza ezt a fájlt a szerverre:
|
1 |
scp pki/issued/client1.crt siigma@your_server_ip:/tmp |
Lépjen vissza SSH-val az OpenVPN szerverére, és másolja a kliens tanúsítványt a / client-configs / keys / könyvtárba:
|
1 |
cp /tmp/client1.crt ~/client-configs/keys/ |
Ezután másolja a ca.crt és ta.key fájlokat a / client-configs / keys / könyvtárba:
|
1 2 |
cp ~/EasyRSA-3.0.4/ta.key ~/client-configs/keys/ sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/ |
Ezzel egyidejűleg a szerver és a kliens összes tanúsítványa és kulcsa elkészült, és elmentésre került a szerver megfelelő könyvtáraiba. Most már folytathatja az OpenVPN beállítását a szerveren.
5. lépés – Az OpenVPN szolgáltatás konfigurálása
A kliens és a szerver tanúsítványok generálása után konfigurálhatja az OpenVPN szolgáltatást ezen hitelesítő adatok használatára. Először másolja az OpenVPN minta konfigurációs fájlját a konfigurációs könyvtárába, majd csomagolja ki, hogy alapként használhassa a beállításhoz:
|
1 2 |
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ sudo gzip -d /etc/openvpn/server.conf.gz |
Nyissa meg a szerver konfigurációs fájlját a preferált szövegszerkesztőjével:
|
1 |
sudo nano /etc/openvpn/server.conf |
Ezután keresse meg a HMAC részt a tls-auth parancs keresésével:
|
1 |
tls-auth ta.key 0 # Ez a fájl titkos |
Keresse meg a jelszó részt a kikommentezett jelszó sor keresésével. Az AES-256-CBC titkosítás jó szintű titkosítást kínál, és jól támogatott. A sornak nem szabad kikommentezve lennie, de ha mégis, törölje a “;” jelet előle:
|
1 |
cipher AES-256-CBC |
Ez alá adjon hozzá egy Auth parancsot a HMAC üzenet-kivonatoló (message-digest) algoritmus kiválasztásához. A SHA256 jó választás erre:
|
1 |
auth SHA256 |
Ezután keresse meg a dh utasítást tartalmazó sort, amely a Diffie-Hellman paramétereket határozza meg. Az EasyRSA néhány közelmúltbeli változtatása miatt a Diffie-Hellman kulcs fájlneve eltérhet a minta szerver konfigurációs fájljában szereplő fájlnévtől. Ha szükséges, módosítsa az itt szereplő fájlnevet a 2048 törlésével, hogy igazodjon az előző lépés kulcsához:
|
1 |
dh dh.pem |
Végül keresse meg a user és group beállításokat, és törölje a “;” jelet minden sor elejéről:
|
1 2 |
user nobody group nogroup |
Az eddigiekben a minta server.conf fájlon végzett módosításoknak lehetővé kell tenniük az OpenVPN működését.
6. lépés – Szerver hálózati konfigurációja
Konfigurálja az IP-továbbítást (IP forwarding) a forgalom megfelelő irányításához a VPN-en keresztül. Ez elengedhetetlen a szervere által biztosított VPN-funkciókhoz:
|
1 |
sudo nano /etc/sysctl.conf |
Keresse meg a kikommentezett sort, amely a net.ipv4.ip_forward értéket állítja be. Távolítsa el a „#” karaktert a sor elejéről a beállítás engedélyezéséhez:
|
1 |
net.ipv4.ip_forward=1 |
Mentse el a fájlt, majd zárja be, ha végzett. A fájl beolvasásához és az értékek aktuális munkamenetre való alkalmazásához írja be a következőt:
|
1 |
sudo sysctl -p |

Ezután adja meg a gép nyilvános hálózati interfészét:
|
1 |
ip route | grep default |
A nyilvános interfész az a karakterlánc a parancs kimenetében, amely a „dev” szó után áll. Ez az eredmény például az ens3 nevű interfészt mutatja.

Nyissa meg a /etc/ufw/before.rules fájlt a megfelelő konfiguráció hozzáadásához:
|
1 |
$ sudo nano /etc/ufw/before.rules |
A fájl teteje felé adja hozzá az alábbi kiemelt sorokat a nat tábla POSTROUTING láncának alapértelmezett házirendjének beállításához, és a VPN-ről érkező forgalom maszkolásához (masquerade). Cserélje ki az ens3-at az alábbi -A POSTROUTING sorban a fenti parancsban talált interfészre:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# rules.before # Azok a szabályok, amelyeket az ufw parancssor által hozzáadott szabályok előtt kell futtatni. Az egyéni # szabályokat a következő láncok egyikéhez kell hozzáadni: # ufw-before-input # ufw-before-output # ufw-before-forward # START OPENVPN RULES # NAT tábla szabályok *nat :POSTROUTING ACCEPT [0:0] # Engedélyezze a forgalmat az OpenVPN klienstől a wlp11s0 felé (módosítsa a felfedezett interfészre!) -A POSTROUTING -s 10.8.0.0/8 -o ens3 -j MASQUERADE COMMIT # END OPENVPN RULES # Ne törölje ezeket a szükséges sorokat, különben hibák fognak fellépni . . . |
Mentse el a fájlt, majd zárja be, ha végzett. Ezután meg kell adnia az UFW-nek, hogy alapértelmezés szerint engedélyezze a továbbított csomagokat is. Ehhez nyissa meg az /etc/default/ufw fájlt:
|
1 |
sudo nano /etc/default/ufw |
Keresse meg benne a DEFAULT_FORWARD_POLICY direktívát, és módosítsa az értékét DROP-ról ACCEPT-re:
|
1 |
DEFAULT_FORWARD_POLICY="ACCEPT" |
Mentse el és zárja be a fájlt, ha végzett. Ezután állítsa be a tűzfalat az OpenVPN felé irányuló forgalom engedélyezéséhez. Ha nem változtatta meg a portot és a protokollt az /etc/openvpn/server.conf fájlban, meg kell nyitnia az UDP forgalmat az 1194-es porton. Ha módosította a portot és/vagy a protokollt, helyettesítse be az itt kiválasztott értékeket. Ha az előfeltételként szolgáló útmutató követése során elfelejtette hozzáadni az SSH portot, adja hozzá itt is:
|
1 2 |
sudo ufw allow 1194/udp sudo ufw allow OpenSSH |
Ezen szabályok hozzáadása után tiltsa le, majd engedélyezze újra az UFW-t az újraindításhoz és a módosított fájlok változtatásainak betöltéséhez:
|
1 2 |
sudo ufw disable sudo ufw enable |

Gratulálunk, a szervere most már megfelelően van konfigurálva az OpenVPN forgalom kezelésére!
Összegzés
Ha végig követte ezt az útmutatót, most már biztonságosan böngészhet az interneten. Képes lesz megvédeni személyazonosságát, tartózkodási helyét és forgalmát a kíváncsi szemektől.
Kellemes számítógéphasználatot!
Hozzászólások
Még nincsenek hozzászólások. Legyen Ön az első.