NEVPNManager په iOS کې څه جوړولی شي (او څه نه شي کولی)
د iOS د VPN API درې پروتوکول ټولګې څخه د اپلیکیشن مالکیت یو تنظیم جوړوي. L2TP، PPTP او لاسلیک شوي پروفایلونه د دې سطحې برخه نه دي.
کله چې په یوه iOS اپلیکیشن کې د VPN سکرین جوړوئ، لومړی حیرانتیا دا ده چې د Settings اپلیکیشن د پروتوکولونو لیست د API لیست نه دی۔ د Network Extension چوکاټ ستاسو اپلیکیشن ته اجازه ورکوي چې یو شخصي VPN تنظیم جوړ کړي چې د همدې اپلیکیشن ملکیت وي، او یوازې څو پروتوکول شیان مني۔ هغه نور هر څه چې خلک یې تمه لري، له L2TP څخه تر ډاونلوډ شوي پروفایل پورې، له دې سطحې بهر دي یا د Apple لپاره خصوصي دي۔ هغه ناکامۍ چې وروسته راځي معمولاً بګونه نه دي، دا API له هغه کار څخه انکار کوي چې هېڅکله ورته نه دی ورکړل شوی۔
افسانه: API د Settings مدیر دی
داسې انګېرل کېږي چې ځکه iOS کولی شي د IKEv1، IKEv2، L2TP او IPsec پروفایلونه تنظیم کړي، یو اپلیکیشن کولی شي هر یو له دوی څخه په پروګرامي توګه جوړ کړي۔ نشي کولی۔ چوکاټ بلونکي اپلیکیشن ته دقیقاً یو تنظیمي ځای ښیي، او هغه ځای یوازې د عامه پروتوکول ټولګو یوه کوچنۍ ټولګه مني۔ هغه نور هر څه چې خلک یې تمه لري، له L2TP څخه تر ډاونلوډ شوي پروفایل پورې، له دې سطحې بهر دي یا د Apple لپاره خصوصي دي۔
هغه ناکامۍ چې وروسته راځي معمولاً بګونه نه دي۔ دا API له هغه کار څخه انکار کوي چې هېڅکله ورته نه دی ورکړل شوی، او حل دا دی چې سکرین د هغه څه شاوخوا ډیزاین کړو چې API یې ملکیت لري۔
درې پروتوکول شیان او هغه چې نشته
ستاسو انتخابونه دي IKEv1 د NEVPNProtocolIPSec له لارې، IKEv2 د NEVPNProtocolIKEv2 له لارې، او NETunnelProviderProtocol که خپله د پاکټ تونل غځونه واستوئ۔ د NEVPNManager حواله منل شوي پروتوکول شیان لیستوي۔ L2TP او PPTP هېڅکله په دې لیست کې نه ښکاري ځکه Apple د دوی لپاره هېڅ ټولګه نه ده خپره کړې۔ د دوی له یوې سره هڅه کول د خوندي کولو په وخت کې په تېروتنه پای ته رسېږي، یا لا بدتر، په هغه تنظیم چې سیسټم په غلطه توګه د کارولو څخه انکار کوي۔
د ډیسکټاپ کوډ بېلې قواعد تعقیبوي۔ په macOS کې SCNetworkInterfaceCreateWithInterface د IPv4 په سر د L2TP په څېر د انټرفیس ډول یوځای کوي او له یوې شبکې خدمت سره یې نښلوي، او networksetup -connectpppoeservice پایله پیلوي۔ د مدیر حقونه او یو مرستندوی وسیله اړینه ده، ځکه شریکه پټه او پټنوم د سیسټم کیلي زنځیر ته ځي۔ هغه ډیزاین iOS ته کاپي کړئ او هېڅ شی کمپایل نه شي۔
د پټنوم پر ځای د کیلي زنځیر حواله ورکړئ
هیڅ یوه IKE ټولګه پټنوم د متن په توګه نه مني۔ passwordReference او sharedSecretReference دوه ځانګړنې غواړي یوه دوامداره د کیلي زنځیر حواله، چې تاسو یې له SecItemCopyMatching څخه د kSecReturnPersistentRef په غوښتنې سره ترلاسه کوئ۔ د توکي ډاټا ورکول، یا په ساحه کې تار اچول، د خوندي کولو ناکامي یا د خالي اعتبارنامو سره اړیکه رامنځته کوي۔ حواله یوازې هغومره دوامداره ده څومره چې د هغې شاته د کیلي زنځیر توکی، نو ځکه توکی باید د تنظیم له جوړېدو مخکې موجود وي۔ هغه په همدې معامله کې د خوندي کولو سره جوړ کړئ او د ترتیب بګونو یوه ټوله ټولګه لرې کوئ۔
د سند تصدیق بله لار اخلي: د PKCS#12 بلاب لپاره identityData او identityDataPassword۔ هغه بلاب د اپلیکیشن بنډل دننه استول له نمونې کوډ څخه راغلې عادت دی، د خپرېدو پریکړه نه، ځکه پټنوم ورسره سفر کوي او د اپلیکیشن هر کاپي هماغه هویت لري۔
حق او شتون هر څه کنټرولوي
کېدای شي مدیر په بشپړه توګه نه وي، او لامل یې پروویژننګ دی۔ ستاسو د اپلیکیشن پېژندونکي ته د Network Extension وړتیا او د شخصي VPN حق دواړه اړین دي، او هغه پروفایل چې بیلډ لاسلیک کوي باید دواړه ولري۔
دا پرېږدئ او شریکه نمونه nil بېرته راګرځوي، یا خوندي کول په هغه تېروتنه ناکام شي چې هېڅکله د حق یادونه نه کوي۔ شتون بل دروازه دی۔ که له iOS 8 څخه زوړ هدف وټاکئ، سمبول د اجرا په وخت کې نشته، نو ناکامي کریش یا nil مدیر دی، نه بې تنظیمه مدیر۔ خپل د شیانو ګراف د ډیبګ کولو مخکې د اجرا چاپېریال او حق وګورئ۔
بار کړئ، بدل کړئ، خوندي کړئ، بیا د غوښتنې ترتیب وګورئ
د ژوند دوره د بار کولو، بدلون او خوندي کولو په توګه وګورئ او هېڅکله بار کول مه پرېږدئ۔ تر څو چې loadFromPreferences بشپړ نه شي، مدیر هېڅ نه ساتي او نه پروتوکول شی لوستل کېدای شي او نه بدلېدای شي۔
دوهم خوندي کول تنظیم بدلوي نه دا چې بل ورزیات کړي، نو نیمګړی خوندي کول کېدای شي هغه پروفایل زیانمن کړي چې کار کاوه۔ د غوښتنې قواعد یو ترتیب شوی ارې جوړوي، او هماغه ترتیب تګلاره ده۔ د هر چېرې څخه نښلولو قاعده د جلا کولو قاعدې مخکې کېږدئ او لاسي جلا کول سمدلاسه بیا نښلول کېږي، چې د نیمګړتیا په څېر ښکاري خو مستنده ارزونه تعقیبوي۔
کله چې د کارونکي کړنه باید وګټي، د جلا کولو قاعده مخې ته یوسئ۔ هغه څه چې د اپلیکیشن له کنټرول بهر پاتې کېږي هم هومره مهم دي۔ لارې له تونل یا د سرور تګلارې څخه راځي نه له هغه غوراوي چې تاسو یې ټاکئ، او د پاکټ تونل چمتو کوونکی د پیل په وخت کې د دوی راپور ورکوي۔ اپلیکیشن نه شي کولی هغه پروفایلونه لیست یا سم کړي چې نورو اپلیکیشنونو یا تنظیمي پروفایلونو نصب کړي دي، نو هغه سکرین مه ژمنه کوئ چې په وسیله کې هر VPN ښیي۔