De myte is dat L2TP op Android noch ien ding is dat in shell-skript starte kin: in rûte tafoegje, de âlde tsjinst oanroppe, klear. Dat kin net, want fjouwer ferskillende lagen moatte it iens wurde foardat in tunnel in pakket ferfiert. De IPsec-laach beskermet it paad, L2TP ferfiert de sessy, PPP ûnderhannelet de ferbining, en Android moat it resultaat registrearje as in VPN dêr't it omhinne routearje kin. Ik haw dit twa kear sjoen wurde besocht mei kopiearre opdrachten, en beide kearen bestie de rûte wylst neat fersifere wie.

Wat in rûtewiziging eins berikt

In rûte tafoegje bepaalt wêr't in pakket folgjende hinne giet. It ûnderhannelet gjin befeiligingsassosjaasje, it iepenet gjin L2TP-sessy, en it rint de PPP-útwikseling net dy't in adres, in peer en DNS-ynstellingen produsearret. Op in tillefoan is it sichtbere resultaat ferkear dat oer it ferkearde paad fuortgiet, of fuortgiet en stjert, sûnder tunnelsteat earne.

Itselde jildt foar in tsjinstoprop kopiearre út in âldere ferzje. De ynterne VPN-lieding fan Android is gjin publisearre automatisearrings-API, en in nûmere transaksje út in oare ferzje kin in oare operaasje rekke of foarrjochten freegje dy't it skript net hat. In automatisearring dy't in wachtwurd ferfiert, moat nea fertrouwe op rieden ynterne arguminten, want de falwyse is itsij in stille no-op, itsij in heal oanmakke profyl dat nimmen oprommet.

Fjouwer eigners, en it skript is der gjin ien fan

Nim se yn folchoarder. IPsec stelt it beskerme paad fêst en ûnderhâldt it, en autentisearret de peers. L2TP ferfiert de sessy dêroer, en de laachfoarming is wêrom't de standert se as aparte meganismen behannelet ynstee fan as ien protokol. Dêryn ûnderhannelet PPP de ferbiningsparameters dy't de klient brûke sil. Dêrnei hat Android de platfoarmkant: de registrearre VPN-ynterface, berik per app, always-on-steat en de libbenssyklus dy't beslút wat der bart as de app deade wurdt.

In skript kin allinne de lêste fan dy lagen sjen, en meastentiids yndirekt. It kin in klient freegje om te ferbinen as dy klient in dokumintearre kontrôle bleatleit, en it kin dêrnei de steat fan 'e ynterface besjen. It kin de trije lagen dêrûnder net ferfange, en it kin it platfoarm net safier krije dat it in net-registrearre ynterface as VPN behannelet.

Wêrom't in daemon ek gjin fluchwei is

It starten fan in privilegiearre Linux-daemon op it apparaat liket it ûntbrekkende stik, en it bringt faak yndie in tunnel omheech. Wat it net docht, is dy tunnel by Android registrearje. It ynterface bestiet yn 'e kernel, mar de VPN-seleksje fan it platfoarm, routing per app, always-on-belied en libbenssyklus witte dêr neat fan, en de rûte- en DNS-wizigingen fan 'e daemon sels konkurrearje mei de netwurkbehearder om deselde tabellen.

It resultaat is in ferbining dy't wurket foar it ferkear fan 'e daemon en mysterieus net foar de app dy't jo oan 't hert lei, of ien dy't oerbliuwt oant it systeem syn netwurken op 'e nij beoardielet. Gjin fan beide útkomsten is in bug fan it platfoarm; it is de grins tusken it besitten fan in socket en it besitten fan 'e VPN-foarsjenning.

Hoe't de stipe paden derút sjogge

As de organisaasje oergean kin nei in profyl dat Android sels leveret, is it platfoarmpaad it earlike. Fan API 30 ôf stipet VpnManager it leverjen en kontrolearjen fan platfoarm-VPN-profylen troch applikaasjes, mei in autorisaasjeflater ferbûn oan 'e oanroppende app. It is gjin L2TP-omsetter: it profylmodel dat it foar IKEv2 leveret, oerset gjin besteande L2TP-konfiguraasje, en it feroarjen fan protokol is in migraasje, net in omneamen. Identiteiten, rûtes, privee DNS en tagongsrjochten moatte mei opsetsin oerdroegen wurde.

As de tsjinst L2TP/IPsec bliuwe moat, is de stipe kombinaasje in klient en in OS-ferzje dy't de operator echt dokumintearret, en syn automatisearringsferdrach as dat bestiet. As der gjin dokumintearre kontrôle sûnder tafersjoch is, is it goede antwurd in stipe hânmjittige ferbining ynstee fan in kwetsber privilegiearre skript dat tafallich op ien build wurket.

Wat in korrekte automatisearring docht

Mei in dokumintearre kontrôle hat de automatisearring in lyts en ferdedigber wurk: freegje de neamde ferbining oan, wachtsje op gereedheid, stop by autentikaasje- of ynstellingsfal, rint de bedoelde wurklêst en lit it opromjen oer oan it komponint dat de ferbining besit. Bewiisstikken bliuwe by de klient dy't wit hoe't er se opslaan en ferfange moat.

Skriuw op hokker komponint elke laach besit foardat jo de earste rigel skriuwe, en kontrolearje it resultaat dêroan:

  • IPsec en PPP wurde troch de klient behannele, net troch de rûtes fan it skript.
  • De ferbining ferskynt yn 'e VPN-steat fan it platfoarm, dus berik per app en always-on jilde derfoar.
  • Gjin ynterne tsjinstoprop, transaksjenûmer of rieden argumint ferfiert in bewiisstik.
  • In fal by elke stap lit gjin heal registrearre profyl efter.

Relatearre artikelen