Vissza a bloghoz

OpenVPN beállítása Ubuntu 18.04-en

OpenVPN beállítása Ubuntu 18.04-en

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:

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:

Ezután csomagolja ki a tarballt:

 OpenVPN EasyRSA software

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:

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:

Nyissa meg ezt az új fájlt a kedvenc szövegszerkesztőjével:

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:

Módosítsa ezeket a változókat tetszés szerint az alábbiak szerint:

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:

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:

A kimenetben meg kell erősítenie a CA általános nevét (common name):

 OpenVPN build-ca

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:

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:

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:

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:

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):

Ezután navigáljon az EasyRSA könyvtárba a CA számítógépén:

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:

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:

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:

 OpenVPN sign certificate for server

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:

Másolja át a ca.rt fájlt a szerverre, mielőtt kijelentkezne a CA számítógépről:

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:

Ezután navigáljon az EasyRSA könyvtárába:

Írja be a következő kódot egy erős Diffie-Hellman kulcs létrehozásához, amelyet a kulcscsere során használhat:

Ha kész, generáljon egy HMAC-aláírást a szerver TLS állapotellenőrzési funkciójának javítása érdekében:

Amikor a parancs befejeződött, másolja a két új fájlt az / etc / openvpn / könyvtárba:

Í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:

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:

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:

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:

Ezután egy biztonságos módszerrel másolja át a client1.req fájlt a CA számítógépére:

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:

import client.req

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:

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:

sign certificate

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:

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:

Ezután másolja a ca.crt és ta.key fájlokat a / client-configs / keys / könyvtárba:

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:

Nyissa meg a szerver konfigurációs fájlját a preferált szövegszerkesztőjével:

Ezután keresse meg a HMAC részt a tls-auth parancs keresésével:

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:

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:

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:

Végül keresse meg a user és group beállításokat, és törölje a “;” jelet minden sor elejéről:

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:

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:

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:

sysctl -p

Ezután adja meg a gép nyilvános hálózati interfészét:

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.

default ip route

Nyissa meg a /etc/ufw/before.rules fájlt a megfelelő konfiguráció hozzáadásához:

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:

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:

Keresse meg benne a DEFAULT_FORWARD_POLICY direktívát, és módosítsa az értékét DROP-ról ACCEPT-re:

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:

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:

ufw commands

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!

 

 

author

Akshay Nagpal

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.