Mýtus je, že L2TP na Androidu je další věc, kterou skript může spustit: přidej trasu, zavolej starou službu, hotovo. Nemůže, protože čtyři různé vrstvy se musí shodnout, než tunel přenese paket. IPsec chrání cestu, L2TP nese relaci, PPP vyjednává spojení a Android musí výsledek zaregistrovat jako VPN, kolem které umí směrovat. Viděl jsem dva pokusy s kopírovanými příkazy a v obou případech trasa existovala, zatímco nic nebylo šifrováno.

Co změna trasy skutečně dělá

Přidání trasy rozhoduje, kam paket půjde dál. Nevyjednává bezpečnostní asociaci, neotevírá relaci L2TP a neprovádí výměnu PPP, která dává adresu, protějšek a nastavení DNS. Na telefonu je viditelným výsledkem provoz, který odchází špatnou cestou, nebo odchází a umírá, bez jakéhokoli stavu tunelu.

Totéž platí pro volání služby zkopírované ze starší verze. Interní VPN infrastruktura Androidu není publikované API pro automatizaci a číslovaná transakce z jiné verze může zasáhnout jinou operaci nebo žádat oprávnění, která skript nemá. Automatizace, která nese heslo, by nikdy neměla záviset na hádaných interních argumentech, protože selhání je buď tiché nicnedělání, nebo napůl vytvořený profil, který nikdo neuklidí.

Čtyři vlastníci a skript není ani jeden z nich

Vezměte je po pořádku. IPsec vytváří a udržuje chráněnou cestu a ověřuje protějšky. L2TP po ní nese relaci a právě toto vrstvení je důvod, proč je standard považuje za oddělené mechanismy, ne za jeden protokol. Uvnitř PPP vyjednává parametry spojení, které klient použije. Pak Android vlastní stranu platformy: registrované VPN rozhraní, rozsah pro aplikace, stav vždy zapnuto a životní cyklus, který rozhoduje, co se stane při ukončení aplikace.

Skript vidí jen poslední z těchto vrstev, a obvykle nepřímo. Může požádat klienta o připojení, pokud nabízí dokumentované ovládání, a pak sledovat stav rozhraní. Nemůže nahradit tři vrstvy pod sebou a nemůže přimět platformu, aby neregistrované rozhraní považovala za VPN.

Proč ani démon není zkratka

Spuštění privilegovaného linuxového démona na zařízení vypadá jako chybějící díl a často skutečně zvedne tunel. Co ale nedělá, je registrace toho tunelu u Androidu. Rozhraní existuje v jádru, ale volba VPN platformy, směrování po aplikacích, politika vždy zapnuto a životní cyklus o něm nevědí a vlastní změny tras a DNS démona soutěží se správcem sítě o stejné tabulky.

Výsledkem je spojení, které funguje pro provoz démona a záhadně ne pro aplikaci, na které vám záleželo, nebo takové, které přežije, dokud systém znovu nevyhodnotí své sítě. Ani jeden výsledek není chyba platformy; je to hranice mezi vlastnictvím socketu a vlastnictvím VPN zařízení.

Jak vypadají podporované cesty

Pokud organizace může přejít na profil, který Android poskytuje sám, je cestou platformy ta poctivá. Od API 30, VpnManager podporuje poskytování a správu profilů VPN platformy aplikacemi, s autorizačním postupem vázaným na volající aplikaci. Není to převodník L2TP: model profilu, který poskytuje pro IKEv2, nepřekládá existující konfiguraci L2TP a změna protokolu je migrace, ne přejmenování. Identity, trasy, soukromé DNS a přístupová oprávnění je třeba přenést záměrně.

Pokud služba musí zůstat na L2TP/IPsec, podporovanou kombinací je klient a verze OS, které operátor skutečně dokumentuje, a jeho smlouva o automatizaci, pokud existuje. Když není dokumentované ovládání bez dozoru, správnou odpovědí je podporované ruční připojení, ne křehký privilegovaný skript, který náhodou funguje na jednom sestavení.

Co dělá správná automatizace

S dokumentovaným ovládáním má automatizace malý a obhajitelný úkol: požádat o pojmenované připojení, počkat na připravenost, zastavit se při selhání ověření nebo nastavení, provést zamýšlenou práci a úklid nechat komponentě, která spojení vlastní. Přihlašovací údaje zůstávají u klienta, který je umí uložit a obměňovat.

Než napíšete první řádek, zapište, která komponenta vlastní kterou vrstvu, a výsledek proti tomu zkontrolujte:

  • IPsec a PPP zajišťuje klient, ne trasy skriptu.
  • Spojení se objeví ve stavu VPN platformy, takže se na něj vztahuje rozsah pro aplikace i vždy zapnuto.
  • Žádné interní volání služby, číslo transakce ani hádaný argument nenese přihlašovací údaje.
  • Selhání v kterémkoli kroku nezanechá napůl registrovaný profil.

Související články