Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)

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

Για τους σκοπούς αυτούς, οι περισσότερες εταιρείες χρησιμοποιούν την τεχνολογία VPN, η οποία έχει αποδειχθεί ότι είναι ένας αξιόπιστα προστατευμένος τρόπος παροχής πρόσβασης στους τοπικούς πόρους του οργανισμού.

Η εταιρεία μου δεν αποτέλεσε εξαίρεση και εμείς, όπως πολλοί άλλοι, χρησιμοποιούμε αυτήν την τεχνολογία. Και, όπως πολλοί άλλοι, χρησιμοποιούμε το Cisco ASA 55xx ως πύλη απομακρυσμένης πρόσβασης.

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

Για εμάς, βρήκαμε μια λύση στη χρήση ελέγχου ταυτότητας δύο παραγόντων για σύνδεση μέσω Cisco SSL VPN, χρησιμοποιώντας κωδικούς πρόσβασης μίας χρήσης. Και αυτή η δημοσίευση θα σας πει πώς να οργανώσετε μια τέτοια λύση με ελάχιστο χρόνο και μηδενικό κόστος για το απαραίτητο λογισμικό (με την προϋπόθεση ότι έχετε ήδη Cisco ASA στην υποδομή σας).

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

Έτσι, χρειαζόμαστε:

