Tliet prodotti differenti jwieġbu għall-isem iOS VPN, u ma jaqsmu l-ebda API. Personal VPN jirkeb fuq it-trasport IPsec u IKEv2 mibnija fis-sistema. Custom tunnel iħaddem il-protokoll tiegħek stess ġewwa network extension. Configuration profile jikkonfigura wieħed minnhom u jista’ jżid imġieba on-demand. L-għażla skont it-trasport li trid titkellem miegħu hija aktar mgħaġġla mill-għażla skont liema tutorial ġie kkompilat l-ewwel.

Mexxi l-verifiki hawn taħt fl-ordni, għax kull pass jassumi li dak ta’ qabel ipproduċa konfigurazzjoni valida.

Pass 1: agħżel skont it-trasport

Jekk is-server huwa IKEv2 jew IPsec fi stil Cisco, NEVPNManager huwa biżżejjed u t-trasport tas-sistema jiġi b’xejn. Jekk is-server jitkellem OpenVPN, WireGuard jew xi ħaġa oħra, NEVPNManager ma jistax jgħin: m’għandux ganċ għal protokoll ta’ parti terza. Dak il-każ jeħtieġ NETunnelProviderManager ma’ packet tunnel provider li jimplimenta l-protokoll. Profil biss iqassam il-konfigurazzjoni, u ma jistax iżid trasport li s-sistema operattiva m’għandhiex.

PPTP mhuwiex mira fuq is-sistemi attwali. IPsec b’sigriet kondiviż għadu jistenna l-isem tal-grupp f’remoteIdentifier, oġġett keychain li jżomm is-sigriet, u awtentikazzjoni estiża meta s-server jitlob isem tal-utent. Kull biċċa nieqsa tidher bħala l-istess żball ġeneriku ta’ konfigurazzjoni, għalhekk żidhom kollha qabel ma tiddebġja xi ħaġa oħra.

Pass 2: irrispetta l-ordni save, load, start

NEVPNManager jikteb fil-preferences, jaqrahom lura, u mbagħad biss jibda. Imla l-oġġetti tal-protokoll u tal-manager, sejjaħ saveToPreferences, sejjaħ loadFromPreferences, u sejjaħ startVPNTunnel mill-load completion handler. Li tibda qabel ma l-load jerġa’ lura jipproduċi żball configuration-invalid, NEVPNErrorDomain code 1, fuq konfigurazzjoni li altrimenti hija korretta.

Il-forma hija qasira biżżejjed biex tinżamm f’post wieħed:

manager.protocolConfiguration = proto
manager.isEnabled = true
manager.saveToPreferences { }
manager.loadFromPreferences { manager.connection.startVPNTunnel() }

startVPNTunnel jerġa’ lura meta t-talba tiġi aċċettata, mhux meta t-tunnel tkun imqajma. Osserva NEVPNStatusDidChange u aqra connection.status għall-istat veru. App li tassumi suċċess fil-post tas-sejħa tirrapporta VPN konness waqt li l-extension għadu jinnegozja. Status connecting huwa normali għal mument; status li qatt ma joħroġ minnu huwa l-falliment li jistħoqqlu jiġi rreġistrat.

Pass 3: agħti lill-proċess tal-provider dak li jeħtieġ

Custom transport jaħdem fi proċess separat bil-bundle identifier tiegħu u bl-entitlement tiegħu. Kemm l-app container kif ukoll il-provider jeħtieġu l-entitlement network-extension waqt l-iffirmar, u build Developer ID barra l-App Store xorta jrid iġorrha fil-provisioning profile. Entitlement nieqes jidher bħal bug tal-protokoll għax l-extension sempliċement ma jibdiex.

M’hemm l-ebda socket descriptor pubbliku x’tissellef. NEPacketTunnelProvider jagħtik NEPacketTunnelFlow b’read, write u cancel, u l-kodiċi li jasal għal mogħdijiet ta’ ċwievet privati jinqasam bejn rilaxxi. Il-provider jibqa’ għaddej waqt li l-app tkun fil-background, għalhekk l-app container m’għandhiex bżonn modalità background għal dan.

Pass 4: on-demand huwa sett ta’ regoli, mhux swiċċ

isOnDemandEnabled biss jarma r-regoli; NEOnDemandRuleConnect u ħutu jiddeċiedu meta titla’ t-tunnel. Regola evaluate-connection b’probe URL hija tajba daqs kemm hu tajjeb dak l-URL. Jekk il-probe twieġeb mingħajr it-tunnel, ir-regola tikkonkludi li n-netwerk privat diġà jintlaħaq u qatt ma tikkonnettja, għalhekk indikaha lejn xi ħaġa li twieġeb biss minn ġewwa.

Always-on hija wegħda separata. Tirrikjedi apparat sorveljat u profil immaniġġjat, u utent mhux sorveljat jista’ jneħħi profil x’ħin irid. Tixħetx disinn li jiddependi fuq always-on sakemm il-flotta ma tkunx sorveljata.

Pass 5: ipprova l-mogħdija, mhux it-tikketta

L-iskannjar ta’ interfaces tun, tap, ppp jew ipsec juri li VPN hija kkonfigurata, mhux li t-talba tiegħek użatha. NWPathMonitor b’usesInterfaceType(.other) jgħid li interface virtwali hija disponibbli, u viability handler jista’ jittestja host wieħed. L-ebda waħda ma tipprova l-mogħdija tal-ħruġ, għalhekk għaqqadhom ma’ talba għal riżors li t-tunnel biss tista’ tilħaq. L-ismijiet tal-interfaces huma għajnuna dijanjostika, qatt mhuwa bieb li l-loġika tal-app għandha taqsam fuqu.

Għal verifika fuq il-post, qabbel l-indirizz pubbliku mat-tunnel u mingħajrha u ġib paġna interna biss. Sejħa tal-status tista’ tirrapporta konness waqt li l-provider jinnegozja, għalhekk ħalli r-riżultat tar-riżors jiddeċiedi u ttratta l-status bħala prova ta’ sostenn.

Artikli relatati