Minulý týždeň mi kolega podal svoj iPhone s dvoma položkami VPN v Nastaveniach: jednu zanechala aplikácia poskytovateľa, druhú profil IKEv2 vložený zo stránky podpory. Nejde o konkurenčné verzie toho istého. Aplikácia poskytovateľa je kontajner, ktorý môže niesť vlastný kód tunela, zatiaľ čo vstavaný klient Apple je klient IKEv2 konfigurovaný ručne alebo profilom. O voľbe rozhoduje protokol, práca s prihlasovacími údajmi, správa zariadenia a obnova.

Aplikácia a natívny klient sú na rôznych vrstvách

Vstavaný klient VPN Apple je v praxi klient IKEv2. Ručný formulár stále uvádza zastaraný L2TP cez IPsec a možnosti Cisco IPsec, ale neexistuje pole pre transport poskytovateľa ani miesto na vloženie konfigurácie OpenVPN alebo WireGuard. Buď vyplníte formulár v Nastavenia > Všeobecné > VPN & Správa zariadenia, alebo importujete profil s dátovou záťažou VPN; rozhranie tvorí adresa servera, dve identity, metóda overovania a voliteľné pravidlá na požiadanie.

Aplikácia poskytovateľa pracuje o vrstvu vyššie. Dodáva poskytovateľa paketového tunela Network Extension, takže kód protokolu a logika smerovania žijú v aplikácii a iOS len odovzdáva pakety. Niektoré aplikácie implementujú WireGuard alebo OpenVPN, iné vlastný zastretý transport a niekoľko len nainštaluje profil IKEv2 a ovláda natívneho klienta za krajšou obrazovkou. Pre túto poslednú skupinu je voľba aplikácia verzus profil niekedy falošná.

Dôsledok je praktický: súbor .ovpn alebo WireGuard nenahrádza tieto polia, pretože handshake je iný protokol.

Prečítajte si dátovú záťaž, kým porovnáte funkcie

Keď je profil IKEv2, kľúče dátovej záťaže vysvetlia viac zlyhaní než akékoľvek porovnanie funkcií. Dokumentácia nastavení IKEv2 od Apple popisuje každý kľúč; skrátená záťaž vyzerá takto:

<key>VPNType</key><string>IKEv2</string>
<key>RemoteAddress</key><string>vpn.example.net</string>
<key>RemoteIdentifier</key><string>vpn.example.net</string>
<key>LocalIdentifier</key><string>[email protected]</string>
<key>AuthenticationMethod</key><string>Certificate</string>
<key>ServerCertificateIssuerCommonName</key><string>Example Issuing CA</string>

Tri polia nesú väčšinu diagnostickej váhy. RemoteIdentifier je názov, ktorý klient očakáva od servera, takže brána za NAT alebo vyvažovač záťaže, ktorého certifikát uvádza fond namiesto adresy, zlyhá, aj keď je adresa správna. LocalIdentifier je identita, ktorú vám server pripisuje, a pri overovaní certifikátom musí zodpovedať identite namapovanej k vášmu účtu. ServerCertificateIssuerCommonName pripína vydávajúcu CA, takže profil môže zlyhať v deň opätovného vydania certifikátu, bez toho aby akákoľvek chyba spomenula certifikáty.

Ak je AuthenticationMethod rovné SharedSecret, server vykonáva používateľské overovanie EAP a tajomstvo, ktoré ste dostali, je v skutočnosti prihlasovací údaj účtu. Záleží na tom, keď poskytovateľ pošle dva dokumenty, jeden pre používateľské meno a heslo a jeden pre certifikát, a len jeden zodpovedá tomu, čo ste importovali.

Čo aplikácia vie a natívny klient nie

Voľba protokolu je zrejmá výhoda. Ak váš server hovorí WireGuard alebo OpenVPN, aplikácia je jediný klient iOS, ktorý to vie použiť, a úprava natívneho formulára to nevyjedná. Aplikácia môže tiež implementovať rozdelený tunel podľa cieľa alebo aplikácie, vlastné spracovanie DNS, blokáciu v štýle kill switch, výber servera a opätovné pripojenie ladené na vlastnú sieť.

