Κάθε σύνδεση VPN καταλήγει σε κάποιον χώρο ονομάτων λογαριασμού, και ο τομέας είναι ο επιλογέας που αποφασίζει σε ποιον. Δεν λέει τίποτα για τη χώρα, τη θέση του διακομιστή ή το επίπεδο εμπιστοσύνης. Δύο ίδια ονόματα χρήστη μπορούν να ζουν σε διαφορετικούς τομείς, γι' αυτό ένα σωστό συνθηματικό μερικές φορές επικυρώνει λάθος λογαριασμό. Αυτός ο οδηγός διορθώνει πρώτα τη μορφή ταυτότητας και μετά παρακολουθεί το αίτημα μέχρι το σύστημα που απάντησε πραγματικά.

Τι επιλέγει ο τομέας

Μια πύλη λαμβάνει όνομα χρήστη και πρέπει να αποφασίσει πού να το ελέγξει. Ο τομέας είναι το τμήμα αυτού του ονόματος ή το χαρακτηριστικό δίπλα του που επιλέγει τη βάση δεδομένων: έναν κατάλογο, μια δεξαμενή RADIUS, ένα τοπικό αρχείο λογαριασμών. Το NPS της Microsoft το ονομάζει όνομα τομέα και δρομολογεί αιτήματα σύνδεσης με αυτό, ενώ το αναγνωριστικό πρόσβασης δικτύου EAP φέρει την ίδια ιδέα ως επίθημα μετά το σύμβολο @ στο RFC 7542. Και τα δύο είναι επιλογείς και κανένα δεν αποφασίζει αν τα διαπιστευτήρια είναι καλά.

Ο διαχωρισμός αυτός παράγει δύο πολύ διαφορετικές αποτυχίες. Ένας τομέας που δρομολογεί σωστά με λάθος συνθηματικό δίνει μία απόρριψη, ενώ ένας τομέας που δρομολογεί στη λάθος βάση μπορεί να απορρίψει σωστό συνθηματικό ή να δεχτεί κάποιου άλλου. Καμία από τις δύο αποτυχίες δεν αναφέρει τον τομέα, γι' αυτό η πρώτη διάγνωση είναι πάντα η ίδια: βρείτε ποιο σύστημα απάντησε.

Η σύνταξη του τομέα ανήκει στην ανάπτυξη. Ορισμένες υπηρεσίες θέλουν μη προσδιορισμένο όνομα συν χαρακτηριστικό, άλλες θέλουν user@domain, και λίγες περιμένουν μορφή με ανάποδη κάθετο που οι περισσότεροι οδηγοί δεν αναφέρουν.

Χρησιμοποιήστε τη μορφή που περιμένει το backend

Ρωτήστε τον διαχειριστή ποια μορφή να πληκτρολογήσετε πριν δοκιμάσετε επιθήματα από κάποιο σεμινάριο. Ένα όνομα με προσδιορισμό τομέα που φτάνει σε backend που περιμένει απλό όνομα συνήθως αποτυγχάνει στην αναζήτηση και όχι στον έλεγχο του συνθηματικού. Το ίδιο σύντομο όνομα σε δύο καταλόγους είναι η περίπτωση όπου ένας απόν τομέας προκαλεί τη μεγαλύτερη ζημιά.

Μη θεωρείτε τον λογαριασμό διαχείρισης ως απόδειξη. Η κονσόλα ιστού όπου διαχειρίζεστε την υπηρεσία μπορεί να επικυρώνει σε τοπικό αρχείο, ενώ η σήραγγα ελέγχει εντελώς διαφορετικό κατάλογο. Δοκιμάστε με τα διαπιστευτήρια που θα χρησιμοποιούσε πραγματικός χρήστης, στη διεπαφή που θα χρησιμοποιούσε πραγματικός χρήστης. Μια επιτυχημένη σύνδεση στην κονσόλα δεν λέει τίποτα για τον τομέα που εφαρμόζει η πύλη στον έλεγχο ταυτότητας VPN.

