Ποιος μπορεί να καλέσει; Έλεγχος του msNPAllowDialin πριν από την πρόσβαση VPN
Το msNPAllowDialin έχει τρεις καταστάσεις και ένα NULL αφήνει την απόφαση στο NPS. Εξάγετε τις σημαίες, διαχωρίστε τις από την πρόσβαση ομάδας και καταγράψτε ποιος εξέτασε τι.
Ο κωδικός πρόσβασης είναι σωστός, ο λογαριασμός ανήκει στην ομάδα VPN και η σύνδεση εξακολουθεί να απορρίπτεται με μήνυμα που δεν αναφέρει καμία πολιτική. Όταν αυτό συμβαίνει σε διακομιστή απομακρυσμένης πρόσβασης Windows, το πρώτο μέρος που κοιτάζω δεν είναι ο κανόνας NPS αλλά ένα χαρακτηριστικό του Active Directory που κανείς δεν ανοίγει: msNPAllowDialin, η τιμή πίσω από την καρτέλα Dial-in. Έχει τρεις καταστάσεις και η τρίτη παραδίδει ήσυχα την απόφαση κάπου αλλού. Τις περισσότερες φορές κανείς δεν την άλλαξε σκόπιμα: ο λογαριασμός κλωνοποιήθηκε από πρότυπο ή δημιουργήθηκε από σενάριο που έγραψε ρητή άρνηση χρόνια πριν και δεν εξετάστηκε ποτέ ξανά.
Η άρνηση μπορεί να συμβεί πριν διαβαστεί η πολιτική
Τα Windows ελέγχουν την άδεια κλήσης του λογαριασμού καθώς χτίζουν την απόφαση εξουσιοδότησης, οπότε μια ρητή άρνηση τερματίζει νωρίς τη συνομιλία. Αυτό που βλέπετε στον πελάτη είναι μια γενική αποτυχία ελέγχου ταυτότητας, μερικές φορές αφού ολοκληρωθεί η ανταλλαγή πιστοποιητικών, και γι’ αυτό οι άνθρωποι περνούν ένα απόγευμα δοκιμάζοντας διαπιστευτήρια που ποτέ δεν ήταν το πρόβλημα.
Η αντίστροφη περίπτωση είναι εξίσου μπερδεμένη. Ένας λογαριασμός στον οποίο η σημαία δεν τέθηκε ποτέ μπορεί να συνδεθεί με επιτυχία επειδή το επέτρεπε η πολιτική, και μετά ο ίδιος λογαριασμός σταματά να συνδέεται όταν κάποιος επεξεργάζεται τον κανόνα NPS για άσχετο λόγο. Κανένα από τα δύο γεγονότα δεν μοιάζει εξωτερικά με αλλαγή άδειας κλήσης.
Τρεις καταστάσεις, και η τρίτη είναι αόρατη
TRUE επιτρέπει την κλήση, FALSE την αρνείται, και μια NULL σημαίνει ότι ο λογαριασμός κληρονομεί την απάντηση από την πολιτική απομακρυσμένης πρόσβασης ή την εξουσιοδότηση NPS. Το GUI εμφανίζει αυτή την τρίτη κατάσταση ως "Control access through NPS Network Policy", και διαβάζεται σαν σημείο ελέγχου που δεν έχει οριστεί παρά σαν απόφαση.
Γι’ αυτό η μέτρηση των επιτρεπόμενων χρηστών από την κονσόλα δεν σας λέει σχεδόν τίποτα. Ένας κληρονομημένος λογαριασμός μπορεί να επιτρέπεται σήμερα και να απορρίπτεται αύριο χωρίς να αγγίξει κανείς τον λογαριασμό, και ένας FALSE λογαριασμός μπορεί να συνδέεται ακόμη σε διακομιστή του οποίου η πολιτική έχει ρυθμιστεί να αγνοεί τις ιδιότητες κλήσης του χρήστη. Διαβάστε το χαρακτηριστικό και την πολιτική μαζί, αλλιώς ελέγχετε τη μισή απόφαση.
Εξάγετε τις σημαίες χωρίς να χάσετε τους κληρονομημένους λογαριασμούς
Εκτελέστε την εξαγωγή από έναν ελεγκτή τομέα ή από σταθμό εργασίας με τη μονάδα Active Directory, και κρατήστε το ακατέργαστο αρχείο ως τεκμήριο αντί να ξαναγράψετε μια σύνοψη:
Get-ADUser -Filter * -Properties msNPAllowDialin, LastLogonDate |
Select-Object SamAccountName, Enabled, msNPAllowDialin, LastLogonDate |
Sort-Object SamAccountName |
Export-Csv -NoTypeInformation .\dialin.csv
Ένα μόνο φίλτρο LDAP είναι ευκολότερο να επικολληθεί σε μια εγγραφή αλλαγής. Αυτό επιστρέφει μόνο τις ρητές άδειες:
dsquery * -Filter "(&(objectCategory=person)(objectClass=user)(msNPAllowDialin=TRUE))" -Attr sAMAccountName
Στη συνέχεια κάντε ξανά ερώτημα χωρίς τη ρήτρα κλήσης και αναζητήστε λογαριασμούς των οποίων η τιμή λείπει. Αυτοί είναι οι κληρονομημένοι, συνήθως η μεγαλύτερη ομάδα στον τομέα, και αν τους παραλείψετε ο έλεγχος γίνεται λίστα με τους λίγους ανθρώπους που κάποιος θυμήθηκε να ρυθμίσει με το χέρι.
Διαχωρίστε τη σημαία από την πρόσβαση ομάδας και την υγεία του λογαριασμού
Το χαρακτηριστικό απαντά σε μία ερώτηση: επιτρέπεται σε αυτόν τον λογαριασμό να καλέσει. Δεν λέει τίποτα για το αν το άτομο εργάζεται ακόμη εδώ, αν ο λογαριασμός είναι ενεργοποιημένος ή αν ένας κοινός κωδικός βρίσκεται σε σημείωμα της υποστήριξης. Συνδυάστε την εξαγωγή με την κατάσταση ενεργοποίησης, την ημερομηνία τελευταίας σύνδεσης και τη συμμετοχή στην ομάδα που δίνει πρόσβαση στον διακομιστή.
Οι συνδυασμοί είναι αυτό πάνω στο οποίο ενεργείτε. Ένας απενεργοποιημένος λογαριασμός με TRUE είναι θόρυβος. Ένας ενεργοποιημένος λογαριασμός με TRUE που δεν έχει συνδεθεί εδώ και ένα χρόνο είναι υποψήφιος για αφαίρεση. Ένας κληρονομημένος λογαριασμός στην ομάδα VPN που κανείς δεν μπορεί να εξηγήσει είναι το εύρημα που μετράει, επειδή καμία μεμονωμένη ρύθμιση δεν καταγράφει γιατί δόθηκε.
Διαβάστε το από τον ελεγκτή τομέα στον οποίο ο διακομιστής VPN πιστοποιείται πραγματικά. Η καθυστέρηση αντιγραφής μπορεί να δείξει τιμή που ο διακομιστής έχει ήδη αντικαταστήσει, και ένας έλεγχος που επικαλείται παρωχημένη τιμή DC θα αμφισβητηθεί τη στιγμή που κάποιος θα κοιτάξει ξανά.
Αλλάξτε έναν λογαριασμό και αποδείξτε ότι η αλλαγή έφτασε
Για να αφαιρέσετε την πρόσβαση, ορίστε το χαρακτηριστικό σε FALSE αντί να το καθαρίσετε. Το καθάρισμα επιστρέφει τον λογαριασμό στην κληρονομικότητα πολιτικής, που μπορεί να τον επιτρέψει ξανά στην επόμενη σύνδεση, και η αλλαγή μοιάζει με διόρθωση ενώ στην πραγματικότητα είναι διαφορετική απόφαση:
dsmod user "CN=Jane Doe,OU=Staff,DC=corp,DC=example" -allowDialin no
Set-ADUser -Identity jdoe -Clear msNPAllowDialin
Η δεύτερη γραμμή είναι η επαναφορά της κληρονομικότητας, κρατημένη χωριστά επίτηδες ώστε να μη συγχέει κανείς τις δύο πράξεις. Στη συνέχεια επιβεβαιώστε από δεύτερη συνεδρία, ξαναδιαβάστε το χαρακτηριστικό και ελέγξτε τα γεγονότα λογιστικής του NPS για την άρνηση αντί να εμπιστεύεστε την ανανέωση της κονσόλας.
Τέλος, γράψτε ποιος μηχανισμός κατέχει την απόφαση για κάθε υπηρεσία απομακρυσμένης πρόσβασης. Αν η πολιτική αγνοεί τις ιδιότητες κλήσης του χρήστη, η συνθήκη ομάδας είναι δεσμευτική και το χαρακτηριστικό είναι μόνο συμβουλευτικό για εκείνη την υπηρεσία. Δύο υπηρεσίες στον ίδιο τομέα μπορούν νόμιμα να απαντούν διαφορετικά, και το αρχείο εξέτασης πρέπει να το λέει σε μία γραμμή ανά υπηρεσία.
Το αποτέλεσμα που αντέχει σε έλεγχο είναι σύντομο: ποιος μπορεί να συνδεθεί, με ποιον μηχανισμό, πότε εξετάστηκε, από ποιον. Η σημαία κλήσης δίνει τις δύο πρώτες απαντήσεις· μόνο η εξέταση της πολιτικής δίνει τα υπόλοιπα.