Πώς να διαβάσετε την κατάσταση VPN και διαμεσολαβητή για μια διαχειριζόμενη εφαρμογή εργασίας
Ένα εικονίδιο VPN σε ένα διαχειριζόμενο τηλέφωνο αποδεικνύει πολύ λίγα. Διαβάστε το ενεργό δίκτυο, τις δυνατότητές του και τον ενεργό διαμεσολαβητή και μετά διαβάστε κάθε μηδενικό όπως είναι.
Μια εφαρμογή εργασίας αποτυγχάνει σε ένα διαχειριζόμενο τηλέφωνο, κάποιος κοιτά τον διακόπτη VPN, τον βλέπει ενεργό και δηλώνει την διαδρομή υγιή. Εδώ σταματούν οι περισσότερες από αυτές τις διαγνώσεις, και είναι πολύ νωρίς: μια ενεργή μεταφορά VPN δεν λέει ότι τα αιτήματα αυτής της εφαρμογής τη χρησιμοποίησαν, και ο διαμεσολαβητής που πραγματικά εφαρμόζεται μπορεί να είναι ανά εφαρμογή ή να επιλέγεται από αρχείο PAC αντί να εμφανίζεται στις Ρυθμίσεις. Ξεκινήστε από τη συγκεκριμένη εφαρμογή και το προφίλ που ελέγχετε και μετά διαβάστε την άποψη της πλατφόρμας για τη διαδρομή.
Ξεκινήστε από την εφαρμογή και το προφίλ της
Μια εφαρμογή με σήμα εργασίας τρέχει συνήθως σε ξεχωριστό προφίλ με δική της πολιτική δικτύου. Ένα προσωπικό πρόγραμμα περιήγησης στο ίδιο τηλέφωνο δεν είναι απόδειξη γι αυτήν, ούτε είναι αποτέλεσμα από συσκευή συναδέλφου με διαφορετική διαχείριση. Σημειώστε σε ποιο προφίλ ανήκει η εφαρμογή πριν διαβάσετε οτιδήποτε.
Στις Ρυθμίσεις, καταγράψτε τις ρυθμισμένες καταχωρίσεις VPN και σημειώστε σε ποιον ανήκει καθεμία. Στις εκδόσεις Samsung οι ετικέτες μενού μετακινούνται μεταξύ εκδόσεων, οπότε περιγράψτε την καταχώριση και όχι τη διαδρομή προς αυτήν. Μια γκριζαρισμένη ή διαχειριζόμενη καταχώριση ανήκει σε όποιον διαχειρίζεται τη συσκευή· η απενεργοποίησή της ως πείραμα αλλάζει αυτό που προσπαθείτε να μετρήσετε και μπορεί να είναι αντίθετη προς την πολιτική.
Διαβάστε την κατάσταση που αναφέρει η πλατφόρμα
Μέσα σε μια υπάρχουσα δραστηριότητα στα εργαλεία υποστήριξής σας, σε API 23 ή νεότερο, η κατάσταση δικτύου μπορεί να διαβαστεί χωρίς αποστολή ούτε ενός byte. Η κλήση απαιτεί την κανονική άδεια manifest ACCESS_NETWORK_STATE για την ανάγνωση δυνατοτήτων.
val cm = getSystemService(android.net.ConnectivityManager::class.java) ?: return
val network = cm.activeNetwork
val caps = network?.let { cm.getNetworkCapabilities(it) }
val hasVpn = caps?.hasTransport(android.net.NetworkCapabilities.TRANSPORT_VPN)
val proxy = cm.defaultProxyΚάθε τιμή απαντά σε μια στενή ερώτηση. Το ενεργό δίκτυο είναι το προεπιλεγμένο δίκτυο για τη διεργασία που καλεί εκείνη τη στιγμή. Ο έλεγχος δυνατοτήτων σάς λέει αν αυτό το προεπιλεγμένο δίκτυο υποστηρίζεται από VPN. Η κλήση διαμεσολαβητή αναφέρει τον ενεργό προεπιλεγμένο διαμεσολαβητή HTTP, και το αντικείμενο που επιστρέφεται μπορεί να περιγράφει είτε στατικό διαμεσολαβητή είτε σενάριο PAC.
Αν χρειάζεστε την προβολή ανά δίκτυο αντί της προεπιλεγμένης, διαβάστε τις ιδιότητες σύνδεσης του ίδιου δικτύου και συγκρίνετε με cm.getLinkProperties(network)?.httpProxy. Ένας διαμεσολαβητής που εγκαθίσταται από τη διαχείριση συσκευής εμφανίζεται στην κλήση προεπιλεγμένου διαμεσολαβητή και όχι στις ιδιότητες σύνδεσης, κάτι που είναι γρήγορος τρόπος να ξεχωρίσετε διαμεσολαβητή που παρέχει πολιτική από έναν που έδωσε το δίκτυο.
Κρατήστε την έξοδο στο κανάλι υποστήριξής σας και όχι σε δημόσια αναφορά. Τα ονόματα κεντρικών υπολογιστών διαμεσολαβητή, οι διευθύνσεις PAC και τα εσωτερικά επιθήματα αποκαλύπτουν πώς η οργάνωσή σας δρομολογεί την κίνηση, και κανένα από αυτά δεν χρειάζεται για να περιγραφεί η αστοχία.
Ερμηνεύστε κάθε πεδίο στενά
Ένα μηδενικό δίκτυο ή ένα μηδενικό αντικείμενο δυνατοτήτων σημαίνει ότι η κατάσταση δικτύου του καλούντος δεν ήταν διαθέσιμη ή άλλαξε κατά την ανάγνωση. Δεν σημαίνει ότι δεν υπάρχει VPN. Αντιμετωπίστε το ως άγνωστο και διαβάστε ξανά αφού η εφαρμογή έρθει στο προσκήνιο, όχι ως αρνητικό αποτέλεσμα.
Μια μεταφορά VPN είναι το ασθενέστερο από τα θετικά. Οποιαδήποτε εφαρμογή κρατά ένα VpnService παράγει μία, ακόμη και μια τοπική εφαρμογή φιλτραρίσματος που δεν στέλνει ποτέ την κίνησή σας πουθενά. Έτσι μια τιμή true λέει ότι υπάρχει προεπιλεγμένο δίκτυο με υποστήριξη VPN, όχι ότι χρησιμοποιήθηκε η έξοδος της οργάνωσής σας και σίγουρα όχι ότι έγινε επιθεώρηση.
Ένας μηδενικός προεπιλεγμένος διαμεσολαβητής σημαίνει ότι αυτό το API δεν αναφέρει κανέναν προεπιλεγμένο διαμεσολαβητή HTTP για την ενεργή διαμόρφωση. Αποκλείει πολύ λίγα: μια εφαρμογή μπορεί να φέρει τη δική της ρύθμιση SOCKS, να υλοποιεί τον δικό της πελάτη HTTP ή να καθοδηγείται από διαμεσολαβητή στην πύλη που η συσκευή δεν μαθαίνει ποτέ.
Το PAC είναι η περίπτωση που νικά μια απάντηση μίας τιμής. Ένα σενάριο μπορεί να δρομολογήσει έναν προορισμό μέσω διαμεσολαβητή και να στείλει άλλον απευθείας, οπότε δύο αιτήματα της ίδιας εφαρμογής μέσα σε ένα δευτερόλεπτο μπορεί να πάρουν διαφορετικές διαδρομές. Και μια εφαρμογή που δένει τις υποδοχές της σε επιλεγμένο δίκτυο, ή καλεί bindProcessToNetwork, δεν υποχρεούται καθόλου να ακολουθήσει το προεπιλεγμένο.
Τι δεν μπορεί να σας πει αυτό το στιγμιότυπο
Δεν είναι ιστορικό. Τίποτα εδώ δεν καταγράφει ποια διαδρομή πήρε το αίτημα που αποτυγχάνει, και μια επιτυχής ανάγνωση μετά την αστοχία δεν είναι απόδειξη για την αστοχία. Δεν είναι ούτε απογραφή: παίρνετε το προεπιλεγμένο δίκτυο της διεργασίας που καλεί, όχι κατάλογο των ιδιωτικών συνδέσεων κάθε εφαρμογής.
Δεν λέει τίποτα ούτε για το τι συμβαίνει πάνω από την υποδοχή. Μια χειραψία TLS που αποτυγχάνει σε διαχειριζόμενη συσκευή μπορεί να είναι πρόβλημα χώρου αποθήκευσης εμπιστοσύνης, ασυμφωνία pinning ή όνομα που ο διαμεσολαβητής αρνείται, και κανένα από αυτά δεν εμφανίζεται σε ανάγνωση συνδεσιμότητας.
Γι αυτό τα δύο μισά μετράνε μαζί: το στιγμιότυπο περιορίζει πού να κοιτάξετε, και τα διαγνωστικά της ίδιας της εφαρμογής λένε τι απέτυχε πραγματικά.
Αναφέρετέ το σε μορφή που μπορεί να χρησιμοποιήσει ένας διαχειριστής
Δώστε την επηρεαζόμενη εφαρμογή, το προφίλ, τη χρονοσήμανση και το ακριβές στάδιο που απέτυχε: επίλυση ονομάτων, σύνδεση TCP, χειραψία TLS ή κατάσταση HTTP. Προσθέστε τις τιμές του στιγμιότυπου όπως διαβάστηκαν, με τα μηδενικά γραμμένα ως μηδενικά και όχι ως τίποτα. Σημειώστε αν άλλες εφαρμογές στο ίδιο προφίλ αποτυγχάνουν με τον ίδιο τρόπο, κάτι που χωρίζει πρόβλημα εφαρμογής από πρόβλημα διαδρομής σε όλο το προφίλ.
Μετά σταματήστε και αφήστε τον κάτοχο της διαδρομής να απαντήσει. Μη θεωρείτε εταιρικό πιστοποιητικό, διεύθυνση διαμεσολαβητή ή καταχώριση VPN ως άδεια να αφαιρέσετε τη διαχείριση ή να παρακάμψετε την εγκεκριμένη διαδρομή· αυτό μετατρέπει μια υπόθεση υποστήριξης σε περιστατικό πολιτικής.
Το συμβόλαιο προεπιλεγμένου διαμεσολαβητή είναι σύντομο και αξίζει μια ανάγνωση, γιατί ορίζει ακριβώς ποιον διαμεσολαβητή αναφέρει η κλήση, και κάθε υπερβολική ανάγνωση αυτού του στιγμιότυπου ξεκινά υποθέτοντας ότι αναφέρει περισσότερα.