Pekan lalu seorang rekan menyerahkan iPhone-nya kepada saya dengan dua entri VPN di Pengaturan: satu ditinggalkan aplikasi penyedia, satu lagi dari profil IKEv2 yang ditempel dari halaman dukungan. Keduanya bukan versi bersaing dari hal yang sama. Aplikasi penyedia adalah wadah yang bisa membawa kode terowongannya sendiri, sedangkan klien bawaan Apple adalah klien IKEv2, dikonfigurasi manual atau lewat profil. Protokol, penanganan kredensial, kontrol perangkat, dan pemulihan menentukan pilihan.

Aplikasi dan klien bawaan berada di lapisan berbeda

Klien VPN bawaan Apple dalam praktiknya adalah klien IKEv2. Formulir manual masih mencantumkan L2TP di atas IPsec dan opsi Cisco IPsec yang usang, tetapi tidak ada kolom transport penyedia dan tidak ada tempat menempel konfigurasi OpenVPN atau WireGuard. Anda mengisi formulir di Pengaturan > Umum > VPN & Manajemen Perangkat atau mengimpor profil dengan muatan VPN; permukaannya adalah alamat server, dua identitas, metode autentikasi, dan aturan sesuai permintaan yang opsional.

Aplikasi penyedia bekerja satu lapisan di atasnya. Ia menyertakan penyedia terowongan paket Network Extension, sehingga kode protokol dan logika perutean berada di aplikasi dan iOS hanya meneruskan paket. Sebagian aplikasi mengimplementasikan WireGuard atau OpenVPN, sebagian transportasi tersamarkan sendiri, dan beberapa hanya memasang profil IKEv2 lalu mengendalikan klien bawaan di balik layar yang lebih cantik. Kelompok terakhir inilah yang membuat pilihan aplikasi versus profil kadang menjadi pilihan palsu.

Konsekuensinya praktis: berkas .ovpn atau WireGuard bukan pengganti kolom tersebut, karena handshake adalah protokol lain.

Baca muatan sebelum membandingkan fitur

Saat profilnya IKEv2, kunci muatan menjelaskan lebih banyak kegagalan daripada perbandingan fitur apa pun. Referensi pengaturan IKEv2 dari Apple mendokumentasikan setiap kunci; muatan yang dipangkas tampak seperti ini:

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

Tiga kolom memikul sebagian besar beban diagnostik. RemoteIdentifier adalah nama yang diharapkan klien dari server, jadi gateway di balik NAT atau penyeimbang beban yang sertifikatnya menyebut kumpulan alih-alih alamat gagal meski alamatnya benar. LocalIdentifier adalah identitas yang dianggap server tentang Anda, dan dengan autentikasi sertifikat harus cocok dengan identitas yang dipetakan ke akun Anda. ServerCertificateIssuerCommonName menyematkan CA penerbit, jadi profil bisa gagal pada hari sertifikat diterbitkan ulang, tanpa pesan kesalahan apa pun yang menyebut sertifikat.

Jika AuthenticationMethod sama dengan SharedSecret, server melakukan autentikasi pengguna EAP dan rahasia yang Anda terima sebenarnya adalah kredensial akun. Itu penting ketika penyedia mengirim dua dokumen, satu untuk nama pengguna dan kata sandi dan satu untuk sertifikat, dan hanya satu yang cocok dengan yang Anda impor.

Apa yang bisa dilakukan aplikasi dan tidak bisa dilakukan klien bawaan

Pilihan protokol adalah keunggulan yang jelas. Jika server Anda berbicara WireGuard atau OpenVPN, aplikasi adalah satu-satunya klien iOS yang bisa memakainya, dan mengedit formulir bawaan tidak akan menegosiasikannya. Aplikasi juga dapat mengimplementasikan terowongan terpisah menurut tujuan atau aplikasi, penanganan DNS sendiri, pemblokiran bergaya kill switch, pemilihan server, dan penyambungan ulang yang disesuaikan dengan jaringannya sendiri.

