Přidání --csd-wrapper do profilu předává místní skript démonu, který jej spouští při přihlášení, takže rozhodnutí před vámi je revize kódu, ne přepínač předvolby. Volba existuje proto, aby šlo nahradit komponentu kontroly hostitele na bráně, a přijímá cestu ke skriptu, který dodáte. Vše níže předpokládá, že vlastník nasazení už řekl, která kontrola stavu zařízení je vyžadována; pokud je tato část stále otevřená, vyřešte ji nejdřív. Postup má čtyři kroky: najděte neúspěšnou fázi, přečtěte skript, zvolte identitu, pod kterou běží, a dokažte výsledek.

Krok 1: Najděte fázi, která selhala

Poslední zpráva klienta se obvykle týká cookies, což je konec řetězu, nikoli jeho začátek. HTTPS přihlášení, kontrola certifikátu serveru, výměna autentizace a komponenta stavu zařízení stojí všechny před touto zprávou.

Zaznamenejte verzi a používanou přihlašovací adresu, pak pokus zopakujte s podrobným výstupem ponechaným na vašem terminálu. Čtěte první chybu, která není opakovaným pokusem, ne poslední řádek přepisu. Pokud se protokol zastaví dřív, než je pojmenována jakákoli komponenta hodnocení, obal zatím není váš problém. Přidání v tom okamžiku jen rozšiřuje plochu, kterou budete muset později bránit.

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

Přepis uchovávejte lokálně, protože cookies a odpovědi autentizace jsou přístupový materiál. Stopa vložená do chatovacího vlákna je únik přihlašovacích údajů, i když krok hodnocení vypadá neškodně. Sdílejte text chyby a místo v toku, kde se objevila, nikdy obsah.

Krok 2: Přečtěte skript dřív, než vstoupí do profilu

Obal je jen tak důvěryhodný jako revize, kterou jste prohlédli, proto tu revizi připněte a uložte její hash vedle poznámky o schválení. Další dva příkazy vám dají otisk a levnou kontrolu syntaxe dřív, než přečtete jediný řádek. Dají také dalšímu člověku pevný odkaz, což je důležité, když soubor žije mimo správu balíčků. Ani jeden příkaz neříká, co skript dělá, takže je spusťte a čtěte dál.

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

Přečtěte celý soubor se čtyřmi otázkami v hlavě: dělá odchozí HTTP volání, čte soubory přihlašovacích údajů nebo proměnné prostředí, zapisuje mimo dočasný adresář a hlásí některá větev úspěšný stav, aniž by cokoli měřila. Poslední vzorec je obcházení politiky s přiloženým řádkem protokolu. Zkopírované obaly ho obvykle propašují za věrohodně vypadající kontrolu. Pokud skript rozhodne, že zařízení je v pořádku, dřív než se na zařízení podívá, zastavte se tam.

Zkontrolujte i zabalené obsahy, protože čitelná hlavička nic nedokazuje o zbytku souboru. Stažení skriptu z vlákna fóra z něj nedělá důvěryhodnou věc jen proto, že jeho název připomíná skutečnou komponentu kontroly hostitele. Zaznamenejte, kdo jej nainstaloval, odkud pochází a jak se bude aktualizovat.

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

Krok 3: Zvolte identitu, pod kterou obal běží

--csd-user snižuje oprávnění během spouštění programu CSD, TNCC nebo HIP. Tento účet je součástí místního uspořádání spouštění, ne uživatelské jméno odesílané bráně.

Dejte obalu vyhrazený účet bez interaktivní shellu, bez práv sudo a bez členství ve skupinách, které nepotřebuje. Udělte přístup pro čtení ke skriptu a ke konkrétním souborům, které kontroluje, a pak otestujte snížení oprávnění, než sáhnete na profil VPN. Najít problém tady je levnější než najít ho uvnitř klienta.

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

Snížení oprávnění omezuje škodu, kterou může špatný skript napáchat. Neprohlíží však kód, nečiní zprávu pravdivou ani neprokazuje, že správce brány přijímá tuto implementaci jako splnění politiky zařízení.

Krok 4: Udržte změnu vratnou

Před úpravou profilu si udělejte zálohu a držte obal pod správou verzí, aby vrácení obnovilo známý hash, místo hledání kopie. Zapište cestu ke skriptu, hash, uživatele spuštění a schvalovatele na jedno místo.

Pro vrácení odeberte volbu, restartujte klienta a potvrďte, že se původní chyba vrací. Pokud brána po vrácení stále odmítá přihlášení, změnilo se i něco jiného, a nalezení toho rozdílu předchází dalšímu pokusu s obalem. Ponechte předchozí kopii po celou dobu změnového okna, což pro většinu týmů znamená do skončení dalšího servisního okna.

Po úspěšném nasazení zkontrolujte dvě věci, ne jednu: tunel naskočí a zařízení, které by mělo kontrolu stavu neprojít, je stále odmítnuto. Spojení, které funguje pro všechny, není důkazem, že hodnocení přežilo vaši změnu.

Zkratky, které vytvářejí druhý problém

Nenuťte pomocníka hlásit vyhovující stav bez spuštění požadovaných kontrol a nepřepisujte identitu platformy, aby odpovídala jinému operačnímu systému. Tvrzení o jiné platformě není důkazem, že skutečné zařízení splňuje politiku. Nechá vám to klienta, který lže při každém budoucím přihlášení.

Vypnutí ověřování serveru, přehrání zastaralé cookies a vrstvení nezkontrolovaných skriptů všechny mění viditelné selhání za neviditelné. Pokud nainstalovaný klient nemůže dokončit podporovaný tok, požádejte o schválenou alternativu, místo abyste ohýbali ten, který máte.

V příručce OpenConnect jsou --csd-wrapper a --csd-user dokumentovány odděleně, a to je ta důležitá nápověda: skript a identita jsou dvě rozhodnutí. Projděte je odděleně a obojí zapište. Pak přestane být přihlašovací výzva záhadou, kterou řešíte vložením kódu.

Související články