Importáljon egy profilt egy asztali kliensbe, és az első hiba gyakran egy sor, amelyet a kliens nem hajlandó teljesíteni: egy szkript-hook, amelyet nem futtat, vagy egy script-security-érték, amelyet túl megengedőnek tart. A szám növelése eltünteti a párbeszédablakot. Ugyanakkor kiszélesíti, mit futtathat az a profil a gépén, ami furcsa dolog egy figyelmeztetés eltüntetéséért adni. Kövesse az importot az utasításig, és a döntés kézzelfoghatóvá válik.

Az importálási párbeszédtől az utasításig

A profil egy szöveges fájl utasításokkal, és a kliens még azelőtt beolvassa őket, hogy bármilyen alagút létezne. Egy utasítás, például up, down vagy tls-verify, egy külső programot nevez meg, amelyet OpenVPN egy meghatározott pillanatban futtatni hivatott. Hogy az OpenVPN hajlandó-e futtatni, az egy külön beállítás, amelynek neve script-security, és a profil általában ezt is megadja.

A figyelmeztetés tehát nem a kriptográfiáról vagy a tanúsítványokról szól. Arról szól, hogy egy konfigurációs fájl arra kéri a klienst, hogy futtasson valamit a gazdagépen, és a kliens ellenőrzi, hogy jelenlegi engedélyszintje engedi-e ezt a kérést.

Ebben a szakaszban két különböző hiba hasonlónak tűnik. Egy profil, amely olyan szintet kér, amelyet a kliens nem ad meg, elutasítást eredményez. Egy profil, amely olyan szintet kér, amelyet a kliens megad, de a szkript hiányzik, futásidejű hibát eredményez helyette, és a kettőt a támogatási szálakban összekeverik. Az egyik engedélykérdés, a másik csomagoláskérdés.

Mit nyit meg valójában az egyes szintek

A 0. szint teljesen tiltja a külső programhívásokat, ami következetes egy olyan kliensnél, amely segítség nélkül konfigurálja a saját interfészét, és következetlen annál, amely az operációs rendszert hívja. Az 1. szint, az alapértelmezett, engedélyezi azokat a beépített futtatható fájlokat, amelyekre az interfész- és útvonalkonfigurációnak szüksége van. Egyik szint sem futtat semmit, amit a felhasználó adott.

LevelWhat OpenVPN may executeWhat it exposes
0No external programs at allInterface and route setup must not depend on helpers
1 (default)Built-in helpers such as ip, ifconfig, route or netshPrivileged commands the platform already ships
2Built-in helpers plus user-defined scriptsWhatever the named script does with the client's privileges
3Everything above, plus passwords in environment variablesCredentials visible to child processes and their logs

A 2. szint az érdekes határ, mert beengedi a felhasználó által definiált szkripteket. Attól a ponttól a kliens jogosultságai olyan kódra vonatkoznak, amelyet talán soha nem olvasott el, olyan pillanatokban hívva meg, amelyeket nem Ön választott, olyan környezetben, amely tartalmazza a kapcsolat részleteit. A 3. szint tovább megy, és lehetővé teszi a jelszavak környezeti változókon keresztüli átadását, ezért írja le a kézikönyv potenciálisan nem biztonságosnak.

Ezek közül egyik szám sem erősségi beállítás. A 3. szinten lévő profil titkosítása nem jobb az 1. szinten lévőénél; egyszerűen nagyobb a végrehajtási felülete, és az alagút azonos.

Döntse el, mit érdemel a profil

Kérdezze meg, mire való a szkript, mielőtt azt kérdezné, milyen szintre van szüksége. Egy hook, amely DNS-beállításokat tol ki vagy kapcsolódás után kijavít egy útvonalat, jogos ok valami futtatására. Egy hook, amely egy ismeretlen binárist hív meg egy ideiglenes könyvtárban, ok a megállásra.

A szkript útvonala ugyanolyan fontos, mint a szkript. A relatív útvonal ahhoz a könyvtárhoz képest oldódik fel, amelyet a kliens használ, és egy írható könyvtár az egyszeri importot állandó végrehajtási hellyé teszi. Az abszolút útvonalak egy olyan könyvtárban, amelyet a felhasználó nem módosíthat, az előnyben részesítendő forma.

A szkriptek öröklik a kliens környezetét is, ahol a hitelesítő adatok és a kapcsolati metaadatok élnek. Ez az öröklés az, ami a 3. szintet veszélyessé teszi egy olyan szkripttel kombinálva, amely naplózza a környezetét, és ezért érdemel egy második pillantást egy szkriptekkel működő kliens diagnosztikai kimenete, mielőtt egy jegybe illesztenék. Távolítsa el a környezetet, mielőtt megosztja.

grep -nE 'script-security|^up |^down |tls-verify' client.ovpn

Változtasson meg egy dolgot, aztán figyelje a lebontást is

Ha a profilnak valóban szüksége van szkriptre, csak a szintet változtassa meg, és csak annál a profilnál. Futtassa a klienst előtérben részletes kimenettel, hogy a szkript saját hibái láthatók legyenek, ne nyelje le őket a szolgáltatáskezelő.

openvpn --config client.ovpn --script-security 2 --verb 3
ip route show default

Tesztelje a teljes életciklust, ne csak a kapcsolódást. Egy meghiúsuló leállítási hook olyan útvonalakat hagy, amelyek egy halott alagútra mutatnak, ami olyan gépet eredményez, amely kapcsolódottnak látszik, és semmit nem ér el. Kapcsolódjon újra egyszer, és szakítsa meg egyszer, mielőtt késznek nyilvánítja a változtatást, és mindkettő után ellenőrizze az útválasztási táblát.

Őrizzen meg egy másolatot az eredeti profilról. Ha egy platformkliens nem ugyanazt a szkriptmodellt valósítja meg, az utasítások törlése az import sikeréig eltávolíthatja azt a DNS- vagy útvonal-integrációt, amelyre az alagútnak szüksége volt, és az így létrejövő kapcsolat tökéletesen hitelesít, miközben semmit nem old fel.

A rögzítendő döntés szűk: melyik szkript, melyik útvonalon, melyik szinten engedélyezve, melyik profilhoz. A profilban minden más változatlan marad, és ez egy olyan mondat, amelyet egy bíráló ellenőrizhet.

Kapcsolódó cikkek