На мінулым тыдні калега працягнуў мне свой iPhone з двума запісамі VPN у «Наладах»: адзін пакінула праграма правайдара, другі — профіль IKEv2, устаўлены са старонкі падтрымкі. Гэта не канкуруючыя версіі аднаго і таго ж. Праграма правайдара — гэта кантэйнер, які можа несці ўласны код тунэлю, а ўбудаваны кліент Apple — гэта кліент IKEv2, настроены ўручную або профілем. Пратакол, праца з уліковымі данымі, кантроль прылады і аднаўленне вызначаюць выбар.

Праграма і ўбудаваны кліент знаходзяцца на розных узроўнях

Убудаваны VPN-кліент Apple на практыцы з’яўляецца кліентам IKEv2. Ручная форма па-ранейшаму пералічвае састарэлы L2TP па-над IPsec і параметры Cisco IPsec, але поля для транспарту правайдара няма, і канфігурацыю OpenVPN ці WireGuard няма куды ўставіць. Вы або запаўняеце форму ў «Налады > Асноўныя > VPN & Кіраванне прыладай», або імпартуеце профіль з карыснай нагрузкай VPN; на паверхні — адрас сервера, дзве ідэнтычнасці, метад аўтэнтыфікацыі і неабавязковыя правілы па патрабаванні.

Праграма правайдара працуе на ўзровень вышэй. Яна пастаўляе правайдара пакетнага тунэлю Network Extension, таму код пратаколу і логіка маршрутызацыі жывуць у праграме, а iOS толькі перадае пакеты. Некаторыя праграмы рэалізуюць WireGuard або OpenVPN, іншыя — уласны замаскіраваны транспарт, а некаторыя толькі ўсталёўваюць профіль IKEv2 і кіруюць убудаваным кліентам за прыемнейшым экранам. З-за апошняй групы выбар «праграма ці профіль» часам ілжывы.

Вынік практычны: файл .ovpn або WireGuard не замяняе гэтыя палі, бо рукапацісканне — іншы пратакол.

Прачытайце карысную нагрузку, перш чым параўноўваць функцыі

Калі профіль — IKEv2, ключы нагрузкі тлумачаць больш збояў, чым любое параўнанне функцый. Даведнік Apple па наладах IKEv2 дакументуе кожны ключ; скарочаная нагрузка выглядае так:

<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>

Тры палі нясуць асноўную дыягнастычную вагу. RemoteIdentifier — імя, якое кліент чакае ад сервера, таму шлюз за NAT або балансіроўшчык, сертыфікат якога называе пул замест адраса, церпіць няўдачу, хоць адрас правільны. LocalIdentifier — ідэнтычнасць, якой сервер вас лічыць, і пры аўтэнтыфікацыі сертыфікатам яна павінна адпавядаць ідэнтычнасці, прывязанай да вашага ўліковага запісу. ServerCertificateIssuerCommonName замацоўвае выдаўцу CA, таму профіль можа адмовіць у дзень перазапуску сертыфіката, і ніводнае паведамленне пра памылку не згадае сертыфікаты.

Калі AuthenticationMethod роўна SharedSecret, сервер выконвае карыстальніцкую аўтэнтыфікацыю EAP, а атрыманы сакрэт насамрэч з’яўляецца ўліковымі данымі акаўнта. Гэта важна, калі правайдар дасылае два дакументы: адзін для імя карыстальніка і пароля, другі для сертыфіката, і толькі адзін супадае з імпартаваным.

Што праграма ўмее, а ўбудаваны кліент не

Выбар пратаколу — відавочная перавага. Калі ваш сервер гаворыць на WireGuard або OpenVPN, праграма — адзіны кліент iOS, які можа гэта выкарыстаць, і рэдагаванне ўбудаванай формы гэтага не ўзгодніць. Праграма таксама можа рэалізаваць падзелены тунэль па прызначэнні або праграме, уласную апрацоўку DNS, блакаванне ў стылі kill switch, выбар сервера і перападключэнне, настроенае пад уласную сетку.

