OpenConnect vpnc-script: který soubor se spouští?
Pomocný skript, který instaluje trasy a DNS, je oddělený od klienta tunelu. Najděte cestu, kterou spuštěný klient používá, než ji nahradíte kopií z fóra.
OpenConnect může dokončit handshake tunelu a přesto vás nechat bez trasy do privátní podsítě, protože klient a pomocný skript, který mění stav místní sítě, jsou dva různé programy. Ověření dokazuje, že brána relaci přijala; nedokazuje nic o tom, které rozhraní, trasy nebo nastavení překladače byly poté nainstalovány. Většina matoucích hlášení vzniká nahrazením pomocného skriptu kopií ze staré odpovědi, což mění chování každého připojení na stroji. Než v něm cokoli upravíte, najděte skript, který spuštěný klient skutečně volá.
Dva programy, dvě odpovědnosti
Klient vlastní přenos, ověřování a zařízení tunelu. Samostatný pomocný skript vlastní to, co se v místním systému děje, jakmile tunel existuje: adresování na rozhraní, trasy do podsítí ohlášených branou a konfiguraci překladače. dokumentace pomocného skriptu OpenConnect popisuje toto rozdělení a prostředí, které skript dostává. Rozdíl je důležitý při selhání, protože odmítnuté heslo a chybějící trasa nejsou stejná událost, i když plocha zobrazuje jeden dialog pro obojí.
Držet toto rozdělení na paměti také vysvětluje, proč připojení může hlásit úspěch, zatímco privátní jména se stále nepřekládají. Tunel je v obou případech nahoře a liší se jen fáze místní integrace.
Najděte skript, který spuštěný klient používá
Cesta se nastavuje při sestavení balíčku a lze ji při každém volání přepsat, takže soubor, který si pamatujete z jiné distribuce, s tímto připojením nemusí mít nic společného. Ptejte se spuštěného procesu, ne dokumentace, kterou máte zrovna otevřenou.
openconnect --version
ps -o args= -C openconnect
dpkg -L openconnect | grep -i script
ls -l /etc/vpnc/ 2>/dev/null
Pokud řádek procesu nese argument --script , vyhrává tento soubor nad zkompilovanou výchozí hodnotou. Starší cesty jako /etc/vpnc/vpnc-script mohou existovat a zůstat nevyužité, a proto jejich smazání nebo úprava v novějším sestavení nic nezmění. Zkontrolujte i datum změny, protože skript, kterého se roky nikdo nedotkl, je silným znamením, že práci dělá výchozí hodnota z balíčku.
Integrace s NetworkManagerem je třetí vlastník, s vlastním skriptem a vlastním nastavením profilu. Vrstvení druhého skriptu pro trasy nebo překladač na tuto integraci zdvojuje trasy a nechává překladač, o kterém dva programy tvrdí, že ho spravují. Zvolte jednoho vlastníka na připojení a druhého před testováním vypněte.
Čtěte první neúspěšnou operaci, ne poslední varování
Konfigurace rozhraní, instalace tras, volba překladače a úklid zastaralého stavu jsou samostatné kroky a varování vytištěné nakonec je často stížnost na úklid, ne porucha, která přerušila připojení. Čtěte nahoru k první konkrétní operaci, která selhala. Chyba skriptu, která pojmenuje soubor nebo adresu, má větší cenu než deset řádků hluku z rozebírání.
Porovnejte zamýšlený místní výsledek se zjištěným: zařízení tunelu existuje, trasa k známé privátní adrese vede skrz ně a překladač odpovídá pro privátní jméno. Skript, který uspěje v prvních dvou a selže ve třetím, ukazuje na politiku překladače, ne na směrování. Skript, který zařízení vůbec nenakonfiguruje, pravděpodobně nikdy neběžel, a to je otázka oprávnění, ne sítě. Před přepsáním jakékoli logiky potvrďte spustitelný bit a servisní účet.
Ověřte připojení, opětovné připojení a odpojení
Nastavení je jen polovina smlouvy, protože stejný skript musí po zavření tunelu obnovit nebo odstranit stav, který vlastní. Skript, který trasy přidává a nikdy je neodstraňuje, nechává stroj se zastaralou cestou, která přežije relaci.
ip -brief address show tun0
ip route get 10.24.8.15
resolvectl status tun0
journalctl -u NetworkManager -b --no-pager | grep -i -E 'vpnc|script'
Spusťte první tři, dokud jste připojeni, odpojte se a pak je spusťte znovu a potvrďte, že trasa i záznam překladače zmizely. Čtvrtý řádek ukazuje, zda byl skript vůbec vyvolán a kterou spustitelnou cestu služba použila. Uložte tuto dvojici výstupů do tiketu, protože právě srovnání před a po dělá chybu úklidu zřejmou.
Udržujte skript zabalený a spustitelný pro servisní účet, protože skript, který běží ve vašem shellu, může být přesto pod omezenou servisní politikou odmítnut. Když je přizpůsobení skutečně nutné, zdokumentujte jeho účel a vlastníka a při každém upgradu je porovnejte se zabalenou verzí. Nevysvětlený fork skriptu je jednou z mála věcí, které mohou funkční připojení o rok později pokazit.