Мит је да је L2TP на Android-у још једна ствар коју shell скрипта може да покрене: додај руту, позови стари сервис, готово. То не може да буде, јер четири различита слоја морају да се сложе пре него што тунел пренесе пакет. Слој IPsec штити пут, L2TP носи сесију, PPP преговара везу, а Android мора да региструје резултат као VPN око ког може да усмерава. Видео сам то покушано двапут са копираним командама, и оба пута рута је постојала док ништа није било шифровано.

Шта промена руте заиста постиже

Додавање руте одлучује куда пакет иде даље. Оно не преговара безбедносну асоцијацију, не отвара L2TP сесију и не покреће PPP размену која производи адресу, партнера и DNS поставке. На телефону је видљив резултат саобраћај који излази погрешним путем, или излази и умире, без икаквог стања тунела било где.

Исто важи за позив сервиса копиран из старијег издања. Android-ова унутрашња VPN инсталација није објављени API за аутоматизацију, а нумерисана трансакција из друге верзије може да погоди другу операцију или да захтева привилегије које скрипта нема. Аутоматизација која носи лозинку никада не би смела да зависи од нагађаних унутрашњих аргумената, јер је начин квара или тихи no-op или напола створен профил који нико не чисти.

Четири власника, а скрипта није ниједан

Узмите их редом. IPsec успоставља и одржава заштићени пут и аутентификује партнере. L2TP носи сесију преко њега, и то слојевање је разлог зашто стандард према њима поступа као према одвојеним механизмима, а не једном протоколу. Унутар тога, PPP преговара параметре везе које ће клијент користити. Затим Android поседује страну платформе: регистровано VPN сучеље, опсег по апликацији, always-on стање и животни циклус који одлучује шта се дешава кад се апликација убије.

Скрипта може да види само последњи од тих слојева, и то обично посредно. Може да замоли клијента да се повеже ако тај клијент излаже документовану контролу, а затим може да посматра стање сучеља. Не може да замени три нижа слоја, нити може да натера платформу да нерегистровано сучеље третира као VPN.

Зашто ни демон није пречица

Покретање привилегованог Linux демона на уређају изгледа као део који недостаје, и често заиста подигне тунел. Оно што не чини јесте регистровање тог тунела код Android-а. Сучеље постоји унутар кернела, али избор VPN-а платформе, усмеравање по апликацији, always-on политика и животни циклус не знају за њега, а демонове сопствене промене рута и DNS-а такмиче се са управником мреже за исте табеле.

Резултат је веза која ради за демонов саобраћај и мистериозно не ради за апликацију која вам је била важна, или она која преживи док систем поново не процени своје мреже. Ниједан од тих исхода није грешка платформе; то је граница између поседовања сокета и поседовања VPN садржаја.

Како изгледају подржани путеви

Ако организација може да пређе на профил који Android сам обезбеђује, пут платформе је искрен. Од API 30, VpnManager подржава обезбеђивање и контролу платформских VPN профила од стране апликација, са током ауторизације везаним за апликацију која позива. То није L2TP претварач: модел профила који обезбеђује за IKEv2 не преводи постојећу L2TP конфигурацију, а промена протокола је миграција, не преименовање. Идентитети, руте, приватни DNS и дозволе приступа морају намерно да се пренесу.

Ако услуга мора да остане L2TP/IPsec, подржана комбинација је клијент и издање ОС-а које оператер стварно документује, и његов уговор о аутоматизацији ако постоји. Кад нема документоване контроле без надзора, тачан одговор је подржана ручна веза, а не крхка привилегована скрипта која случајно ради на једној градњи.

Шта ради исправна аутоматизација

Уз документовану контролу, аутоматизација има мали и одбрањив посао: затражити именовану везу, чекати спремност, зауставити се на грешци аутентификације или подешавања, покренути предвиђени посао и оставити чишћење компоненти која поседује везу. Акредитиви остају код клијента који зна како да их чува и ротира.

Запишите која компонента поседује који слој пре него што напишете први ред, и проверите резултат према томе:

  • IPsec и PPP обрађује клијент, не руте скрипте.
  • Веза се појављује у VPN стању платформе, па се опсег по апликацији и always-on примењују на њу.
  • Ниједан унутрашњи позив сервиса, број трансакције ни нагађани аргумент не носи акредитив.
  • Квар у било ком кораку не оставља напола регистрован профил.

Повезани чланци