ProHoster > Blog > διαχείριση > Εφαρμογή της έννοιας της εξαιρετικά ασφαλούς απομακρυσμένης πρόσβασης
Εφαρμογή της έννοιας της εξαιρετικά ασφαλούς απομακρυσμένης πρόσβασης
Συνεχίζοντας τη σειρά άρθρων με θέμα την οργάνωση Απομακρυσμένη πρόσβαση VPN πρόσβαση Δεν μπορώ παρά να μοιραστώ την ενδιαφέρουσα εμπειρία ανάπτυξης εξαιρετικά ασφαλής διαμόρφωση VPN. Μια μη τετριμμένη εργασία παρουσιάστηκε από έναν πελάτη (υπάρχουν εφευρέτες σε ρωσικά χωριά), αλλά η Πρόκληση έγινε αποδεκτή και εφαρμόστηκε δημιουργικά. Το αποτέλεσμα είναι μια ενδιαφέρουσα ιδέα με τα ακόλουθα χαρακτηριστικά:
Διάφοροι παράγοντες προστασίας από την αντικατάσταση της τερματικής συσκευής (με αυστηρή δέσμευση για τον χρήστη).
Αξιολόγηση της συμμόρφωσης του υπολογιστή του χρήστη με το εκχωρημένο UDID του επιτρεπόμενου υπολογιστή στη βάση δεδομένων ελέγχου ταυτότητας.
Με το MFA χρησιμοποιώντας το PC UDID από το πιστοποιητικό για δευτερεύοντα έλεγχο ταυτότητας μέσω Cisco DUO (Μπορείτε να επισυνάψετε οποιοδήποτε συμβατό με SAML/Radius);
Έλεγχος ταυτότητας πολλαπλών παραγόντων:
Πιστοποιητικό χρήστη με επαλήθευση πεδίου και δευτερεύοντα έλεγχο ταυτότητας σε ένα από αυτά.
Σύνδεση (αμετάβλητο, λαμβάνεται από το πιστοποιητικό) και κωδικός πρόσβασης.
Εκτίμηση της κατάστασης του κεντρικού υπολογιστή σύνδεσης (Στάση)
Συστατικά διαλύματος που χρησιμοποιούνται:
Cisco ASA (VPN Gateway);
Cisco ISE (Έλεγχος ταυτότητας / Εξουσιοδότηση / Λογιστική, State Evaluation, CA);
Cisco DUO (Έλεγχος ταυτότητας πολλαπλών παραγόντων) (Μπορείτε να επισυνάψετε οποιοδήποτε συμβατό με SAML/Radius);
Cisco AnyConnect (πράκτορας πολλαπλών χρήσεων για σταθμούς εργασίας και κινητά λειτουργικά συστήματα).
Ας ξεκινήσουμε με τις απαιτήσεις του πελάτη:
Ο χρήστης πρέπει, μέσω του ελέγχου ταυτότητας σύνδεσης/κωδικού πρόσβασης, να μπορεί να πραγματοποιήσει λήψη του προγράμματος-πελάτη AnyConnect από την πύλη VPN· όλες οι απαραίτητες μονάδες AnyConnect πρέπει να εγκατασταθούν αυτόματα σύμφωνα με την πολιτική του χρήστη.
Ο χρήστης θα πρέπει να μπορεί να εκδίδει αυτόματα ένα πιστοποιητικό (για ένα από τα σενάρια, το κύριο σενάριο είναι η μη αυτόματη έκδοση και μεταφόρτωση σε υπολογιστή), αλλά εφάρμοσα την αυτόματη έκδοση για επίδειξη (ποτέ δεν είναι αργά για να το αφαιρέσετε).
Ο βασικός έλεγχος ταυτότητας πρέπει να πραγματοποιηθεί σε πολλά στάδια, πρώτα υπάρχει έλεγχος ταυτότητας πιστοποιητικού με ανάλυση των απαραίτητων πεδίων και των τιμών τους, μετά σύνδεση/κωδικός πρόσβασης, μόνο που αυτή τη φορά πρέπει να εισαχθεί το όνομα χρήστη που καθορίζεται στο πεδίο πιστοποιητικού στο παράθυρο σύνδεσης Όνομα θέματος (CN) χωρίς δυνατότητα επεξεργασίας.
Πρέπει να βεβαιωθείτε ότι η συσκευή από την οποία συνδέεστε είναι ο εταιρικός φορητός υπολογιστής που έχει εκδοθεί στον χρήστη για απομακρυσμένη πρόσβαση και όχι κάτι άλλο. (Έχουν γίνει αρκετές επιλογές για την ικανοποίηση αυτής της απαίτησης)
Η κατάσταση της συσκευής σύνδεσης (σε αυτό το στάδιο Η/Υ) θα πρέπει να αξιολογηθεί με έλεγχο ενός ολόκληρου πίνακα απαιτήσεων πελατών (συνοψίζοντας):
Αρχεία και οι ιδιότητές τους.
Εγγραφές μητρώου.
Ενημερωμένες εκδόσεις κώδικα λειτουργικού συστήματος από την παρεχόμενη λίστα (μετέπειτα ενσωμάτωση SCCM).
Διαθεσιμότητα Anti-Virus από συγκεκριμένο κατασκευαστή και συνάφεια υπογραφών.
Αρχικά, προτείνω να δείτε οπωσδήποτε την επίδειξη βίντεο της υλοποίησης που προκύπτει στο Youtube (5 λεπτά).
Τώρα προτείνω να εξετάσουμε τις λεπτομέρειες υλοποίησης που δεν καλύπτονται στο βίντεο κλιπ.
Ας ετοιμάσουμε το προφίλ AnyConnect:
Έδωσα προηγουμένως ένα παράδειγμα δημιουργίας προφίλ (όσον αφορά ένα στοιχείο μενού στο ASDM) στο άρθρο μου για τη ρύθμιση Σύμπλεγμα εξισορρόπησης φορτίου VPN. Τώρα θα ήθελα να σημειώσω χωριστά τις επιλογές που θα χρειαστούμε:
Στο προφίλ, θα υποδείξουμε την πύλη VPN και το όνομα προφίλ για τη σύνδεση στον τελικό πελάτη:
Ας διαμορφώσουμε την αυτόματη έκδοση πιστοποιητικού από την πλευρά του προφίλ, υποδεικνύοντας, ειδικότερα, τις παραμέτρους του πιστοποιητικού και, χαρακτηριστικά, προσέχουμε το πεδίο Αρχικά (I), όπου μια συγκεκριμένη τιμή εισάγεται χειροκίνητα ΕΣΥ ΤΟ ΕΚΑΝΕΣ μηχάνημα δοκιμής (Μοναδικό αναγνωριστικό συσκευής που δημιουργείται από τον πελάτη Cisco AnyConnect).
Εδώ θέλω να κάνω μια λυρική παρέκβαση, καθώς αυτό το άρθρο περιγράφει την έννοια· για λόγους επίδειξης, το UDID για την έκδοση πιστοποιητικού εισάγεται στο πεδίο Αρχικά του προφίλ AnyConnect. Φυσικά, στην πραγματική ζωή, αν το κάνετε αυτό, τότε όλοι οι πελάτες θα λάβουν πιστοποιητικό με το ίδιο UDID σε αυτόν τον τομέα και τίποτα δεν θα τους δουλέψει, αφού χρειάζονται το UDID του συγκεκριμένου υπολογιστή τους. Το AnyConnect, δυστυχώς, δεν υλοποιεί ακόμη την αντικατάσταση του πεδίου UDID στο προφίλ αιτήματος πιστοποιητικού μέσω μιας μεταβλητής περιβάλλοντος, όπως κάνει, για παράδειγμα, με μια μεταβλητή %ΧΡΗΣΤΗΣ%.
Αξίζει να σημειωθεί ότι ο πελάτης (αυτού του σεναρίου) σχεδιάζει αρχικά να εκδώσει ανεξάρτητα πιστοποιητικά με ένα δεδομένο UDID σε χειροκίνητη λειτουργία σε τέτοιους Προστατευμένους Η/Υ, κάτι που δεν είναι πρόβλημα για αυτόν. Ωστόσο, για τους περισσότερους από εμάς θέλουμε αυτοματισμό (καλά, για μένα είναι αλήθεια =)).
Και αυτό μπορώ να προσφέρω σε επίπεδο αυτοματισμού. Εάν το AnyConnect δεν είναι ακόμη σε θέση να εκδώσει ένα πιστοποιητικό αυτόματα αντικαθιστώντας δυναμικά το UDID, τότε υπάρχει ένας άλλος τρόπος που θα απαιτήσει λίγη δημιουργική σκέψη και επιδέξια χέρια - θα σας πω την ιδέα. Αρχικά, ας δούμε πώς δημιουργείται το UDID σε διαφορετικά λειτουργικά συστήματα από τον παράγοντα AnyConnect:
Windows — SHA-256 κατακερματισμός του συνδυασμού του κλειδιού μητρώου DigitalProductID και Machine SID
OSX — SHA-256 hash PlatformUUID
Linux — SHA-256 κατακερματισμός του UUID του ριζικού διαμερίσματος.
Κατά συνέπεια, δημιουργούμε ένα σενάριο για το εταιρικό μας λειτουργικό σύστημα Windows, με αυτό το σενάριο υπολογίζουμε τοπικά το UDID χρησιμοποιώντας γνωστές εισόδους και σχηματίζουμε ένα αίτημα για έκδοση πιστοποιητικού εισάγοντας αυτό το UDID στο απαιτούμενο πεδίο, παρεμπιπτόντως, μπορείτε επίσης να χρησιμοποιήσετε ένα μηχάνημα πιστοποιητικό που εκδόθηκε από την AD (με την προσθήκη διπλού ελέγχου ταυτότητας χρησιμοποιώντας ένα πιστοποιητικό στο σχήμα Πολλαπλό Πιστοποιητικό).
Ας προετοιμάσουμε τις ρυθμίσεις στην πλευρά Cisco ASA:
Ας δημιουργήσουμε ένα TrustPoint για τον διακομιστή ISE CA, αυτός θα είναι αυτός που θα εκδίδει πιστοποιητικά σε πελάτες. Δεν θα εξετάσω τη διαδικασία εισαγωγής Key-Chain· ένα παράδειγμα περιγράφεται στο άρθρο μου για τη ρύθμιση Σύμπλεγμα εξισορρόπησης φορτίου VPN.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
Διαμορφώνουμε τη διανομή κατά Tunnel-Group βάσει κανόνων σύμφωνα με τα πεδία του πιστοποιητικού που χρησιμοποιείται για τον έλεγχο ταυτότητας. Το προφίλ AnyConnect που φτιάξαμε στο προηγούμενο στάδιο διαμορφώνεται επίσης εδώ. Παρακαλώ σημειώστε ότι χρησιμοποιώ την τιμή SECUREBANK-RA, για μεταφορά χρηστών με εκδοθέν πιστοποιητικό σε μια ομάδα σήραγγας SECURE-BANK-VPN, σημειώστε ότι έχω αυτό το πεδίο στη στήλη αιτήματος πιστοποιητικού προφίλ AnyConnect.
Ρύθμιση διακομιστών ελέγχου ταυτότητας. Στην περίπτωσή μου, αυτό είναι το ISE για το πρώτο στάδιο ελέγχου ταυτότητας και το DUO (Radius Proxy) ως MFA.
! CISCO ISE
aaa-server ISE protocol radius
authorize-only
interim-accounting-update periodic 24
dynamic-authorization
aaa-server ISE (inside) host 192.168.99.134
key *****
!
! DUO RADIUS PROXY
aaa-server DUO protocol radius
aaa-server DUO (inside) host 192.168.99.136
timeout 60
key *****
authentication-port 1812
accounting-port 1813
no mschapv2-capable
!
Δημιουργούμε πολιτικές ομάδας και ομάδες τούνελ και τα βοηθητικά τους στοιχεία:
Ομάδα σήραγγας Προεπιλεγμένη ομάδα WEBVPNG θα χρησιμοποιηθεί κυρίως για τη λήψη του προγράμματος-πελάτη AnyConnect VPN και την έκδοση πιστοποιητικού χρήστη χρησιμοποιώντας τη συνάρτηση SCEP-Proxy του ASA· γι' αυτό έχουμε τις αντίστοιχες επιλογές ενεργοποιημένες τόσο στην ίδια την ομάδα σήραγγας όσο και στη σχετική πολιτική ομάδας AC-Λήψη, και στο φορτωμένο προφίλ AnyConnect (πεδία έκδοσης πιστοποιητικού κ.λπ.). Επίσης σε αυτήν την πολιτική ομάδας υποδεικνύουμε την ανάγκη λήψης Μονάδα στάσης ISE.
Ομάδα σήραγγας SECURE-BANK-VPN θα χρησιμοποιηθεί αυτόματα από τον πελάτη κατά τον έλεγχο ταυτότητας με το εκδοθέν πιστοποιητικό στο προηγούμενο στάδιο, καθώς, σύμφωνα με τον Χάρτη Πιστοποιητικών, η σύνδεση θα εμπίπτει ειδικά σε αυτήν την ομάδα σήραγγας. Θα σας πω για ενδιαφέρουσες επιλογές εδώ:
δευτερεύουσας ταυτότητας-διακομιστής-ομάδας DUO # Ορισμός δευτερεύοντος ελέγχου ταυτότητας στον διακομιστή DUO (Radius Proxy)
όνομα χρήστη-από-πιστοποιητικόCN # Για τον κύριο έλεγχο ταυτότητας, χρησιμοποιούμε το πεδίο CN του πιστοποιητικού για να κληρονομήσουμε τη σύνδεση χρήστη
δευτερεύον-όνομα χρήστη-από-πιστοποιητικό I # Για δευτερεύοντα έλεγχο ταυτότητας στον διακομιστή DUO, χρησιμοποιούμε το όνομα χρήστη που εξήχθη και τα πεδία Αρχικά (I) του πιστοποιητικού.
πελάτης προ-συμπλήρωσης ονόματος χρήστη # Κάντε το όνομα χρήστη προσυμπληρωμένο στο παράθυρο ελέγχου ταυτότητας χωρίς τη δυνατότητα αλλαγής
δευτερεύουσα-προ-συμπλήρωση-όνομα χρήστη-πελάτη απόκρυψη use-common-password push # Κρύβουμε το παράθυρο εισαγωγής σύνδεσης/κωδικού πρόσβασης για δευτερεύοντα έλεγχο ταυτότητας DUO και χρησιμοποιούμε τη μέθοδο ειδοποίησης (sms/push/τηλέφωνο) - βάση για να ζητήσουμε έλεγχο ταυτότητας αντί για το πεδίο κωδικού πρόσβασης εδώ
!
access-list posture-redirect extended permit tcp any host 72.163.1.80
access-list posture-redirect extended deny ip any any
!
access-list VPN-Filter extended permit ip any any
!
ip local pool vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
group-policy SECURE-BANK-VPN internal
group-policy SECURE-BANK-VPN attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
group-policy AC-DOWNLOAD internal
group-policy AC-DOWNLOAD attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
scep-forwarding-url value http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
tunnel-group DefaultWEBVPNGroup general-attributes
address-pool vpn-pool
authentication-server-group ISE
accounting-server-group ISE
default-group-policy AC-DOWNLOAD
scep-enrollment enable
tunnel-group DefaultWEBVPNGroup webvpn-attributes
authentication aaa certificate
!
tunnel-group SECURE-BANK-VPN type remote-access
tunnel-group SECURE-BANK-VPN general-attributes
address-pool vpn-pool
authentication-server-group ISE
secondary-authentication-server-group DUO
accounting-server-group ISE
default-group-policy SECURE-BANK-VPN
username-from-certificate CN
secondary-username-from-certificate I
tunnel-group SECURE-BANK-VPN webvpn-attributes
authentication aaa certificate
pre-fill-username client
secondary-pre-fill-username client hide use-common-password push
group-alias SECURE-BANK-VPN enable
dns-group ASHES-DNS
!
Στη συνέχεια προχωράμε στο ISE:
Διαμορφώνουμε έναν τοπικό χρήστη (μπορείτε να χρησιμοποιήσετε AD/LDAP/ODBC κ.λπ.), για λόγους απλότητας, δημιούργησα έναν τοπικό χρήστη στο ίδιο το ISE και τον εκχώρησα στο πεδίο περιγραφήΥπολογιστής UDID από το οποίο επιτρέπεται να συνδεθεί μέσω VPN. Εάν χρησιμοποιήσω τοπικό έλεγχο ταυτότητας στο ISE, θα περιοριστώ σε μία μόνο συσκευή, καθώς δεν υπάρχουν πολλά πεδία, αλλά σε βάσεις δεδομένων ελέγχου ταυτότητας τρίτων δεν θα έχω τέτοιους περιορισμούς.
Ας δούμε την πολιτική εξουσιοδότησης, χωρίζεται σε τέσσερα στάδια σύνδεσης:
Στάδιο 1 — Πολιτική για τη λήψη του πράκτορα AnyConnect και την έκδοση πιστοποιητικού
Στάδιο 2 — Κύρια πολιτική ελέγχου ταυτότητας Είσοδος (από πιστοποιητικό)/Κωδικός πρόσβασης + Πιστοποιητικό με επικύρωση UDID
Στάδιο 3 — Δευτερεύων έλεγχος ταυτότητας μέσω Cisco DUO (MFA) με χρήση UDID ως όνομα χρήστη + αξιολόγηση κατάστασης
Στάδιο 4 — Η τελική έγκριση είναι στην κατάσταση:
Υποχωρητικός;
Επικύρωση UDID (από πιστοποιητικό + δέσμευση σύνδεσης),
Cisco DUO MFA;
Έλεγχος ταυτότητας μέσω σύνδεσης.
Έλεγχος ταυτότητας πιστοποιητικού.
Ας δούμε μια ενδιαφέρουσα συνθήκη UUID_VALIDATED, φαίνεται απλώς ότι ο χρήστης που επαληθεύει την ταυτότητα προήλθε από έναν υπολογιστή με ένα επιτρεπόμενο UDID συσχετισμένο στο πεδίο Περιγραφή λογαριασμό, οι συνθήκες μοιάζουν με αυτό:
Το προφίλ εξουσιοδότησης που χρησιμοποιείται στα στάδια 1,2,3 έχει ως εξής:
Μπορείτε να ελέγξετε ακριβώς πώς το UDID από τον πελάτη AnyConnect φθάνει σε εμάς κοιτάζοντας τις λεπτομέρειες της περιόδου σύνδεσης του πελάτη στο ISE. Αναλυτικά θα δούμε ότι το AnyConnect μέσω του μηχανισμού ACIDEX στέλνει όχι μόνο πληροφορίες για την πλατφόρμα, αλλά και το UDID της συσκευής ως Cisco-AV-PAIR:
Ας προσέξουμε το πιστοποιητικό που εκδίδεται στον χρήστη και το πεδίο Αρχικά (I), το οποίο χρησιμοποιείται για τη λήψη του ως σύνδεσης για δευτερεύοντα έλεγχο ταυτότητας MFA στο Cisco DUO:
Στην πλευρά του διακομιστή μεσολάβησης DUO Radius στο αρχείο καταγραφής μπορούμε να δούμε καθαρά πώς γίνεται το αίτημα ελέγχου ταυτότητας, έρχεται χρησιμοποιώντας το UDID ως όνομα χρήστη:
Από την πύλη DUO βλέπουμε ένα επιτυχημένο συμβάν ελέγχου ταυτότητας:
Και στις ιδιότητες χρήστη το έχω ορίσει ALIAS, που χρησιμοποίησα για σύνδεση, με τη σειρά μου, αυτό είναι το UDID του υπολογιστή που επιτρέπεται για σύνδεση:
Ως αποτέλεσμα πήραμε:
Έλεγχος ταυτότητας χρήστη και συσκευής πολλαπλών παραγόντων.
Προστασία από πλαστογράφηση της συσκευής του χρήστη.
Αξιολόγηση της κατάστασης της συσκευής.
Δυνατότητα αυξημένου ελέγχου με πιστοποιητικό μηχανήματος τομέα κ.λπ.
Ολοκληρωμένη προστασία απομακρυσμένου χώρου εργασίας με μονάδες ασφαλείας που αναπτύσσονται αυτόματα.