Εφαρμογή της έννοιας της εξαιρετικά ασφαλούς απομακρυσμένης πρόσβασης

Συνεχίζοντας τη σειρά άρθρων με θέμα την οργάνωση Απομακρυσμένη πρόσβαση VPN πρόσβαση Δεν μπορώ παρά να μοιραστώ την ενδιαφέρουσα εμπειρία ανάπτυξης εξαιρετικά ασφαλής διαμόρφωση VPN. Μια μη τετριμμένη εργασία παρουσιάστηκε από έναν πελάτη (υπάρχουν εφευρέτες σε ρωσικά χωριά), αλλά η Πρόκληση έγινε αποδεκτή και εφαρμόστηκε δημιουργικά. Το αποτέλεσμα είναι μια ενδιαφέρουσα ιδέα με τα ακόλουθα χαρακτηριστικά:

  1. Διάφοροι παράγοντες προστασίας από την αντικατάσταση της τερματικής συσκευής (με αυστηρή δέσμευση για τον χρήστη).
    • Αξιολόγηση της συμμόρφωσης του υπολογιστή του χρήστη με το εκχωρημένο UDID του επιτρεπόμενου υπολογιστή στη βάση δεδομένων ελέγχου ταυτότητας.
    • Με το MFA χρησιμοποιώντας το PC UDID από το πιστοποιητικό για δευτερεύοντα έλεγχο ταυτότητας μέσω Cisco DUO (Μπορείτε να επισυνάψετε οποιοδήποτε συμβατό με SAML/Radius);
  2. Έλεγχος ταυτότητας πολλαπλών παραγόντων:
    • Πιστοποιητικό χρήστη με επαλήθευση πεδίου και δευτερεύοντα έλεγχο ταυτότητας σε ένα από αυτά.
    • Σύνδεση (αμετάβλητο, λαμβάνεται από το πιστοποιητικό) και κωδικός πρόσβασης.
  3. Εκτίμηση της κατάστασης του κεντρικού υπολογιστή σύνδεσης (Στάση)

Συστατικά διαλύματος που χρησιμοποιούνται:

  • Cisco ASA (VPN Gateway);
  • Cisco ISE (Έλεγχος ταυτότητας / Εξουσιοδότηση / Λογιστική, State Evaluation, CA);
  • Cisco DUO (Έλεγχος ταυτότητας πολλαπλών παραγόντων) (Μπορείτε να επισυνάψετε οποιοδήποτε συμβατό με SAML/Radius);
  • Cisco AnyConnect (πράκτορας πολλαπλών χρήσεων για σταθμούς εργασίας και κινητά λειτουργικά συστήματα).

Ας ξεκινήσουμε με τις απαιτήσεις του πελάτη:

  1. Ο χρήστης πρέπει, μέσω του ελέγχου ταυτότητας σύνδεσης/κωδικού πρόσβασης, να μπορεί να πραγματοποιήσει λήψη του προγράμματος-πελάτη AnyConnect από την πύλη VPN· όλες οι απαραίτητες μονάδες AnyConnect πρέπει να εγκατασταθούν αυτόματα σύμφωνα με την πολιτική του χρήστη.
  2. Ο χρήστης θα πρέπει να μπορεί να εκδίδει αυτόματα ένα πιστοποιητικό (για ένα από τα σενάρια, το κύριο σενάριο είναι η μη αυτόματη έκδοση και μεταφόρτωση σε υπολογιστή), αλλά εφάρμοσα την αυτόματη έκδοση για επίδειξη (ποτέ δεν είναι αργά για να το αφαιρέσετε).
  3. Ο βασικός έλεγχος ταυτότητας πρέπει να πραγματοποιηθεί σε πολλά στάδια, πρώτα υπάρχει έλεγχος ταυτότητας πιστοποιητικού με ανάλυση των απαραίτητων πεδίων και των τιμών τους, μετά σύνδεση/κωδικός πρόσβασης, μόνο που αυτή τη φορά πρέπει να εισαχθεί το όνομα χρήστη που καθορίζεται στο πεδίο πιστοποιητικού στο παράθυρο σύνδεσης Όνομα θέματος (CN) χωρίς δυνατότητα επεξεργασίας.
  4. Πρέπει να βεβαιωθείτε ότι η συσκευή από την οποία συνδέεστε είναι ο εταιρικός φορητός υπολογιστής που έχει εκδοθεί στον χρήστη για απομακρυσμένη πρόσβαση και όχι κάτι άλλο. (Έχουν γίνει αρκετές επιλογές για την ικανοποίηση αυτής της απαίτησης)
  5. Η κατάσταση της συσκευής σύνδεσης (σε αυτό το στάδιο Η/Υ) θα πρέπει να αξιολογηθεί με έλεγχο ενός ολόκληρου πίνακα απαιτήσεων πελατών (συνοψίζοντας):
    • Αρχεία και οι ιδιότητές τους.
    • Εγγραφές μητρώου.
    • Ενημερωμένες εκδόσεις κώδικα λειτουργικού συστήματος από την παρεχόμενη λίστα (μετέπειτα ενσωμάτωση 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 του ριζικού διαμερίσματος.
  • apple iOS — SHA-256 hash PlatformUUID
  • Android – Δείτε το έγγραφο για σύνδεσμος

Κατά συνέπεια, δημιουργούμε ένα σενάριο για το εταιρικό μας λειτουργικό σύστημα 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.

tunnel-group-map enable rules
!
crypto ca certificate map OU-Map 6
 subject-name attr ou eq securebank-ra
!
webvpn
 anyconnect profiles SECUREBANK disk0:/securebank.xml
 certificate-group-map OU-Map 6 SECURE-BANK-VPN
!

Ρύθμιση διακομιστών ελέγχου ταυτότητας. Στην περίπτωσή μου, αυτό είναι το 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 του υπολογιστή που επιτρέπεται για σύνδεση:

Εφαρμογή της έννοιας της εξαιρετικά ασφαλούς απομακρυσμένης πρόσβασης

Ως αποτέλεσμα πήραμε:

  • Έλεγχος ταυτότητας χρήστη και συσκευής πολλαπλών παραγόντων.
  • Προστασία από πλαστογράφηση της συσκευής του χρήστη.
  • Αξιολόγηση της κατάστασης της συσκευής.
  • Δυνατότητα αυξημένου ελέγχου με πιστοποιητικό μηχανήματος τομέα κ.λπ.
  • Ολοκληρωμένη προστασία απομακρυσμένου χώρου εργασίας με μονάδες ασφαλείας που αναπτύσσονται αυτόματα.

Σύνδεσμοι σε άρθρα της σειράς Cisco VPN:

Πηγή: www.habr.com

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