Windows OpenVPN profil na Ubuntu selhává: tři vrstvy
Vložený řádek určený jen pro Windows je pouhé varování. Stejný profil selhává z terminálu nejprve kvůli oprávněním a potom kvůli chybějícímu pomocníkovi překladače.
Spusťte stejný profil z terminálu a zpráva, kterou většina lidí kopíruje, je varování, ne důvod, proč se klient zastavil. Selhávají zde tři nezávislé vrstvy: vložená direktiva, kterou sestavení pro Linux neimplementuje, práva potřebná k vytvoření zařízení tun a pomocník překladače, který ze spojení udělá funkční DNS. Procházejte je po řadě, protože každá může skrývat tu následující.
Uchovejte stažení tak, jak přišlo, a upravujte kopii, aby nové stažení vaše změny tiše nevrátilo.
Přečtěte si varování, než ho začnete obviňovat
block-outside-dns uzamyká DNS ve Windows přes platformu filtrování Windows a linuxový klient k tomu nemá co přiřadit. Když to server vloží, klient vypíše řádek o neznámé volbě pro tento vložený záznam a pokračuje, protože vložená volba se nepovažuje za fatální. Stejný řádek ve vašem vlastním souboru je jiná věc: tam se parser zastaví. Rozhodněte, kterou z těch dvou věcí máte, než se čehokoli dotknete, protože jen jedna z nich ukončí běh.
Chcete-li hluk odstranit, filtrujte ho před parsováním: záznam pull-filter ignore pro tento název, nebo --ignore-unknown-option, když řádek leží v místním souboru. Obě utiší řádek, který jste už přečetli; ani jedno neopraví závadu, kterou jste nediagnostikovali.
Oprávnění selhávají dřív než cokoli jiného
Zařízení tun a trasy, které ho doprovázejí, jsou privilegované objekty a běžný účet je nevytvoří. Volba --user vysvětluje to rozdělení: démon se vzdá svých oprávnění až poté, co je privilegovaná práce hotová. Spusťte ho jako root nebo přes unit, který ho tak spouští, a pak hledejte chybu oprávnění, než se podíváte na certifikáty. Zmírnění oprávnění souboru profilu procesu nedá práva, která mu chybí.
Chyba TLS znamená, že klient tuto vrstvu prošel. Stížnost na zařízení nebo trasu znamená, že se k vrstvě výš nikdy nedostal.
Co dělá GUI a terminál ne
Úspěšné připojení, zatímco každé vyhledávání stále selhává, je třetí vrstva. NetworkManager si dělá vlastní práci s překladačem, a proto import z plochy může rozdávat DNS, i když skript up profilu nikdy úspěšně neběžel. Příkaz openvpn --config spustí, co určí --up, a pokud tento pomocník chybí, rozhraní se objeví, zatímco dotazy dál míří na předchozí servery. Porovnejte skripty obou cest, než cokoli nainstalujete.
Použijte zabaleného pomocníka pro svou distribuci; skript zkopírovaný z blogového příspěvku obvykle cílí na jiný překladač. Integrace dodávaná pro systemd-resolved není obecný skript ve stylu vpnc a každá očekává vlastní argumenty a proměnné od klienta. Uživatelem definované skripty up také vyžadují script-security 2, než je klient vůbec spustí.
Při příštím běhu vrstvy oddělte
Spusťte jednou s --verb 4 a čtěte záznam v pořadí, v jakém se odehrál: vytvoření zařízení, trasy, TLS handshake, potom výstup skriptu up. První selhání v této posloupnosti je to, které stojí za opravu; vše po něm bývá následek. Tunel, který se naváže, zatímco překladač ne, vás staví do třetí vrstvy, kde je certifikát nepodstatný. Při porovnávání nechte stažený profil nedotčený.
Jakmile každá úprava operátora vyprodukuje další odmítnutý řádek, soubor míří na jinou platformu. Požádejte o export pro Linux, místo abyste stavěli trvalý seznam filtrů.
Poznamenejte si, která vrstva selhala a co ji změnilo, protože další člověk, kterému dají stejný soubor, se jinak také zastaví u varování.