Ο έλεγχος κατάστασης VPN δεν μπλοκάρει; Ακολουθήστε πρώτα την αναφορά
Ο πράκτορας του τελικού σημείου αναφέρει υγιή κατάσταση, αλλά η εσωτερική εφαρμογή ανοίγει ακόμη. Περάστε από τον συλλέκτη, την ετυμηγορία και τον αποκλεισμό, και μετά αποδείξτε την άρνηση με ένα αίτημα.
Αν ένας φορητός υπολογιστής του οποίου οι υπογραφές του αντιιικού σταμάτησαν να ενημερώνονται πριν από εβδομάδες μπορεί ακόμη να ανοίξει την εσωτερική σας εφαρμογή, σπάνια το έγγραφο πολιτικής είναι αυτό που πάει στραβά. Τρία ξεχωριστά συστήματα πρέπει να συμφωνήσουν προτού απορριφθεί η πρόσβαση: κάτι μετρά το τελικό σημείο, κάτι μετατρέπει τη μέτρηση σε ετυμηγορία αποδοχής ή άρνησης, και κάτι πράγματι ρίχνει την κίνηση. Όταν μια μη συμμορφούμενη συσκευή μπαίνει παρόλα αυτά, ακριβώς ένας από αυτούς τους κρίκους λείπει ή εμπιστεύεται στοιχεία που δεν θα έπρεπε. Οι έλεγχοι παρακάτω εκτελούνται με αυτή τη σειρά, και ο καθένας έχει ένα σημείο διακοπής.
Ο αποκλεισμός είναι το τελευταίο βήμα, όχι το πρώτο
Η ταυτοποίηση και η κατάσταση της συσκευής απαντούν σε διαφορετικά ερωτήματα. Μια επιτυχής σύνδεση αποδεικνύει ότι παρουσιάστηκε ένα διαπιστευτήριο· δεν λέει τίποτε για το λογισμικό που εκτελείται στο μηχάνημα που το παρουσίασε. Αυτό το κενό εξηγεί γιατί ένα αντιγραμμένο προφίλ πελάτη μπορεί να μεταφέρει μια φαινομενικά υγιή συνεδρία σε έναν ανθυγιεινό υπολογιστή.
Η εργασία συμμόρφωσης τελικών σημείων έχει ήδη λεξιλόγιο για αυτή την αλυσίδα. Το ενημερωτικό μοντέλο αναφοράς NEA στο RFC 5209 χωρίζει την εργασία σε συλλέκτη, βήμα αξιολόγησης και σημείο επιβολής, και λέει ανοιχτά ότι ένας πελάτης που ψεύδεται για τη δική του κατάσταση βρίσκεται έξω από το μοντέλο. Αυτή η επιφύλαξη μετράει περισσότερο από το διάγραμμα: μια αξιόπιστη μονάδα πλατφόρμας δεν μετατρέπει μια αυτοαναφερόμενη μέτρηση σε γεγονός.
Κρατήστε τον συλλέκτη έντιμο ως προς το πεδίο. Πρέπει να αναφέρει τα χαρακτηριστικά που ονομάζει η πολιτική σας, στη συσκευή που ζητά πρόσβαση, και λίγα άλλα. Ένας πράκτορας απογραφής που απαριθμεί κάθε εγκατεστημένο πακέτο είναι διαφορετικό εργαλείο από έναν συλλέκτη κατάστασης, και η διαφορά είναι ταυτόχρονα πρόβλημα διατήρησης και πρόβλημα ακρίβειας. Αν η αναφορά δεν μπορεί να συνδεθεί με μία ταυτότητα συσκευής, ο αξιολογητής μαντεύει ποιο μηχάνημα μόλις ενέκρινε.
Ένας πίνακας ελέγχου που δείχνει κόκκινη κατάσταση δεν είναι έλεγχος. Ρωτήστε τι μπορεί να φτάσει ακόμη ένας απορριφθείς χρήστης: το wiki, τον κοινόχρηστο φάκελο, τη θύρα της βάσης δεδομένων; Η αποκατάσταση χρειάζεται μία στενή επιφάνεια, και όλα τα άλλα ανήκουν πίσω από τον αποκλεισμό.
Διαβάστε την αναφορά πριν διαβάσετε τον κανόνα
Ξεκινήστε από την πηγή και όχι από το πράσινο τικ του πελάτη. Στα Windows η τοπική μέτρηση προέρχεται από το Defender ή από όποιο προϊόν καταχωρίστηκε στο Security Center, και τα δύο διαβάζονται χωρίς κονσόλα προμηθευτή:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
Η δεύτερη εντολή επιστρέφει έναν ακέραιο με όνομα productState. Τα bit του είναι χαλαρά τεκμηριωμένα και οι προμηθευτές συσκευάζουν διαφορετικά τις σημαίες ενεργοποίησης και επικαιρότητας, οπότε επιβεβαιώστε το αντί να το αναλύετε. Τα πακέτα τρίτων αφήνουν επίσης την καταχώριση στο Security Center μετά την απεγκατάσταση, και αυτή αναφέρεται σε λογισμικό που δεν βρίσκεται πια στον δίσκο.
Η ηλικία είναι το πεδίο που οι άνθρωποι προσπερνούν. Μια χρονική σφραγίδα υπογραφής σημαίνει κάτι μόνο ως προς το ρολόι του μηχανήματος που κάνει την αξιολόγηση, οπότε μετατρέψτε την σε διάστημα αντί να την εκτιμήσετε με το μάτι:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
Τώρα η πολιτική έχει έναν αριθμό να διαβάσει. Αν ο κανόνας σας λέει 72 ώρες, αυτός είναι ο αριθμός που χρησιμοποιεί, και ένας φορητός που κοιμάται μια εβδομάδα αποτυγχάνει χωρίς κανείς να ερμηνεύσει μια ετικέτα. Καταγράψτε το κατώφλι δίπλα στην εντολή, γιατί τα δύο αποκλίνουν όταν αντικαθίσταται το εργαλείο τελικού σημείου.
Μετατρέψτε κάθε κατάσταση συσκευής σε γραπτή ετυμηγορία
Οι περισσότερες διαφωνίες για την κατάσταση είναι στην πραγματικότητα διαφωνίες για την άγνωστη γραμμή. Αποφασίστε την πριν από το πρώτο περιστατικό, σε έναν πίνακα που ονομάζει το στοιχείο, την ετυμηγορία και τον υπεύθυνο, ώστε κανείς να μην αυτοσχεδιάζει στην κονσόλα της πύλης.
| Evidence the assessor has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents that fail open under load |
Η κάτω γραμμή είναι εκεί όπου τα προϊόντα διαφέρουν. Μερικές πύλες αρνούνται τη σύνδεση και εξηγούν γιατί· άλλες αφήνουν τη σήραγγα να ανέβει και εφαρμόζουν περιορισμένη πολιτική· λίγες πέφτουν πίσω στην τελευταία γνωστή καλή αναφορά. Μόνο οι δύο πρώτες είναι υπερασπίσιμες, και αξίζει να δοκιμάσετε ποια κάνει η δική σας.
Κρατήστε την ταυτότητα και την άδεια σε δικές τους λωρίδες. Ένας φορητός που περνά κάθε δοκιμή κατάστασης χρειάζεται ακόμη τη σωστή ανθρώπινη εξουσιοδότηση για την εφαρμογή, και ένα πιστοποιητικό συσκευής αποδεικνύει κατοχή κλειδιού και όχι την κατάσταση του συστήματος αρχείων. Η συμπίεση των τριών σε ένα boolean είναι ο τρόπος με τον οποίο ένας λογαριασμός helpdesk αποκτά μόνιμη πρόσβαση στην παραγωγή.
Ελέγξτε τη διαδρομή επιβολής με ένα αίτημα, όχι με πίνακα ελέγχου
Η επιβολή είναι ιδιότητα ενός αιτήματος, οπότε μετρήστε την με ένα. Βάλτε ένα μη συμμορφούμενο μηχάνημα στη σήραγγα και κάντε την κλήση που θα έκανε ένας πραγματικός χρήστης:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
Ένα 200 από συσκευή που θα έπρεπε να αποκλείεται σημαίνει ότι η απόφαση δεν έφτασε ποτέ στη διαδρομή δεδομένων. Δύο συνήθεις αιτίες: η πολιτική είναι συνδεδεμένη με ομάδα στην οποία ο λογαριασμός δοκιμής δεν μπήκε ποτέ, ή η εφαρμογή είναι προσβάσιμη από διαδρομή που το VPN δεν κατέχει.
Ελέγξτε πρώτα την υπόθεση δρομολόγησης. Αν το εσωτερικό όνομα επιλύεται σε διεύθυνση που ο πελάτης φτάνει ήδη μέσω του τοπικού LAN, η σήραγγα είναι άσχετη και καμία πολιτική δεν θα εφαρμοστεί. Συγκρίνετε αυτή τη διεύθυνση με τη διαδρομή που σπρώχνει η πύλη. Στο OpenVPN η πολιτική ανά πελάτη ζει σε αρχεία κλειδωμένα με το κοινό όνομα, οπότε είναι εύκολο να την επιθεωρήσετε:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
Ένα αρχείο που περιέχει disable αποσυνδέει αυτόν τον πελάτη εντελώς, ενώ μια γραμμή push "route ..." περιορίζει το τι μπορεί να φτάσει. Και τα δύο είναι επιβολή, και τα δύο είναι ορατά σε όποιον αποσφαλματώνει την αναφορά.
Δοκιμάστε τις τέσσερις περιπτώσεις σε έναν δοκιμαστικό λογαριασμό
Ο τελικός έλεγχος είναι ένας μικρός πίνακας, όχι ένα χαρούμενο μονοπάτι. Περάστε έναν δοκιμαστικό λογαριασμό από τέσσερις καταστάσεις: τρέχουσα, ληγμένη υπογραφή, προστασία απενεργοποιημένη, πράκτορας μη εγκατεστημένος. Για καθεμία, καταγράψτε την ετυμηγορία στο αρχείο αξιολόγησης, την κατάσταση HTTP που επιστρέφει η εφαρμογή, και αν φορτώθηκε η σελίδα αποκατάστασης.
foreach ($case in 'current', 'stale', 'disabled', 'absent') {
Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}
Δύο λεπτομέρειες ξεφεύγουν εύκολα. Πρώτα η επανάληψη: μια αναφορά που καταγράφηκε όσο το μηχάνημα ήταν υγιές δεν πρέπει να γίνει δεκτή για μεταγενέστερη συνεδρία στην ίδια συσκευή, οπότε αναζητήστε χρονική σφραγίδα δεσμευμένη στην τρέχουσα σύνδεση. Έπειτα η αφαίρεση: η απεγκατάσταση του πράκτορα πρέπει να παράγει την ίδια άρνηση με μια παλιά αναφορά, όχι ένα καθαρό πέρασμα, και αυτή είναι η περίπτωση που συνήθως δεν δοκιμάζεται ποτέ.
Όταν ο πίνακας ταιριάζει με τον πίνακα αναφοράς, παραδώστε τρία πράγματα σε όποιον τρέξει την πύλη στη συνέχεια: τις εντολές, το κατώφλι και τα τέσσερα αναμενόμενα αποτελέσματα. Αυτή η παράδοση είναι το πραγματικό παραδοτέο, γιατί ένας σχεδιασμός κατάστασης που ζει μόνο σε έγγραφο πολιτικής παρεκκλίνει την πρώτη φορά που το εργαλείο τελικού σημείου αλλάζει το πεδίο αναφοράς του.