Harganya adalah perangkat lunak yang tidak Anda audit, berjalan dengan hak istimewa ekstensi jaringan. Kualitasnya lebih bervariasi daripada yang disiratkan kartu toko: satu aplikasi menyambung ulang dengan bersih sementara yang lain bocor beberapa detik setelah jaringan berubah, dan kill switch di dalam aplikasi adalah fitur aplikasi itu, bukan iOS. Pada perangkat terkelola, periksa daftar yang disetujui lebih dulu.

Apa yang dilakukan profil IKEv2 bawaan dengan benar

Lebih sedikit bagian bergerak adalah seluruh argumennya. Klien IKEv2 dan tumpukan IPsec-nya ikut dengan sistem operasi, jadi tidak ada ekstensi yang bisa runtuh, tidak ada proses per aplikasi yang harus dijaga hidup, dan tidak ada siklus pembaruan pihak ketiga antara Anda dan terowongan yang berfungsi. Profil juga bisa dikunci: pada perangkat yang diawasi pengguna tidak bisa menghapus apa yang dipasang manajemen, dan Always On VPN, yang menyambung ulang di jaringan mana pun tanpa tombol pengguna, hanya ada dalam bentuk yang diawasi dan dikelola profil itu.

Apa yang tidak diberikan jalur bawaan adalah keluwesan. Tidak ada VPN per aplikasi tanpa aplikasi terkelola, tidak ada kill switch untuk pengguna, dan tidak ada transportasi yang tampak seperti HTTPS di jaringan yang memblokir IPsec. Di jaringan hotel yang membuang UDP 500 dan 4500, IKEv2 bawaan tidak punya jalan cadangan.

Tabel keputusan yang menyelesaikan sebagian besar kasus

Dalam praktiknya pertanyaan protokol menentukan sebagian besar kasus sebelum fitur menjadi penting.

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

Dua baris layak dilihat lagi. Persyaratan per aplikasi pada ponsel pribadi adalah kasus yang orang salah baca: pengaturannya ada di iOS tetapi dikendalikan manajemen, jadi perangkat yang tidak dikelola tidak akan menawarkannya. Jaringan yang diblokir bukan alasan untuk tidak memercayai IKEv2; itulah alasan aplikasi penyedia ada.

Verifikasi pilihan dengan satu uji coba

Uji mode kegagalan, bukan tombol sambung. Sambungkan sekali, pastikan indikator VPN muncul, lalu buka halaman yang mengembalikan alamat publik Anda dan bandingkan dengan sebelumnya. Beralih dari Wi-Fi ke data seluler tanpa menyentuh VPN dan amati penyambungan ulang, lalu lewati ponsel melalui mode pesawat. Mulai ulang dan lihat apakah terowongan kembali sendiri: profil dengan OnDemandEnabled seharusnya kembali, sementara banyak aplikasi harus dibuka dulu.

Bila tidak kembali, pisahkan kegagalan menurut ada atau tidaknya terowongan. Tidak ada indikator VPN berarti terowongan tidak pernah naik: entah handshake gagal pada RemoteIdentifier, CA yang disematkan, atau kredensial, atau koneksi tidak pernah dicoba karena aturan sesuai permintaan tidak cocok dan tidak ada aplikasi yang memulainya. Indikator dengan lalu lintas gagal berarti perutean, DNS, atau kebijakan sisi server, dan memasang ulang klien tidak menyentuh satu pun dari itu.

Daftar singkat agar perangkat bisa dijelaskan kepada orang berikutnya:

  • satu entri VPN, bukan dua;
  • profil atau aplikasi dinamai menurut server yang disambungnya;
  • nilai identitas ditulis di tempat yang bisa Anda temukan.

Mulailah dari baris protokol di tabel, dan berhenti di sana jika itu menjawab pertanyaannya.

Artikel terkait