Android'де L2TP автоматташтыруу: скрипт сурай алат, кура албайт
shell маршруту Android'де L2TP/IPsec көтөрбөйт. IPsec, L2TP, PPP жана платформа саясаты ар бири өз бөлүгүн ээлейт, ошондуктан аны эмне башкара аларын тандаңыз.
Уламыш боюнча L2TP Android'де shell скрипти иштете ала турган дагы бир нерсе: маршрут кош, эски кызматты чакыр, бүттү. Мындай болушу мүмкүн эмес, анткени туннель пакетти ташыганга чейин төрт башка катмар макулдашы керек. IPsec катмары жолду коргойт, L2TP сессияны ташыйт, PPP байланыш боюнча сүйлөшөт, ал эми Android натыйжаны айланасында маршруттай алган VPN катары каттоого тийиш. Мен муну көчүрүлгөн буйруктар менен эки жолу аракет кылышканды көрдүм, эки жолу тең маршрут бар эле, бирок эч нерсе шифрленген эмес.
Маршрутту өзгөртүү чынында эмне берет
Маршрут кошуу пакеттин кийинки кайда кетерин чечет. Ал коопсуздук ассоциациясы боюнча сүйлөшпөйт, L2TP сессиясын ачпайт жана дарек, өнөктөш жана DNS жөндөөлөрүн өндүргөн PPP алмашуусун аткарбайт. Телефондо көрүнгөн натыйжа — туура эмес жол менен чыккан же чыгып өлгөн трафик, эч жерде туннель абалы жок.
Бул эски чыгарылыштан көчүрүлгөн кызмат чакыруусуна да тиешелүү. Android'дин ички VPN түтүгү жарыяланган автоматташтыруу API эмес, ал эми башка версиянын номери бар транзакциясы башка операцияга туш болушу же скриптте жок артыкчылыктарды талап кылышы мүмкүн. Сырсөздү ташыган автоматташтыруу болжолдонгон ички аргументтерге эч качан таянбашы керек, анткени ийгиликсиздиктин формасы же үнсүз no-op, же эч ким тазалабаган жарым жасалган профиль.
Төрт ээ, жана скрипт алардын эч бири эмес
Аларды ирети менен алыңыз. IPsec корголгон жолду орнотуп, кармап турат жана өнөктөштөрдү аутентификациялайт. L2TP сессияны анын үстүнөн ташыйт, жана ушул катмарлаштыруу стандарттын аларды бир протокол эмес, өзүнчө механизмдер катары карашынын себеби. Анын ичинде PPP кардар колдоно турган байланыш параметрлери боюнча сүйлөшөт. Андан кийин Android платформа тарабын ээлейт: катталган VPN интерфейси, колдонмо боюнча камтуу, always-on абалы жана колдонмо өлтүрүлгөндө эмне болорун чечкен жашоо цикл.
Скрипт ошол катмарлардын акыркысын гана көрө алат, адатта кыйыр түрдө. Эгер кардар документтелген башкарууну көрсөтсө, андан туташууну сурай алат, анан интерфейстин абалын байкай алат. Ал астындагы үч катмарды алмаштыра албайт жана платформаны катталбаган интерфейсти VPN катары кабыл алууга мажбурлай албайт.
Эмнеге демон да кыска жол эмес
Түзмөктө артыкчылыгы бар Linux демонун иштетүү жетишпеген бөлүк сыяктуу көрүнөт жана көп учурда туннелди чынында көтөрөт. Ал кылбаганы — ошол туннелди Android'ге каттоо. Интерфейс ядронун ичинде бар, бирок платформанын VPN тандоосу, колдонмо боюнча маршруттоо, always-on саясаты жана жашоо цикл аны билишпейт, ал эми демондун өзүнүн маршрут жана DNS өзгөртүүлөрү ошол эле таблицалар үчүн тармак менеджери менен атаандашат.
Натыйжа — демондун трафиги үчүн иштеген жана сизге маанилүү болгон колдонмо үчүн ужмуштуудай иштебеген туташуу, же система тармактарын кайра баалаганга чейин жашаган туташуу. Эки натыйжанын эч бири платформанын катасы эмес; бул socket'ке ээ болуу менен VPN мүмкүнчүлүгүнө ээ болуунун ортосундагы чек.
Колдоого алынган жолдор кандай
Эгер уюм Android өзү камсыздаган профилге өтө алса, платформа жолу чынчыл. API 30'дон баштап VpnManager колдонмолордун платформа VPN профилдерин камсыздоосун жана башкаруусун колдойт, чакырган колдонмого байланган авторизация агымы менен. Бул L2TP конвертери эмес: ал IKEv2 үчүн камсыздаган профиль модели бар L2TP конфигурациясын которбойт, ал эми протоколду алмаштыруу — миграция, атын өзгөртүү эмес. Идентификаторлар, маршруттар, жеке DNS жана кирүү уруксаттары атайын өткөрүлүшү керек.
Эгер кызмат L2TP/IPsec бойдон калышы керек болсо, колдоого алынган айкалыш — оператор чынында документтеген кардар жана ОС чыгарылышы, жана бар болсо, анын автоматташтыруу келишими. Документтелген көзөмөлсүз башкаруу жок болгондо, туура жооп — бир билдде кокустан иштеген назик артыкчылыктуу скрипт эмес, колдоого алынган кол менен туташуу.
Туура автоматташтыруу эмне кылат
Документтелген башкаруу берилгенде, автоматташтыруунун кичине жана корголуучу иши бар: аталган туташууну сура, даярдыкты күт, аутентификация же орнотуу ийгиликсиздигинде токто, пландалган жүктөмдү аткар жана тазалоону туташууну ээлеген компонентке калтыр. Каттоо маалыматтары аларды сактоону жана айландырууну билген кардарда калат.
Биринчи сапты жазганга чейин кайсы компонент кайсы катмарды ээлей турганын жазыңыз жана натыйжаны ага каршы текшериңиз:
- IPsec жана PPP'ни кардар башкарат, скрипттин маршруттары эмес.
- Туташуу платформанын VPN абалында көрүнөт, ошондуктан колдонмо боюнча камтуу жана always-on ага тиешелүү.
- Эч кандай ички кызмат чакыруусу, транзакция номери же болжолдонгон аргумент каттоо маалыматын ташыбайт.
- Каалаган кадамдагы ийгиликсиздик жарым катталган профилди калтырбайт.