Az asztali grafikus felület tartja a felügyeleti kapcsolatot, így a megfigyelő szkript, amely sajátot próbál nyitni, nem olvas semmit, vagy ami rosszabb, a felület nem válaszol többé a kérdésekre. A szokásos következtetés, hogy a daemon megbízhatatlan. A közösségi daemonban a korlát szándékos: az irányítási felület egyszerre egy csatlakozott felügyeleti klienst szolgál ki, és ez a szám semmit sem mond arról, hány felhasználót tud a VPN elvinni.

Egy socket, egy birtokos

A felügyeleti csatorna egyetlen csatlakozott klienst fogad. Ha a második akkor érkezik, amikor az első aktív, várakozik vagy elutasítják, és nincs semmilyen párhuzamos előfizetői mód, amely egy kapcsoló mögé lenne rejtve. Az aktuális birtokos leválasztása engedi, hogy a daemon fogadja a következőt, ami átadás, nem második csatorna.

Ez minden további eszközt versenytárssá tesz. Ha a felület birtokolja a kapcsolatot, egy lekérdező szkript vagy nem tud csatlakozni, vagy csak azután sikerül neki, hogy a felület feladta, és a sorrend megismétlődik a következő újracsatlakozáskor. Ha a szkript csatlakozik előbb, a felület elveszíti irányítási útját, és a kérdései nem működnek tovább. Egyik eszköz sem jelenti a konfliktust, mert mindegyik csak a saját sikertelen parancsát látja.

What you needMechanism that fitsWhat it cannot do
Periodic list of connected clientsStatus file written on an intervalDeliver events as they happen
Interactive prompts and session controlThe single management connectionServe two controllers at once
Multiple consumers of eitherOne owner process that fans outExist without you writing it

Döntse el, melyik komponens birtokolja az irányítást

Válasszon egyetlen birtokost az interaktív csatornához, és hagyja, hogy csak az csatlakozzon. Egy felület, amely kezeli a kapcsolatot, egy szkript, amely a hitelesítési kérdésekre válaszol, és egy vezérlő, amely lezárja a munkameneteket, mind birtokosnak számít, és csak egy töltheti be a szerepet.

Amikor a felület birtokolja a kapcsolatot, használja az általa kínált integrációt ahelyett, hogy harcolna vele. A birtokossal való versenyfutás a socketért időszakos hibákat okoz, amelyek a felhasználóknak véletlenszerűnek tűnnek, és aki hibakeresést végez, általában csak a verseny második felét látja. Jegyezze fel, melyik folyamat csatlakozik elsőként egy újraindítás után, mert ez a sorrend minden alkalommal eldönti, ki nyer. A felület előtt induló monitor megtartja a csatornát, amíg a felület feladja.

Használjon állapot-pillanatképeket a gyűjtőknek

A legtöbb megfigyelési igény listát kér, nem beszélgetést. Egy rendszeres állapotfájl válaszol erre anélkül, hogy hozzányúlna az irányítási csatornához, és tovább működik, amíg a felület csatlakozva marad.

status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix

Az intervallum a frissesség költségkerete, ezért arra állítsa, amire az irányítópultnak valóban szüksége van, és ne a legkisebb biztonságosnak tűnő értékre. Egy néhány másodpercenként írt pillanatkép olcsó; egy szkript, amely néhány másodpercenként újracsatlakozik az irányítási sockethez, nem az, mert minden újracsatlakozás verseng a birtokossal.

A pillanatkép nem történet és nem eseményfolyam. Az egy intervallumon belül érkező és távozó kapcsolatok soha nem jelennek meg, így egy auditkövetelmény nem teljesíthető egy olyan fájl lekérdezésével, amely felülírja önmagát. Ha tudnia kell, hogy egy felhasználó egyáltalán csatlakozott-e, a pillanatkép rossz eszköz.

A szétosztás tervezés, nem mód

Ha több fogyasztó valóban élő felügyeleti adatot igényel, tegyen egyetlen megbízható komponenst a socket elé, és hagyja, hogy szűken kiválasztott megfigyeléseket tegyen közzé a többieknek. Ez a komponens birtokolja az újracsatlakozást, a hitelesítési kérdéseket és a döntést arról, mi biztonságos felfedni.

Építse meg szándékosan: határozza meg, mely lekérdezések engedélyezettek, naplózza, ki kérdezett, és kerülje el, hogy a szétosztó réteg véletlenül távvezérlő pulttá váljon. A daemonnak nincs többklienses módja, amit be lehetne kapcsolni, és egyetlen konfigurációs sor sem hoz létre ilyet. Kezelje a birtokost a biztonsági határ részeként, mert olyan felületet tart, amely képes embereket leválasztani. Az újraindításának rutinműveletnek kell lennie dokumentált helyreállítási úttal.

Kezelje a socketet kiváltságként, nem mérőszámként

A felügyeleti felület le tud választani felhasználókat, állapotot változtat és olyan eseményeket olvas, amelyek embereket neveznek meg. A jelszava hitelesíti a klienst, és nem titkosítja az átvitelt, így egy hálózati figyelő mindenkinek feltárja a beszélgetést, aki meg tudja figyelni.

Részesítse előnyben a helyi socketet vagy egy szigorúan korlátozott figyelőt, és ellenőrizze, melyik folyamatot célozza valójában a gyűjtője, mert a szervertermékek saját felügyeleti API-kat szállítanak, amelyek másképp viselkednek. A rossz daemonra irányított gyűjtő magabiztos, hibás következtetéseket ad. Erősítse meg az útvonalat és a tulajdonos folyamatot, mielőtt olyan lekérdezést hibakeresne, amely semmit nem ad vissza.

Kapcsolódó cikkek