Mīts ir tāds, ka L2TP Android ir vēl viena lieta, ko shell skripts var palaist: pievienot maršrutu, izsaukt veco servisu, gatavs. Tā nevar būt, jo četriem dažādiem slāņiem jāvienojas, pirms tunelis pārvadā pakešu. IPsec slānis aizsargā ceļu, L2TP pārnes sesiju, PPP apspriež savienojumu, un Android ir jāreģistrē rezultāts kā VPN, ap kuru tas var maršrutēt. Esmu redzējis to divreiz mēģinām ar nokopētām komandām, un abas reizes maršruts pastāvēja, kamēr nekas nebija šifrēts.

Ko maršruta maiņa patiešām panāk

Maršruta pievienošana izlemj, kur pakete dosies tālāk. Tā neapspriež drošības asociāciju, neatver L2TP sesiju un neizpilda PPP apmaiņu, kas rada adresi, partneri un DNS iestatījumus. Tālrunī redzamais rezultāts ir trafiks, kas iziet pa nepareizo ceļu vai iziet un nomirst, bez tunela stāvokļa nekur.

Tas pats attiecas uz servisa izsaukumu, kas nokopēts no vecākas versijas. Android iekšējā VPN infrastruktūra nav publicēts automatizācijas API, un numurēta transakcija no citas versijas var trāpīt citai operācijai vai pieprasīt privilēģijas, kādu skriptam nav. Automatizācija, kas pārnēsā paroli, nekad nedrīkst paļauties uz minētiem iekšējiem argumentiem, jo atteices režīms ir vai nu kluss no-op, vai pusizveidots profils, ko neviens netīra.

Četri īpašnieki, un skripts nav neviens no tiem

Ņemiet tos secībā. IPsec izveido un uztur aizsargāto ceļu un autentificē partnerus. L2TP pārnes sesiju virs tā, un tieši slāņošana ir iemesls, kāpēc standarts tos uzskata par atsevišķiem mehānismiem, nevis vienu protokolu. Tā iekšienē PPP apspriež saites parametrus, ko klients izmantos. Pēc tam Android pārvalda platformas pusi: reģistrēto VPN saskarni, darbības jomu katrai lietotnei, always-on stāvokli un dzīves ciklu, kas izlemj, kas notiek, kad lietotne tiek nogalināta.

Skripts var redzēt tikai pēdējo no šiem slāņiem, un parasti netieši. Tas var lūgt klientu savienoties, ja tas klients eksponē dokumentētu kontroli, un pēc tam var novērot saskarnes stāvokli. Tas nevar aizstāt trīs apakšējos slāņus un nevar panākt, lai platforma nereģistrētu saskarni uzskatītu par VPN.

Kāpēc arī dēmons nav īsceļš

Privilēģēta Linux dēmona palaišana ierīcē izskatās kā trūkstošā daļa, un bieži tas tiešām paceļ tuneli. Ko tas nedara, ir tā tuneļa reģistrēšana Android. Saskarne pastāv kodolā, bet platformas VPN izvēle, maršrutēšana katrai lietotnei, always-on politika un dzīves cikls par to nezina, un paša dēmona maršruta un DNS izmaiņas konkurē ar tīkla pārvaldnieku par tām pašām tabulām.

Rezultāts ir savienojums, kas darbojas dēmona trafikam un noslēpumaini nedarbojas lietotnei, kas jums bija svarīga, vai tāds, kas pastāv, līdz sistēma no jauna novērtē savus tīklus. Neviens no rezultātiem nav platformas kļūda; tā ir robeža starp socket piederēšanu un VPN iespējas piederēšanu.

Kā izskatās atbalstītie ceļi

Ja organizācija var pāriet uz profilu, ko Android pats nodrošina, platformas ceļš ir godīgais. No API 30, VpnManager atbalsta platformas VPN profilu nodrošināšanu un kontroli lietotnēm, ar autorizācijas plūsmu, kas saistīta ar saucējlietotni. Tas nav L2TP pārveidotājs: profila modelis, ko tas nodrošina IKEv2, netulko esošu L2TP konfigurāciju, un protokola maiņa ir migrācija, nevis pārdēvēšana. Identitātes, maršruti, privātais DNS un piekļuves atļaujas ir jāpārnes apzināti.

Ja servisam jāpaliek L2TP/IPsec, atbalstītā kombinācija ir klients un OS izlaidums, ko operators patiešām dokumentē, un tā automatizācijas līgums, ja tāds ir. Kad nav dokumentētas uzraudzības brīvas kontroles, pareizā atbilde ir atbalstīts manuāls savienojums, nevis trausls privilēģēts skripts, kas nejauši darbojas vienā būvējumā.

Ko dara pareiza automatizācija

Ar dokumentētu kontroli automatizācijai ir mazs un aizstāvams darbs: pieprasīt nosaukto savienojumu, gaidīt gatavību, apstāties autentifikācijas vai iestatīšanas kļūmes gadījumā, izpildīt paredzēto darbu un atstāt tīrīšanu komponentam, kuram pieder savienojums. Akreditācijas dati paliek pie klienta, kas prot tos uzglabāt un rotēt.

Pierakstiet, kuram komponentam pieder katrs slānis, pirms rakstāt pirmo rindu, un pārbaudiet rezultātu pret to:

  • IPsec un PPP apstrādā klients, nevis skripta maršruti.
  • Savienojums parādās platformas VPN stāvoklī, tāpēc uz to attiecas darbības joma katrai lietotnei un always-on.
  • Neviens iekšējs servisa izsaukums, transakcijas numurs vai minēts arguments nepārnēsā akreditācijas datus.
  • Kļūme jebkurā solī neatstāj pusreģistrētu profilu.

Saistītie raksti