Cenou je softvér, ktorý ste neauditovali a ktorý beží s oprávneniami sieťového rozšírenia. Kvalita kolíše viac, než naznačujú karty v obchode: jedna aplikácia sa pripojí čisto, zatiaľ čo iná po zmene siete niekoľko sekúnd prepúšťa prevádzku, a kill switch vnútri aplikácie je funkcia tej aplikácie, nie iOS. Na spravovanom zariadení najprv skontrolujte schválený zoznam.

Čo natívny profil IKEv2 robí správne

Menej pohyblivých častí je celý argument. Klient IKEv2 a jeho zásobník IPsec sú súčasťou systému, takže neexistuje rozšírenie, ktoré by mohlo spadnúť, žiadny proces pre každú aplikáciu, ktorý by sa musel udržiavať v chode, a žiadny aktualizačný cyklus tretej strany medzi vami a fungujúcim tunelom. Profil možno aj uzamknúť: na dohliadanom zariadení používateľ nemôže odobrať to, čo nainštalovala správa, a Always On VPN, ktorý sa znova pripája v každej sieti bez prepínača používateľa, existuje len v tejto dohliadanej, profilom spravovanej podobe.

Čo natívna cesta nedáva, je flexibilita. Neexistuje VPN pre jednotlivé aplikácie bez spravovaných aplikácií, žiadny kill switch pre používateľa ani transport, ktorý by v sieti blokujúcej IPsec vyzeral ako HTTPS. V hotelových sieťach, ktoré zahadzujú UDP 500 a 4500, nemá natívny IKEv2 žiadnu náhradnú cestu.

Rozhodovacia tabuľka, ktorá vyrieši väčšinu prípadov

V praxi otázka protokolu rozhodne väčšinu prípadov skôr, než funkcie začnú hrať rolu.

What you were givenDevice situationWhat to use
An .ovpn or WireGuard configPersonal phoneProvider app; the native form cannot load it
IKEv2 host plus CA namePersonal or managedProfile, or the app's own IKEv2 mode
IKEv2 with username and secretPersonal phoneEither; the profile is simpler if you never switch servers
A management-installed profileSupervised, MDMNative client; do not add a second app entry
A per-app tunnelling requirementPersonal phoneApp, or accept a full tunnel; iOS cannot split by app without management
IPsec blocked on your main networkAnyApp with a transport that survives the block

Dva riadky si zaslúžia druhý pohľad. Požiadavka na aplikáciu na osobnom telefóne je prípad, ktorý ľudia čítajú nesprávne: nastavenie v iOS existuje, ale riadi ho správa, takže nespravované zariadenie ho neponúkne. Zablokovaná sieť nie je dôvod nedôverovať IKEv2; je to dôvod, prečo aplikácia poskytovateľa existuje.

Overte voľbu jedným testom

Testujte režimy zlyhania, nie tlačidlo pripojenia. Pripojte sa raz, potvrďte, že sa objaví indikátor VPN, potom otvorte stránku, ktorá vracia vašu verejnú adresu, a porovnajte ju s predchádzajúcou. Prepnite z Wi-Fi na mobilné dáta bez toho, aby ste sa dotkli VPN, a sledujte opätovné pripojenie, potom prejdite telefónom režim v lietadle. Reštartujte a pozrite sa, či sa tunel vráti sám: profil s OnDemandEnabled by mal, zatiaľ čo mnohé aplikácie treba najprv otvoriť.

Keď sa nevráti, rozdeľte zlyhanie podľa toho, či tunel vôbec existuje. Žiadny indikátor VPN znamená, že tunel nikdy nevznikol: buď handshake zlyhal na RemoteIdentifier, pripnutej CA alebo prihlasovacom údaji, alebo sa pripojenie nikdy neskúsilo, pretože pravidlo na požiadanie nezodpovedalo a žiadna aplikácia ho nezačala. Indikátor so zlyhávajúcou prevádzkou znamená smerovanie, DNS alebo zásadu na strane servera a preinštalovanie klienta sa ničoho z toho nedotkne.

Krátky zoznam, aby bolo zariadenie vysvetliteľné pre ďalšiu osobu:

  • jedna položka VPN, nie dve;
  • profil alebo aplikácia pomenované podľa servera, ku ktorému sa pripájajú;
  • hodnoty identity zapísané tam, kde ich nájdete.

Začnite riadkom protokolu v tabuľke a zastavte sa tam, ak odpovedá na otázku.

Súvisiace články