Εφαρμογή VPN ή ενσωματωμένο IKEv2 στο iPhone: πώς να επιλέξετε
Μια εφαρμογή VPN για iPhone και ο ενσωματωμένος πελάτης IKEv2 λύνουν διαφορετικά προβλήματα. Συγκρίνετε πρώτα υποστήριξη πρωτοκόλλων, ταυτοποίηση, έλεγχο συσκευής και ανάκτηση.
Την περασμένη εβδομάδα ένας συνάδελφος μου έδωσε το 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, τα κλειδιά του ωφέλιμου φορτίου εξηγούν περισσότερες αποτυχίες από οποιαδήποτε σύγκριση λειτουργιών. Η αναφορά ρυθμίσεων IKEv2 της Apple τεκμηριώνει κάθε κλειδί· ένα κολοβωμένο φορτίο μοιάζει έτσι:
<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 για τον χρήστη, ούτε μεταφορέας που θα έμοιαζε με HTTPS σε δίκτυο που μπλοκάρει IPsec. Σε δίκτυα ξενοδοχείων που ρίχνουν UDP 500 και 4500, το ενσωματωμένο IKEv2 δεν έχει εναλλακτική.
Ένας πίνακας απόφασης που λύνει τις περισσότερες περιπτώσεις
Στην πράξη το ερώτημα του πρωτοκόλλου κρίνει τις περισσότερες περιπτώσεις πριν μετρήσουν οι λειτουργίες.
| What you were given | Device situation | What to use |
|---|---|---|
| An .ovpn or WireGuard config | Personal phone | Provider app; the native form cannot load it |
| IKEv2 host plus CA name | Personal or managed | Profile, or the app's own IKEv2 mode |
| IKEv2 with username and secret | Personal phone | Either; the profile is simpler if you never switch servers |
| A management-installed profile | Supervised, MDM | Native client; do not add a second app entry |
| A per-app tunnelling requirement | Personal phone | App, or accept a full tunnel; iOS cannot split by app without management |
| IPsec blocked on your main network | Any | App with a transport that survives the block |
Δύο γραμμές αξίζουν δεύτερη ματιά. Η απαίτηση ανά εφαρμογή σε προσωπικό τηλέφωνο είναι η περίπτωση που οι άνθρωποι διαβάζουν λάθος: η ρύθμιση υπάρχει στο iOS αλλά καθοδηγείται από τη διαχείριση, οπότε μια μη διαχειριζόμενη συσκευή δεν θα την προσφέρει. Ένα μπλοκαρισμένο δίκτυο δεν είναι λόγος δυσπιστίας προς το IKEv2· είναι ο λόγος που υπάρχει η εφαρμογή του παρόχου.
Επαληθεύστε την επιλογή με μία δοκιμή
Δοκιμάστε τους τρόπους αποτυχίας, όχι το κουμπί σύνδεσης. Συνδεθείτε μία φορά, επιβεβαιώστε ότι εμφανίζεται η ένδειξη VPN, μετά ανοίξτε μια σελίδα που επιστρέφει τη δημόσια διεύθυνσή σας και συγκρίνετε την με την προηγούμενη. Περάστε από Wi-Fi σε δεδομένα κινητής χωρίς να αγγίξετε το VPN και παρατηρήστε επανασύνδεση, μετά περάστε το τηλέφωνο από λειτουργία πτήσης. Επανεκκινήστε και δείτε αν το τούνελ επιστρέφει μόνο του: ένα προφίλ με OnDemandEnabled θα έπρεπε, ενώ πολλές εφαρμογές πρέπει να ανοίξουν πρώτα.
Όταν δεν επιστρέφει, χωρίστε την αποτυχία ανάλογα με το αν υπάρχει καθόλου τούνελ. Καμία ένδειξη VPN σημαίνει ότι το τούνελ δεν σηκώθηκε ποτέ: είτε η χειραψία απέτυχε στο RemoteIdentifier, στην καρφιτσωμένη CA ή σε διαπιστευτήριο, είτε η σύνδεση δεν δοκιμάστηκε ποτέ επειδή ο κανόνας κατά παραγγελία δεν ταίριαξε και καμία εφαρμογή δεν την ξεκίνησε. Ένδειξη με αποτυχημένη κίνηση σημαίνει δρομολόγηση, DNS ή πολιτική στην πλευρά του διακομιστή, και η επανεγκατάσταση του πελάτη δεν αγγίζει τίποτα από αυτά.
Ένας σύντομος κατάλογος για να είναι η συσκευή εξηγήσιμη στον επόμενο άνθρωπο:
- μία καταχώριση VPN, όχι δύο·
- το προφίλ ή η εφαρμογή ονομάζονται με τον διακομιστή στον οποίο συνδέονται·
- οι τιμές ταυτότητας γραμμένες εκεί όπου μπορείτε να τις βρείτε.
Ξεκινήστε από τη γραμμή πρωτοκόλλου στον πίνακα και σταματήστε εκεί αν απαντά στην ερώτηση.