Ανάπτυξη ενός συμπλέγματος εξισορρόπησης φορτίου ASA VPN
Σε αυτό το άρθρο, θα ήθελα να δώσω οδηγίες βήμα προς βήμα για το πώς μπορείτε να αναπτύξετε γρήγορα το πιο επεκτάσιμο σχήμα αυτή τη στιγμή. Απομακρυσμένη πρόσβαση VPN με βάση την πρόσβαση AnyConnect και Cisco ASA - Σύμπλεγμα εξισορρόπησης φορτίου VPN.
Εισαγωγή: Πολλές εταιρείες σε όλο τον κόσμο, ενόψει της τρέχουσας κατάστασης με τον COVID-19, καταβάλλουν προσπάθειες να μεταφέρουν τους υπαλλήλους τους σε εξ αποστάσεως εργασία. Λόγω της μαζικής μετάβασης στην απομακρυσμένη εργασία, ο φόρτος στις υπάρχουσες πύλες VPN των εταιρειών αυξάνεται δραματικά και απαιτείται πολύ γρήγορη δυνατότητα κλιμάκωσής τους. Από την άλλη πλευρά, πολλές εταιρείες αναγκάζονται να κατακτήσουν βιαστικά την έννοια της απομακρυσμένης εργασίας από την αρχή.
Έχω ετοιμάσει έναν οδηγό βήμα προς βήμα για μια απλή ανάπτυξη του συμπλέγματος εξισορρόπησης φορτίου VPN ως την πιο επεκτάσιμη τεχνολογία VPN.
Το παρακάτω παράδειγμα θα είναι αρκετά απλό όσον αφορά τους αλγόριθμους ελέγχου ταυτότητας και εξουσιοδότησης που χρησιμοποιούνται, αλλά θα είναι μια καλή επιλογή για μια γρήγορη εκκίνηση (που αυτή τη στιγμή δεν αρκεί για πολλούς) με δυνατότητα εις βάθος προσαρμογής στις ανάγκες σας κατά την ανάπτυξη επεξεργάζομαι, διαδικασία.
Σύντομη ενημέρωση: Η τεχνολογία συμπλέγματος εξισορρόπησης φορτίου VPN δεν είναι ανακατεύθυνση και δεν είναι λειτουργία ομαδοποίησης με την εγγενή της έννοια, αυτή η τεχνολογία μπορεί να συνδυάσει εντελώς διαφορετικά μοντέλα ASA (με ορισμένους περιορισμούς) προκειμένου να φορτώσει τις συνδέσεις VPN απομακρυσμένης πρόσβασης ισορροπίας. Δεν υπάρχει συγχρονισμός των περιόδων σύνδεσης και των διαμορφώσεων μεταξύ των κόμβων ενός τέτοιου συμπλέγματος, αλλά είναι δυνατή η αυτόματη φόρτωση των συνδέσεων VPN ισορροπίας και η διασφάλιση της ανοχής σφαλμάτων των συνδέσεων VPN έως ότου παραμείνει τουλάχιστον ένας ενεργός κόμβος στο σύμπλεγμα. Το φορτίο στο σύμπλεγμα εξισορροπείται αυτόματα ανάλογα με τον φόρτο εργασίας των κόμβων με τον αριθμό των περιόδων σύνδεσης VPN.
Για αστοχία συγκεκριμένων κόμβων του συμπλέγματος (εάν απαιτείται), μπορεί να χρησιμοποιηθεί ένα αρχείο αρχείου, επομένως η ενεργή σύνδεση θα χειρίζεται ο Κύριος κόμβος του αρχείου. Η αντικατάσταση αρχείων δεν είναι απαραίτητη προϋπόθεση για τη διασφάλιση της ανοχής σφαλμάτων εντός του συμπλέγματος Load-Balancing, το ίδιο το σύμπλεγμα, σε περίπτωση αποτυχίας κόμβου, θα μεταφέρει τη συνεδρία χρήστη σε άλλο ζωντανό κόμβο, αλλά χωρίς να αποθηκεύσει την κατάσταση σύνδεσης, η οποία είναι ακριβώς παρέχεται από τον αρχειοθέτη. Αντίστοιχα, είναι δυνατό, εάν είναι απαραίτητο, να συνδυαστούν αυτές οι δύο τεχνολογίες.
Ένα σύμπλεγμα VPN Load-Balancing μπορεί να περιέχει περισσότερους από δύο κόμβους.
Το σύμπλεγμα εξισορρόπησης φορτίου VPN υποστηρίζεται σε ASA 5512-X και μεταγενέστερη έκδοση.
Δεδομένου ότι κάθε ASA στο σύμπλεγμα Load-Balancing VPN είναι μια ανεξάρτητη μονάδα όσον αφορά τις ρυθμίσεις, εκτελούμε όλα τα βήματα διαμόρφωσης ξεχωριστά σε κάθε μεμονωμένη συσκευή.
Αναπτύσσουμε στιγμιότυπα ASAv των προτύπων που χρειαζόμαστε (ASAv5/10/30/50) από την εικόνα.
Εκχωρούμε τις διεπαφές INSIDE / OUTSIDE στα ίδια VLAN (Outside στο δικό του VLAN, INSIDE στο δικό του, αλλά γενικά μέσα στο σύμπλεγμα, δείτε την τοπολογία), είναι σημαντικό οι διεπαφές του ίδιου τύπου να βρίσκονται στο ίδιο τμήμα L2.
Άδειες:
Προς το παρόν η εγκατάσταση του ASAv δεν θα έχει άδειες και θα περιορίζεται στα 100 kbps.
Για να εγκαταστήσετε μια άδεια, πρέπει να δημιουργήσετε ένα διακριτικό στον Smart-Account σας: https://software.cisco.com/ -> Έξυπνη άδεια χρήσης λογισμικού
Στο παράθυρο που ανοίγει, κάντε κλικ στο κουμπί Νέο Token
Βεβαιωθείτε ότι στο παράθυρο που ανοίγει υπάρχει ένα ενεργό πεδίο και είναι τσεκαρισμένο ένα σημάδι επιλογής Να επιτρέπεται η ελεγχόμενη από εξαγωγή λειτουργικότητα… Χωρίς αυτό το πεδίο ενεργό, δεν θα μπορείτε να χρησιμοποιήσετε τις λειτουργίες ισχυρής κρυπτογράφησης και, κατά συνέπεια, VPN. Εάν αυτό το πεδίο δεν είναι ενεργό, επικοινωνήστε με την ομάδα του λογαριασμού σας με ένα αίτημα ενεργοποίησης.
Αφού πατήσετε το κουμπί Δημιουργία διακριτικού, θα δημιουργηθεί ένα διακριτικό που θα χρησιμοποιήσουμε για να αποκτήσουμε άδεια χρήσης για το ASAv, αντιγράψτε το:
Επαναλάβετε τα βήματα C,D,E για κάθε αναπτυγμένο ASAv.
Για να διευκολυνθεί η αντιγραφή του διακριτικού, ας επιτρέψουμε προσωρινά το telnet. Ας διαμορφώσουμε κάθε ASA (το παρακάτω παράδειγμα απεικονίζει τις ρυθμίσεις στο ASA-1). Το telnet δεν λειτουργεί με το εξωτερικό, αν το χρειάζεστε πραγματικά, αλλάξτε το επίπεδο ασφαλείας σε 100 σε εξωτερικό και μετά επιστρέψτε το πίσω.
!
ciscoasa(config)# int gi0/0
ciscoasa(config)# nameif outside
ciscoasa(config)# ip address 192.168.31.30 255.255.255.0
ciscoasa(config)# no shut
!
ciscoasa(config)# int gi0/1
ciscoasa(config)# nameif inside
ciscoasa(config)# ip address 192.168.255.2 255.255.255.0
ciscoasa(config)# no shut
!
ciscoasa(config)# telnet 0 0 inside
ciscoasa(config)# username admin password cisco priv 15
ciscoasa(config)# ena password cisco
ciscoasa(config)# aaa authentication telnet console LOCAL
!
ciscoasa(config)# route outside 0 0 192.168.31.1
!
ciscoasa(config)# wr
!
Για να καταχωρίσετε ένα διακριτικό στο σύννεφο Smart-Account, πρέπει να παρέχετε πρόσβαση στο Διαδίκτυο για την ASA, λεπτομέρειες εδώ.
Εν ολίγοις, απαιτείται ASA:
πρόσβαση μέσω HTTPS στο Διαδίκτυο·
συγχρονισμός χρόνου (πιο σωστά, μέσω NTP).
εγγεγραμμένος διακομιστής DNS.
Κάνουμε telnet στο ASA μας και κάνουμε ρυθμίσεις για την ενεργοποίηση της άδειας μέσω του Smart-Account.
!
ciscoasa(config)# clock set 19:21:00 Mar 18 2020
ciscoasa(config)# clock timezone MSK 3
ciscoasa(config)# ntp server 192.168.99.136
!
ciscoasa(config)# dns domain-lookup outside
ciscoasa(config)# DNS server-group DefaultDNS
ciscoasa(config-dns-server-group)# name-server 192.168.99.132
!
! Проверим работу DNS:
!
ciscoasa(config-dns-server-group)# ping ya.ru
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 87.250.250.242, timeout is 2 seconds:
!!!!!
!
! Проверим синхронизацию NTP:
!
ciscoasa(config)# show ntp associations
address ref clock st when poll reach delay offset disp
*~192.168.99.136 91.189.94.4 3 63 64 1 36.7 1.85 17.5
* master (synced), # master (unsynced), + selected, - candidate, ~ configured
!
! Установим конфигурацию нашей ASAv для Smart-Licensing (в соответствии с Вашим профилем, в моем случае 100М для примера)
!
ciscoasa(config)# license smart
ciscoasa(config-smart-lic)# feature tier standard
ciscoasa(config-smart-lic)# throughput level 100M
!
! В случае необходимости можно настроить доступ в Интернет через прокси используйте следующий блок команд:
!call-home
! http-proxy ip_address port port
!
! Далее мы вставляем скопированный из портала Smart-Account токен (<token>) и регистрируем лицензию
!
ciscoasa(config)# end
ciscoasa# license smart register idtoken <token>
Ελέγχουμε ότι η συσκευή έχει καταχωρίσει επιτυχώς μια άδεια χρήσης και ότι υπάρχουν διαθέσιμες επιλογές κρυπτογράφησης:
Ρυθμίστε ένα βασικό SSL-VPN σε κάθε πύλη
Στη συνέχεια, διαμορφώστε την πρόσβαση μέσω SSH και ASDM:
ciscoasa(config)# ssh ver 2
ciscoasa(config)# aaa authentication ssh console LOCAL
ciscoasa(config)# aaa authentication http console LOCAL
ciscoasa(config)# hostname vpn-demo-1
vpn-demo-1(config)# domain-name ashes.cc
vpn-demo-1(config)# cry key gen rsa general-keys modulus 4096
vpn-demo-1(config)# ssh 0 0 inside
vpn-demo-1(config)# http 0 0 inside
!
! Поднимем сервер HTTPS для ASDM на порту 445 чтобы не пересекаться с SSL-VPN порталом
!
vpn-demo-1(config)# http server enable 445
!
Για να λειτουργήσει το ASDM, πρέπει πρώτα να το κατεβάσετε από τον ιστότοπο cisco.com, στην περίπτωσή μου είναι το ακόλουθο αρχείο:
Για να λειτουργήσει ο υπολογιστής-πελάτης AnyConnect, πρέπει να ανεβάσετε μια εικόνα σε κάθε ASA για κάθε λειτουργικό σύστημα πελάτη επιτραπέζιου υπολογιστή που χρησιμοποιείται (προγραμματίζεται για χρήση Linux / Windows / MAC), θα χρειαστείτε ένα αρχείο με Πακέτο ανάπτυξης Headend Στον τίτλο:
Τα ληφθέντα αρχεία μπορούν να μεταφορτωθούν, για παράδειγμα, σε έναν διακομιστή FTP και να φορτωθούν σε κάθε μεμονωμένο ASA:
Διαμορφώνουμε το πιστοποιητικό ASDM και Self-Signed για SSL-VPN (συνιστάται η χρήση ενός αξιόπιστου πιστοποιητικού στην παραγωγή). Το σύνολο FQDN της Διεύθυνσης Virtual Cluster (vpn-demo.ashes.cc), καθώς και κάθε FQDN που σχετίζεται με την εξωτερική διεύθυνση κάθε κόμβου συμπλέγματος, πρέπει να επιλύεται στην εξωτερική ζώνη DNS στη διεύθυνση IP της διεπαφής OUTSIDE (ή στην αντιστοιχισμένη διεύθυνση εάν χρησιμοποιείται η προώθηση θύρας udp/443 (DTLS) και tcp/443(TLS)). Λεπτομερείς πληροφορίες σχετικά με τις απαιτήσεις για το πιστοποιητικό καθορίζονται στην ενότητα Έλεγχος Πιστοποιητικού τεκμηρίωση.
!
vpn-demo-1(config)# crypto ca trustpoint SELF
vpn-demo-1(config-ca-trustpoint)# enrollment self
vpn-demo-1(config-ca-trustpoint)# fqdn vpn-demo.ashes.cc
vpn-demo-1(config-ca-trustpoint)# subject-name cn=*.ashes.cc, ou=ashes-lab, o=ashes, c=ru
vpn-demo-1(config-ca-trustpoint)# serial-number
vpn-demo-1(config-ca-trustpoint)# crl configure
vpn-demo-1(config-ca-crl)# cry ca enroll SELF
% The fully-qualified domain name in the certificate will be: vpn-demo.ashes.cc
Generate Self-Signed Certificate? [yes/no]: yes
vpn-demo-1(config)#
!
vpn-demo-1(config)# sh cry ca certificates
Certificate
Status: Available
Certificate Serial Number: 4d43725e
Certificate Usage: General Purpose
Public Key Type: RSA (4096 bits)
Signature Algorithm: SHA256 with RSA Encryption
Issuer Name:
serialNumber=9A439T02F95
hostname=vpn-demo.ashes.cc
cn=*.ashes.cc
ou=ashes-lab
o=ashes
c=ru
Subject Name:
serialNumber=9A439T02F95
hostname=vpn-demo.ashes.cc
cn=*.ashes.cc
ou=ashes-lab
o=ashes
c=ru
Validity Date:
start date: 00:16:17 MSK Mar 19 2020
end date: 00:16:17 MSK Mar 17 2030
Storage: config
Associated Trustpoints: SELF
CA Certificate
Status: Available
Certificate Serial Number: 0509
Certificate Usage: General Purpose
Public Key Type: RSA (4096 bits)
Signature Algorithm: SHA1 with RSA Encryption
Issuer Name:
cn=QuoVadis Root CA 2
o=QuoVadis Limited
c=BM
Subject Name:
cn=QuoVadis Root CA 2
o=QuoVadis Limited
c=BM
Validity Date:
start date: 21:27:00 MSK Nov 24 2006
end date: 21:23:33 MSK Nov 24 2031
Storage: config
Associated Trustpoints: _SmartCallHome_ServerCA
Μην ξεχάσετε να καθορίσετε τη θύρα για να ελέγξετε ότι το ASDM λειτουργεί, για παράδειγμα:
Ας πραγματοποιήσουμε τις βασικές ρυθμίσεις του τούνελ:
Ας κάνουμε το εταιρικό δίκτυο διαθέσιμο μέσω της σήραγγας και ας αφήσουμε το Διαδίκτυο απευθείας (όχι η ασφαλέστερη μέθοδος, εάν δεν υπάρχουν προστασίες στον συνδεδεμένο κεντρικό υπολογιστή, είναι δυνατή η διείσδυση μέσω ενός μολυσμένου κεντρικού υπολογιστή και η εμφάνιση εταιρικών δεδομένων, επιλογή split-tunnel-policy tunnelall θα αφήσει όλη την κίνηση υποδοχής στη σήραγγα. παρ 'όλα αυτά διάσπαση-σήραγγα καθιστά δυνατή τη μεταφόρτωση της πύλης VPN και τη μη επεξεργασία της κίνησης στο Διαδίκτυο του κεντρικού υπολογιστή)
Ας εκδώσουμε διευθύνσεις από το υποδίκτυο 192.168.20.0/24 σε κεντρικούς υπολογιστές στο τούνελ (ομάδα από 10 έως 30 διευθύνσεις (για τον κόμβο #1)). Κάθε κόμβος του συμπλέγματος VPN πρέπει να έχει τη δική του πισίνα.
Θα πραγματοποιήσουμε βασικό έλεγχο ταυτότητας με έναν τοπικά δημιουργημένο χρήστη στο ASA (Αυτή δεν συνιστάται, αυτή είναι η πιο εύκολη μέθοδος), είναι καλύτερο να γίνει έλεγχος ταυτότητας μέσω LDAP/RADIUS, ή καλύτερα, γραβάτα Έλεγχος ταυτότητας πολλαπλών παραγόντων (MFA), Π.χ. Cisco DUO.
(ΠΡΟΑΙΡΕΤΙΚΟΣ): Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε έναν τοπικό χρήστη στο ITU για τον έλεγχο ταυτότητας απομακρυσμένων χρηστών, κάτι που φυσικά, εκτός από το εργαστήριο, είναι ελάχιστα εφαρμόσιμο. Θα δώσω ένα παράδειγμα για το πώς να προσαρμόσετε γρήγορα τη ρύθμιση για έλεγχο ταυτότητας ΑΚΤΙΝΑ ΚΥΚΛΟΥ διακομιστή, που χρησιμοποιείται ως παράδειγμα Cisco Identity Services Engine:
Αυτή η ενοποίηση κατέστησε δυνατή όχι μόνο τη γρήγορη ενσωμάτωση της διαδικασίας ελέγχου ταυτότητας με την υπηρεσία καταλόγου AD, αλλά και τη διάκριση αν ο συνδεδεμένος υπολογιστής ανήκει στην AD, την κατανόηση εάν αυτή η συσκευή είναι εταιρική ή προσωπική και η αξιολόγηση της κατάστασης της συνδεδεμένης συσκευής .
Ας διαμορφώσουμε το Transparent NAT έτσι ώστε η κίνηση μεταξύ του πελάτη και των πόρων του εταιρικού δικτύου δικτύου να μην είναι γραμμένη:
vpn-demo-1(config-network-object)# subnet 192.168.20.0 255.255.255.0
!
vpn-demo-1(config)# nat (inside,outside) source static any any destination static vpn-users vpn-users no-proxy-arp
(ΠΡΟΑΙΡΕΤΙΚΟΣ): Προκειμένου να εκθέσουμε τους πελάτες μας στο Διαδίκτυο μέσω του ASA (κατά τη χρήση τούνελ επιλογές) χρησιμοποιώντας PAT, καθώς και για έξοδο από την ίδια διεπαφή ΕΞΩΤΕΡΙΚΗ από την οποία συνδέονται, πρέπει να κάνετε τις ακόλουθες ρυθμίσεις
Όταν χρησιμοποιείτε ένα σύμπλεγμα, είναι εξαιρετικά σημαντικό να δίνετε τη δυνατότητα στο εσωτερικό δίκτυο να κατανοεί ποιο ASA θα δρομολογεί την επιστρεφόμενη κυκλοφορία στους χρήστες, για αυτό πρέπει να αναδιανείμετε διαδρομές / 32 διευθύνσεις που έχουν εκδοθεί σε πελάτες.
Προς το παρόν, δεν έχουμε διαμορφώσει ακόμη το σύμπλεγμα, αλλά έχουμε ήδη πύλες VPN που λειτουργούν που μπορούν να συνδεθούν μεμονωμένα μέσω FQDN ή IP.
Βλέπουμε τον συνδεδεμένο πελάτη στον πίνακα δρομολόγησης του πρώτου ASA:
Προκειμένου ολόκληρο το σύμπλεγμα VPN και ολόκληρο το εταιρικό μας δίκτυο να γνωρίζει τη διαδρομή προς τον πελάτη μας, θα αναδιανείμουμε το πρόθεμα πελάτη σε ένα δυναμικό πρωτόκολλο δρομολόγησης, για παράδειγμα OSPF:
Τώρα έχουμε μια διαδρομή προς τον πελάτη από τη δεύτερη πύλη ASA-2 και οι χρήστες που είναι συνδεδεμένοι σε διαφορετικές πύλες VPN εντός του συμπλέγματος μπορούν, για παράδειγμα, να επικοινωνούν απευθείας μέσω ενός εταιρικού softphone, καθώς και να επιστρέφουν κίνηση από τους πόρους που ζητά ο χρήστης. ελάτε στην επιθυμητή πύλη VPN:
Ας προχωρήσουμε στη διαμόρφωση του συμπλέγματος Load-Balancing.
Η διεύθυνση 192.168.31.40 θα χρησιμοποιηθεί ως Virtual IP (VIP - όλοι οι πελάτες VPN θα συνδεθούν αρχικά σε αυτήν), από αυτή τη διεύθυνση το Master cluster θα κάνει μια REDIRECT σε έναν λιγότερο φορτωμένο κόμβο συμπλέγματος. Μην ξεχάσετε να γράψετε εγγραφή DNS προς τα εμπρός και προς τα πίσω τόσο για κάθε εξωτερική διεύθυνση / FQDN κάθε κόμβου του συμπλέγματος, όσο και για VIP.
Ελέγχουμε τη λειτουργία του συμπλέγματος με δύο συνδεδεμένους πελάτες:
Ας κάνουμε την εμπειρία του πελάτη πιο βολική με το αυτόματα φορτωμένο προφίλ AnyConnect μέσω ASDM.
Ονομάζουμε το προφίλ με βολικό τρόπο και συσχετίζουμε την πολιτική της ομάδας μας με αυτό:
Μετά την επόμενη σύνδεση του προγράμματος-πελάτη, αυτό το προφίλ θα ληφθεί αυτόματα και θα εγκατασταθεί στον υπολογιστή-πελάτη AnyConnect, οπότε εάν θέλετε να συνδεθείτε, απλώς επιλέξτε το από τη λίστα:
Εφόσον δημιουργήσαμε αυτό το προφίλ μόνο σε ένα ASA χρησιμοποιώντας ASDM, μην ξεχάσετε να επαναλάβετε τα βήματα για τα άλλα ASA του συμπλέγματος.
Συμπέρασμα: Έτσι, αναπτύξαμε γρήγορα ένα σύμπλεγμα από πολλές πύλες VPN με αυτόματη εξισορρόπηση φορτίου. Η προσθήκη νέων κόμβων στο σύμπλεγμα είναι εύκολη, με απλή οριζόντια κλιμάκωση με την ανάπτυξη νέων εικονικών μηχανών ASAv ή με τη χρήση ASA υλικού. Ο πλούσιος σε δυνατότητες πελάτη AnyConnect μπορεί να βελτιώσει σημαντικά την ασφαλή απομακρυσμένη σύνδεση χρησιμοποιώντας το Στάση (εκτιμήσεις κατάστασης), που χρησιμοποιείται πιο αποτελεσματικά σε συνδυασμό με το σύστημα κεντρικού ελέγχου και λογιστικής πρόσβασης Μηχανή υπηρεσιών ταυτότητας.