Pridanie --csd-wrapper do profilu odovzdá lokálny skript démonovi, ktorý ho spúšťa pri prihlásení, takže rozhodnutie pred vami je revízia kódu, nie prepínač preferencie. Voľba existuje preto, aby sa dala nahradiť komponent kontroly hostiteľa na bráne, a prijíma cestu k skriptu, ktorý dodáte. Všetko nižšie predpokladá, že vlastník nasadenia už povedal, ktorá kontrola stavu zariadenia je potrebná; ak je táto časť stále otvorená, vyriešte ju najskôr. Postup má štyri kroky: nájdite neúspešnú fázu, prečítajte skript, zvoľte identitu, pod ktorou beží, a dokážte výsledok.

Krok 1: Nájdite neúspešnú fázu

Posledná správa klienta sa zvyčajne týka súboru cookie, čo je koniec reťaze, nie jej začiatok. Prihlásenie HTTPS, kontrola certifikátu servera, výmena autentifikácie a komponent stavu stoja všetky pred touto správou.

Zaznamenajte verziu a používanú prihlasovaciu adresu, potom pokus zopakujte s podrobným výstupom ponechaným na vašom termináli. Čítajte prvú chybu, ktorá nie je opakovaným pokusom, nie posledný riadok prepisu. Ak sa záznam zastaví predtým, než je pomenovaný akýkoľvek komponent hodnotenia, obal zatiaľ nie je váš problém. Pridať ho v tom bode len rozširuje plochu, ktorú budete musieť neskôr brániť.

openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/null

Prepís uchovávajte lokálne, pretože súbory cookie a odpovede autentifikácie sú prístupový materiál. Stopa vložená do chatového vlákna je únik prihlasovacích údajov, aj keď krok hodnotenia vyzerá neškodne. Zdieľajte text chyby a miesto v toku, kde sa objavila, nikdy obsah.

Krok 2: Prečítajte skript predtým, než vstúpi do profilu

Obal je len tak dôveryhodný ako revízia, ktorú ste prešli, preto tú revíziu pripnite a uložte jej hash vedľa poznámky o schválení. Dva príkazy nižšie vám dajú odtlačok a lacnú kontrolu syntaxe skôr, než prečítate čo i len jeden riadok. Dajú aj ďalšiemu človeku pevný odkaz, čo je dôležité, keď súbor žije mimo správy balíkov. Ani jeden príkaz nehovorí, čo skript robí, preto ich spustite a čítajte ďalej.

sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.sh

Prečítajte celý súbor so štyrmi otázkami v hlave: robí odchádzajúce HTTP volania, číta súbory prihlasovacích údajov alebo premenné prostredia, zapisuje mimo dočasného adresára a hlási niektorá vetva úspešný stav bez toho, aby čokoľvek merala. Posledný vzor je obchádzanie politiky s pripojeným riadkom záznamu. Skopírované obaly ho radi prepašujú za vierohodne vyzerajúcu kontrolu. Ak skript rozhodne, že zariadenie je v poriadku, skôr než sa na zariadenie pozrie, zastavte sa tam.

Skontrolujte aj zabalené obsahy, pretože čitateľná hlavička nič nedokazuje o zvyšku súboru. Stiahnutie skriptu z vlákna fóra z neho nerobí dôveryhodnú vec len preto, že jeho názov pripomína skutočný komponent kontroly hostiteľa. Zaznamenajte, kto ho nainštaloval, odkiaľ prišiel a ako sa bude aktualizovať.

grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.sh

Krok 3: Zvoľte identitu, pod ktorou obal beží

--csd-user znižuje oprávnenia počas spúšťania programu CSD, TNCC alebo HIP. Tento účet je súčasťou lokálneho usporiadania spúšťania, nie používateľské meno odosielané bráne.

Dajte obalu vyhradený účet bez interaktívneho shellu, bez práv sudo a bez členstva v skupinách, ktoré nepotrebuje. Poskytnite prístup na čítanie k skriptu a ku konkrétnym súborom, ktoré kontroluje, a potom otestujte zníženie oprávnení, než sa dotknete profilu VPN. Nájsť problém tu je lacnejšie než nájsť ho vnútri klienta.

sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.sh

Zníženie oprávnení obmedzuje škodu, ktorú môže zlý skript napáchať. Neprechádza však kód, nerobí správu pravdivou ani nepreukazuje, že správca brány prijíma túto implementáciu ako splnenie politiky zariadení.

Krok 4: Udržte zmenu vratnou

Pred úpravou profilu si urobte zálohu a držte obal pod kontrolou verzií, aby vrátenie obnovilo známy hash namiesto hľadania kópie. Zapíšte cestu k skriptu, hash, používateľa spúšťania a schvaľovateľa na jedno miesto.

Pre vrátenie odstráňte voľbu, reštartujte klienta a potvrďte, že pôvodná chyba sa vracia. Ak brána po vrátení stále odmieta prihlásenie, zmenilo sa aj niečo iné, a nájdenie toho rozdielu predchádza ďalšiemu pokusu s obalom. Ponechajte predchádzajúcu kópiu po celé okno zmien, čo pre väčšinu tímov znamená do skončenia najbližšieho servisného okna.

Po úspešnom nasadení skontrolujte dve veci, nie jednu: tunel nabehne a zariadenie, ktoré by malo kontrolu stavu neprejsť, je stále odmietnuté. Spojenie, ktoré funguje pre všetkých, nie je dôkazom, že hodnotenie prežilo vašu zmenu.

Skratky, ktoré vytvárajú druhý problém

Nedovoľte pomocníkovi hlásiť vyhovujúci stav bez spustenia požadovaných kontrol a neprepisujte identitu platformy, aby zodpovedala inému operačnému systému. Tvrdenie o inej platforme nie je dôkazom, že skutočné zariadenie spĺňa politiku. Nechá vám klienta, ktorý klame pri každom budúcom prihlásení.

Vypnutie overovania servera, prehratie zastaraného cookie a vrstvenie neskontrolovaných skriptov všetky menia viditeľné zlyhanie za neviditeľné. Ak nainštalovaný klient nemôže dokončiť podporovaný tok, požiadajte o schválenú alternatívu namiesto ohýbania tej, ktorú máte.

V príručke OpenConnect sú --csd-wrapper a --csd-user dokumentované oddelene, a to je ten dôležitý tip: skript a identita sú dve rozhodnutia. Prejdite ich oddelene a zapíšte obe. Potom prihlasovacia výzva prestane byť záhadou, ktorú riešite vložením kódu.

Súvisiace články