Οι περιηγητές και οι πελάτες αλληλογραφίας αποθηκεύουν μερικές φορές προηγούμενη ταυτότητα και την υποβάλλουν ξανά σιωπηλά. Όταν το αναφερόμενο όνομα χρήστη διαφέρει από αυτό που πληκτρολογήθηκε, αυτή η προσωρινή μνήμη είναι το πρώτο μέρος για έλεγχο.

Παρακολουθήστε το αίτημα μέσω του διαμεσολαβητή

Σε ένα frontend FreeRADIUS, οι τομείς δηλώνονται στη διαμόρφωση του διαμεσολαβητή και το δηλωμένο επίθημα αποφασίζει ποιος κεντρικός διακομιστής λαμβάνει το αίτημα. Διαβάστε αυτό το αρχείο πριν αλλάξετε οτιδήποτε, γιατί ένα αίτημα που δεν ταιριάζει με κανέναν τομέα αντιμετωπίζεται τοπικά εξ ορισμού.

grep -n -A4 '^realm' /etc/freeradius/3.0/proxy.conf
radtest '[email protected]' 'wrong-password' 10.20.30.10 0 testing123
journalctl -u freeradius --since '-10 min' | grep -iE 'realm|stripped'

Το grep δείχνει ποια επιθήματα υπάρχουν και σε ποια δεξαμενή στοχεύει το καθένα. Η κλήση radtest στέλνει όνομα με τομέα και σκόπιμα λάθος συνθηματικό, ώστε μια απόρριψη να αποδεικνύει ότι εκτελέστηκαν και η διαδρομή και ο έλεγχος διαπιστευτηρίων. Οι γραμμές αρχείου καταγραφής γύρω από αυτή την προσπάθεια δείχνουν αν το όνομα αφαιρέθηκε πριν από τη διαμεσολάβηση και ποιος κεντρικός διακομιστής το πήρε. Αν το αρχείο δεν δείχνει καθόλου αντιστοίχιση τομέα, το αίτημα δεν έφυγε ποτέ από τον τοπικό διακομιστή και το πρόβλημα είναι το επίθημα, όχι το συνθηματικό.

Αλλάξτε ένα πράγμα κάθε φορά και επαναλάβετε την προσπάθεια, γιατί το αρχείο διαχωρίζει τη δρομολόγηση από την αποτυχία διαπιστευτηρίων μόνο όταν η είσοδος διαφέρει μεταξύ των εκτελέσεων. Κρατήστε το κοινό μυστικό έξω από το ιστορικό του κελύφους όπου το εργαλείο υποστηρίζει ανάγνωση από αρχείο ή προτροπή.

Καταγράψτε την προσπάθεια χωρίς να τη διαρρεύσετε

Γράψτε την αποτυχία σε μορφή πάνω στην οποία μπορεί να δράσει ένας διαχειριστής: τη διεπαφή, τη μορφή ταυτότητας, αν υπήρχε τομέας και το ακριβές μη απόρρητο σφάλμα. Κρατήστε το ενεργό όνομα χρήστη έξω από δημόσιες αναφορές και τον τομέα μέσα. Η απόκρυψη κάθε ταυτότητας με το ίδιο σύμβολο κρύβει ακριβώς την αναντιστοιχία που ψάχνετε. Η χρονική σήμανση έχει επίσης σημασία, γιατί η πύλη, ο διαμεσολαβητής και ο κατάλογος τηρούν χωριστά αρχεία.

Στη συνέχεια τεκμηριώστε τη νικητήρια μορφή για τους χρήστες, γιατί ο επόμενος που θα τη γράψει λάθος ανοίγει το ίδιο δελτίο. Η επαναφορά συνθηματικού δεν διορθώνει αίτημα που συνεχίζει να καταλήγει σε λάθος χώρο ονομάτων. Ο τομέας είναι απόφαση δρομολόγησης και οι αποφάσεις δρομολόγησης διορθώνονται με το να τις ονομάζουμε σωστά.

Σχετικά άρθρα