- Μια εικόνα Linux με ένα ενσωματωμένο σύνολο εργαλείων - multiOTP, FreeRADIUS και nginx, για πρόσβαση στον διακομιστή μέσω του ιστού (http://download.multiotp.net/ - Χρησιμοποίησα μια έτοιμη εικόνα για VMware)
— Διακομιστής Active Directory
— Η ίδια η Cisco ASA (για λόγους ευκολίας, χρησιμοποιώ ASDM)
— Οποιοδήποτε διακριτικό λογισμικού που υποστηρίζει τον μηχανισμό TOTP (εγώ, για παράδειγμα, χρησιμοποιώ τον Επαληθευτή Google, αλλά το ίδιο θα κάνει και το FreeOTP)

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

Βήμα 1. Εκκινούμε το σύστημα και το διαμορφώνουμε για το δίκτυό σας
Από προεπιλογή, το σύστημα διαθέτει διαπιστευτήρια root root. Νομίζω ότι όλοι μάντευαν ότι θα ήταν καλή ιδέα να αλλάξετε τον κωδικό πρόσβασης χρήστη root μετά την πρώτη σύνδεση. Πρέπει επίσης να αλλάξετε τις ρυθμίσεις δικτύου (από προεπιλογή είναι «192.168.1.44» με την πύλη «192.168.1.1»). Στη συνέχεια, μπορείτε να επανεκκινήσετε το σύστημα.

Ας δημιουργήσουμε έναν χρήστη στην υπηρεσία καταλόγου Active Directory OTP, με κωδικό πρόσβασης MySuperPassword.

Βήμα 2. Ρυθμίστε τη σύνδεση και εισαγάγετε χρήστες Active Directory
Για να γίνει αυτό, χρειαζόμαστε πρόσβαση στην κονσόλα και απευθείας στο αρχείο multiotp.php, χρησιμοποιώντας το οποίο θα διαμορφώσουμε τις ρυθμίσεις σύνδεσης στην υπηρεσία καταλόγου Active Directory.

Μεταβείτε στον κατάλογο /usr/local/bin/multiotp/ και εκτελέστε με τη σειρά τις ακόλουθες εντολές:

./multiotp.php -config default-request-prefix-pin=0

Καθορίζει εάν απαιτείται πρόσθετη (μόνιμη) καρφίτσα κατά την εισαγωγή μιας ακίδας μίας χρήσης (0 ή 1)

./multiotp.php -config default-request-ldap-pwd=0

Καθορίζει εάν απαιτείται κωδικός πρόσβασης τομέα κατά την εισαγωγή μιας εφάπαξ καρφίτσας (0 ή 1)

./multiotp.php -config ldap-server-type=1

Υποδεικνύεται ο τύπος διακομιστή LDAP (0 = κανονικός διακομιστής LDAP, στην περίπτωσή μας 1 = Active Directory)

./multiotp.php -config ldap-cn-identifier="sAMAccountName"

Καθορίζει τη μορφή με την οποία θα παρουσιάζεται το όνομα χρήστη (αυτή η τιμή θα εμφανίζει μόνο το όνομα, χωρίς τον τομέα)

./multiotp.php -config ldap-group-cn-identifier="sAMAccountName"

Το ίδιο, μόνο για ομάδα

./multiotp.php -config ldap-group-attribute="memberOf"

Καθορίζει μια μέθοδο για τον προσδιορισμό του εάν ένας χρήστης ανήκει σε μια ομάδα

./multiotp.php -config ldap-ssl=1

Πρέπει να χρησιμοποιήσω ασφαλή σύνδεση με τον διακομιστή LDAP (φυσικά - ναι!)

./multiotp.php -config ldap-port=636

Θύρα για σύνδεση στον διακομιστή LDAP

./multiotp.php -config ldap-domain-controllers=adSRV.domain.local

Η διεύθυνσή σας διακομιστή Active Directory

./multiotp.php -config ldap-base-dn="CN=Users,DC=domain,DC=local"

Υποδεικνύουμε πού να ξεκινήσετε την αναζήτηση για χρήστες στον τομέα

./multiotp.php -config ldap-bind-dn="[email protected]"

Καθορίστε έναν χρήστη που έχει δικαιώματα αναζήτησης στην υπηρεσία καταλόγου Active Directory

./multiotp.php -config ldap-server-password="MySuperPassword"

Καθορίστε τον κωδικό πρόσβασης χρήστη για σύνδεση στην υπηρεσία καταλόγου Active Directory

./multiotp.php -config ldap-network-timeout=10

Ρύθμιση του χρονικού ορίου για τη σύνδεση με την υπηρεσία καταλόγου Active Directory

./multiotp.php -config ldap-time-limit=30

Θέτουμε ένα χρονικό όριο για τη λειτουργία εισαγωγής χρήστη

./multiotp.php -config ldap-activated=1

Ενεργοποίηση της διαμόρφωσης σύνδεσης Active Directory

./multiotp.php -debug -display-log -ldap-users-sync

Εισάγουμε χρήστες από την υπηρεσία καταλόγου Active Directory

Βήμα 3. Δημιουργήστε έναν κωδικό QR για το διακριτικό
Όλα εδώ είναι εξαιρετικά απλά. Ανοίξτε τη διεπαφή ιστού του διακομιστή OTP στο πρόγραμμα περιήγησης, συνδεθείτε (μην ξεχάσετε να αλλάξετε τον προεπιλεγμένο κωδικό πρόσβασης για τον διαχειριστή!) και κάντε κλικ στο κουμπί "Εκτύπωση":

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
Το αποτέλεσμα αυτής της ενέργειας θα είναι μια σελίδα που περιέχει δύο κωδικούς QR. Αγνοούμε ευθαρσώς το πρώτο από αυτά (παρά την ελκυστική επιγραφή Google Authenticator / Authenticator / 2 Steps Authenticator) και πάλι σαρώνουμε με τόλμη τον δεύτερο κωδικό σε ένα διακριτικό λογισμικού στο τηλέφωνο:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
(ναι, εσκεμμένα χάλασα τον κωδικό QR για να μην είναι αναγνώσιμος).

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

Για να είστε σίγουροι, μπορείτε να το ελέγξετε στην ίδια διεπαφή:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
Εισάγοντας το όνομα χρήστη και τον κωδικό πρόσβασης μίας χρήσης από την εφαρμογή στο τηλέφωνό σας. Λάβατε θετική απάντηση; Προχωράμε λοιπόν.

Βήμα 4. Πρόσθετη διαμόρφωση και δοκιμή λειτουργίας FreeRADIUS
Όπως ανέφερα παραπάνω, το multiOTP έχει ήδη ρυθμιστεί για να λειτουργεί με το FreeRADIUS, το μόνο που μένει είναι να εκτελέσουμε δοκιμές και να προσθέσουμε πληροφορίες σχετικά με την πύλη VPN στο αρχείο διαμόρφωσης FreeRADIUS.

Επιστρέφουμε στην κονσόλα διακομιστή, στον κατάλογο /usr/local/bin/multiotp/, εισαγω:

./multiotp.php -config debug=1
./multiotp.php -config display-log=1

Συμπεριλαμβανομένης της πιο λεπτομερούς καταγραφής.

Στο αρχείο διαμόρφωσης πελατών FreeRADIUS (/etc/freeradius/clinets.conf) σχολιάστε όλες τις γραμμές που σχετίζονται με localhost και προσθέστε δύο καταχωρήσεις:

client localhost {
        ipaddr = 127.0.0.1
        secret          = testing321
        require_message_authenticator = no
}

- για δοκιμή

client 192.168.1.254/32 {
        shortname =     CiscoASA
        secret =        ConnectToRADIUSSecret
}

— για την πύλη VPN μας.

Επανεκκινήστε το FreeRADIUS και προσπαθήστε να συνδεθείτε:

radtest username 100110 localhost 1812 testing321

όπου όνομα χρήστη = όνομα χρήστη, 100110 = κωδικός πρόσβασης που μας δόθηκε από την εφαρμογή στο τηλέφωνο, localhost = Διεύθυνση διακομιστή RADIUS, 1812 — Θύρα διακομιστή RADIUS, test321 — Κωδικός πρόσβασης πελάτη διακομιστή RADIUS (τον οποίο καθορίσαμε στη διαμόρφωση).

Το αποτέλεσμα αυτής της εντολής θα βγει περίπου ως εξής:

Sending Access-Request of id 44 to 127.0.0.1 port 1812
        User-Name = "username"
        User-Password = "100110"
        NAS-IP-Address = 127.0.1.1
        NAS-Port = 1812
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=44, length=20

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

tail /var/log/multiotp/multiotp.log

Και αν υπάρχει η τελευταία καταχώρηση:

2016-09-01 08:58:17     notice  username  User    OK: User username successfully logged in from 127.0.0.1
2016-09-01 08:58:17     debug           Debug   Debug: 0 OK: Token accepted from 127.0.0.1

Μετά όλα πήγαν καλά και μπορούμε να ολοκληρώσουμε

Βήμα 5: Διαμορφώστε το Cisco ASA
Ας συμφωνήσουμε ότι έχουμε ήδη μια διαμορφωμένη ομάδα και πολιτικές για πρόσβαση μέσω SLL VPN, που έχουν διαμορφωθεί σε συνδυασμό με την υπηρεσία καταλόγου Active Directory και πρέπει να προσθέσουμε έλεγχο ταυτότητας δύο παραγόντων για αυτό το προφίλ.

1. Προσθέστε μια νέα ομάδα διακομιστών AAA:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
2. Προσθέστε τον multiOTP διακομιστή μας στην ομάδα:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
3. Επεξεργαζόμαστε προφίλ σύνδεσης, ορίζοντας την ομάδα διακομιστών Active Directory ως τον κύριο διακομιστή ελέγχου ταυτότητας:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
4. Στην καρτέλα Για προχωρημένους -> Έλεγχος ταυτότητας Επιλέγουμε επίσης την ομάδα διακομιστών Active Directory:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
5. Στην καρτέλα Για προχωρημένους -> Δευτερεύον έλεγχος ταυτότητας, επιλέξτε τη δημιουργημένη ομάδα διακομιστών στην οποία είναι καταχωρημένος ο διακομιστής multiOTP. Λάβετε υπόψη ότι το όνομα χρήστη Session κληρονομείται από την κύρια ομάδα διακομιστή AAA:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
Εφαρμόστε τις ρυθμίσεις και

Βήμα 6, γνωστό και ως το τελευταίο
Ας ελέγξουμε εάν ο έλεγχος ταυτότητας δύο παραγόντων λειτουργεί για το SLL VPN:

Μετάβαση στο 2FA (Έλεγχος ταυτότητας δύο παραγόντων για ASA SSL VPN)
Voila! Κατά τη σύνδεση μέσω Cisco AnyConnect VPN Client, θα σας ζητηθεί επίσης ένας δεύτερος κωδικός πρόσβασης μίας χρήσης.

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο