OpenVPN-i haldussokkel: juhtkanal, mitte mõõdikud
Vastuvõetud haldusklient hoiab juhtkäske, mitte ainult lugemiseks mõeldud vaadet. Oma Unix-sokkel, jäta hetktõmmiste jaoks sessioon vahele ja hoia TCP eemal.
Küsi haldusliideselt üks kord olekut ja see hakkab välja nägema nagu olekuport. See ei ole. Kui klient on vastu võetud, saab ta väljastada protokolli juhtkäske, ja kontol, mis seda klienti käitab, on pärandatud kõik, mida need käsud deemonile teha saavad. Selle kohtlemine ainult lugemiseks mõeldud voona on viga, mis muudab monitooringu integratsiooni autentimata konsooliks.
Usk ja selle hind
Usk on, et halduskuulaja võrdub mõõdiku lõpp-punktiga: kinnita koguja, loe loendureid, liigu edasi. Tegelikult avab koguja sessiooni juhtimisvõimalustega ja iga teine eeldus, mille sa juurutuse kohta tegid, sõltub nüüd sellest, et see koguja käitub hästi.
Miski liideses ei reklaami ainult lugemise režiimi. Valida pole ühtegi vaatleja rolli ja konfiguratsioonis olev kasutajanimi ei loo seda.
Mida vastuvõetud klient tegelikult hoiab
Kogukonna deemon võtab vastu korraga ainult ühe aktiivse halduskliendi. See üks koht tähendab, et GUI, skript ja monitooringuagent ei saa kõik korraga liituda; teine ootab või ebaõnnestub, kuni esimene sessiooni hoiab. Kui sinu disain eeldab samaaegseid lugejaid, on see juba vale.
Kui perioodiline hetktõmmis on piisav, annab olekufaili väljund samad numbrid ilma reaalajas sessioonita. Selle faili kirjutamine intervallidega ja lugemine tavaliste failiõigustega hoiab koguja täielikult juhtimistasandilt väljas, ja see on korraldus, mida enamik monitooringut tegelikult vajab.
Oma sokkel, mitte avatud
Unix-domeeni sokkel hoiab juhttee võrgust väljas, mis eemaldab probleemist muutuva tunneliaadressi. See ei eemalda õiguste küsimust. Ülemkataloog peab olema teenusekonto jaoks kirjutatav ja kontrolleri konto jaoks kättesaadav, ning need on kaks eraldi õigust:
management /run/openvpn/office-management.sock unix /etc/openvpn/management.password
management-client-user vpn-observer
management-client-group vpn-observerParoolifail kannab haldussaladust oma esimesel real. Kaitse seda faili nagu iga teist mandaati ja hoia selle sisu logidest ja tugipiletitest eemal. Kasutaja- ja grupipiirangud on Unix-sokli vastaspoole kontrollid, mitte failisüsteemi õigused, seega vajab kavandatud protsess nii failile ligipääsu kui ka sobivat identiteeti.
Sokli maailmale ligipääsetavaks tegemine õigusevea kõrvaldamiseks on ainus parandus, mida tuleks vältida. See muudab kohaliku juhtkanali millekski, mida iga hosti protsess saab juhtida.
TCP kaudu avaldamine ei ole sama disain
Kuulaja TCP-pordile viimine ei tee seda turvalisemaks ega mugavamaks. Haldusparool saadetakse krüpteerimata kujul, seega TCP-kuulaja paljastab nii mandaadi kui ka sessiooni kõigile, kes teed jälgida saavad. Teisest hostist sellele ligipääs nõuab volitatud halduskanalit või väikest kohalikku agenti, mis paljastab ainult vajalikud vaatlused.
Parool krüpteerimata transpordil on autentimine ilma konfidentsiaalsuseta ja see kombinatsioon on hullem, kui paistab, sest see tundub kaitstuna.
Käivitussõltuvused, mida sa ei palunud
Mitmed haldusvalikud muudavad deemoni elutsüklit. Käivituse hoidmine, kuni kontroller ühendub, või lõpetamine, kui kontroller kaob, muudab valikulise vaatleja kõvaks sõltuvuseks. Krahhiv monitooringuagent viiks siis tunneligi alla.
Vaata need valikud üle enne, kui lubad midagi peale sokli enda. Valikuline vaatlus peaks jääma valikuliseks ja taaskäivituspoliitikat ei tohiks siduda kogujaga, mis lisati graafikute jaoks.
Ebaõnnestunud protsessi järel maha jäänud soklifail ei ole tõestus, et kuulaja on olemas. Enne selle eemaldamist tee kindlaks, milline eksemplar teed omab, ja kasuta teenuse enda taastamisvoogu, mitte ära kustuta faile töötava deemoni all.
Kuidas vastuvõtt välja näeb
Disaini katab neli kontrolli: kavandatud kontrolleri identiteet ühendub, ilma selle identiteedita protsess lükatakse tagasi, deemon elab üle kontrolleri, mis katkestab ilma hoiatuseta, ja tunnel kannab liiklust edasi ka kontrollitud taaskäivituse järel. Edukas haldusühendus tõestab ainult juhtimistasandit. See ei ütle midagi selle kohta, kas privaatrakenduste liiklus töötab, seega testi seda eraldi. Kirjuta neli tulemust sinna, kust järgmine operaator need leiab.
Haldusliidese dokumentatsioon kirjeldab ühe kliendi mudelit ja protokolli privilegeeritud olemust, ja see on osa, mida tasub lugeda enne, kui suunad sinna armatuurlauda.