Кошт — праграмнае забеспячэнне, якое вы не правяралі, што працуе з правамі сеткавага пашырэння. Якасць вагаецца мацней, чым мяркуюць карткі ў краме: адна праграма перападключаецца чыста, іншая некалькі секунд выцякае пасля змены сеткі, а kill switch унутры праграмы — функцыя гэтай праграмы, а не iOS. На кіраванай прыладзе спачатку праверце зацверджаны спіс.

Што ўбудаваны профіль IKEv2 робіць правільна

Менш рухомых частак — увесь аргумент. Кліент IKEv2 і яго стек IPsec пастаўляюцца з сістэмай, таму няма пашырэння, якое можа ўпасці, няма працэсу на кожную праграму, які трэба падтрымліваць жывым, і няма цыклу абнаўленняў трэцяга боку паміж вамі і працуючым тунэлем. Профіль можна і заблакаваць: на наглядаемай прыладзе карыстальнік не можа выдаліць тое, што ўстанавіла кіраванне, а Always On VPN, які перападключаецца ў любой сетцы без карыстальніцкага перамыкача, існуе толькі ў такой наглядаемай, кіраванай профілем форме.

Чаго ўбудаваны шлях не дае — гнуткасці. Няма VPN на праграму без кіраваных праграм, няма kill switch для карыстальніка і няма транспарту, які ў сетцы, што блакуе IPsec, выглядаў бы як HTTPS. У гатэльных сетках, якія адкідаюць UDP 500 і 4500, у ўбудаванага IKEv2 няма запаснога шляху.

Табліца рашэнняў, якая зачыняе большасць выпадкаў

На практыцы пытанне пратаколу вырашае большасць выпадкаў яшчэ да таго, як функцыі пачынаюць мець значэнне.

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

Два радкі заслугоўваюць другога позірку. Патрабаванне «на праграму» на асабістым тэлефоне — выпадак, які людзі чытаюць няправільна: параметр існуе ў iOS, але ім кіруе сістэма кіравання, таму некіраваная прылада яго не прапануе. Заблакаваная сетка — не прычына не давяраць IKEv2; гэта прычына, чаму праграма правайдара існуе.

Праверце выбар адным тэстам

Правярайце рэжымы адмовы, а не кнопку падключэння. Падключыцеся адзін раз, пераканайцеся, што з’явіўся індыкатар VPN, потым адкрыйце старонку, якая вяртае ваш публічны адрас, і параўнайце з папярэднім. Пераключыцеся з Wi-Fi на мабільныя даныя, не кранаючы VPN, і сачыце за перападключэннем, потым правядзіце тэлефон праз авіярежым. Перазагрузіце і паглядзіце, ці тунэль вернецца сам: профіль з OnDemandEnabled павінен, а многія праграмы трэба спачатку адкрыць.

Калі тунэль не вярнуўся, падзяліце адмову па тым, ці існуе ён наогул. Адсутнасць індыкатара VPN азначае, што тунэль не падняўся: або рукапацісканне сарвалася на RemoteIdentifier, замацаваным CA ці ўліковых даных, або падключэння наогул не спрабавалі, бо правіла па патрабаванні не супала і ніводная праграма яго не запусціла. Індыкатар пры падаючым трафіку азначае маршрутызацыю, DNS або палітыку на баку сервера, і пераўстаноўка кліента нічога з гэтага не закранае.

Кароткі спіс, каб прылада была зразумелай наступнаму чалавеку:

  • адзін запіс VPN, а не два;
  • профіль або праграма названыя па серверы, да якога яны падключаюцца;
  • значэнні ідэнтычнасці запісаныя там, дзе вы іх знойдзеце.

Пачніце з радка пратаколу ў табліцы і спыніцеся там, калі ён адказвае на пытанне.

Падобныя артыкулы