I denne artikkelen vil jeg gjerne gi trinnvise instruksjoner om hvordan du raskt kan distribuere den mest skalerbare ordningen for øyeblikket. Fjerntilgang VPN tilgang basert AnyConnect og Cisco ASA - VPN Load Balancing Cluster.
Introduksjon: Mange selskaper rundt om i verden, i lys av den nåværende situasjonen med COVID-19, gjør en innsats for å overføre sine ansatte til fjernarbeid. På grunn av masseovergangen til eksternt arbeid, øker belastningen på eksisterende VPN-gatewayer til selskaper kritisk, og det kreves en veldig rask evne til å skalere dem. På den annen side er mange bedrifter tvunget til i all hast å mestre konseptet med fjernarbeid fra bunnen av.
Jeg har utarbeidet en trinn-for-trinn-guide for en enkel distribusjon av VPN Load-Balancing Cluster som den mest skalerbare VPN-teknologien.
Eksemplet nedenfor vil være ganske enkelt med tanke på autentiserings- og autorisasjonsalgoritmene som brukes, men vil være et godt alternativ for en rask start (som foreløpig ikke er nok for mange) med mulighet for dybdetilpasning til dine behov under utrullingen prosess.
Kort informasjon: VPN Load Balancing Cluster-teknologi er ikke en failover og ikke en klyngefunksjon i sin opprinnelige forstand, denne teknologien kan kombinere helt forskjellige ASA-modeller (med visse begrensninger) for å lastebalanse VPN-tilkoblinger med ekstern tilgang. Det er ingen synkronisering av økter og konfigurasjoner mellom nodene til en slik klynge, men det er mulig å automatisk lastebalanse VPN-tilkoblinger og sikre feiltoleranse for VPN-tilkoblinger inntil minst én aktiv node forblir i klyngen. Belastningen i klyngen balanseres automatisk avhengig av arbeidsbelastningen til nodene med antall VPN-økter.
For failover av spesifikke noder i klyngen (hvis nødvendig), kan en filer brukes, slik at den aktive forbindelsen vil bli håndtert av den primære noden til filen. Fileoveren er ikke en nødvendig betingelse for å sikre feiltoleranse innenfor Load-Balancing-klyngen, klyngen selv, ved en nodefeil, vil overføre brukersesjonen til en annen live node, men uten å lagre tilkoblingsstatusen, som er nøyaktig levert av filialen. Følgelig er det mulig, om nødvendig, å kombinere disse to teknologiene.
En VPN Load-Balancing-klynge kan inneholde mer enn to noder.
VPN Load-Balancing Cluster støttes på ASA 5512-X og nyere.
Siden hver ASA innenfor VPN Load-Balancing-klyngen er en uavhengig enhet når det gjelder innstillinger, utfører vi alle konfigurasjonstrinn individuelt på hver enkelt enhet.
Vi distribuerer ASAv-forekomster av malene vi trenger (ASAv5/10/30/50) fra bildet.
Vi tildeler INSIDE / OUTSIDE-grensesnittene til de samme VLAN-ene (Utenfor i sitt eget VLAN, INSIDE i sitt eget, men generelt innenfor klyngen, se topologien), er det viktig at grensesnitt av samme type er i samme L2-segment.
Lisenser:
For øyeblikket vil ASAv-installasjonen ikke ha noen lisenser og vil være begrenset til 100 kbps.
For å installere en lisens må du generere et token på Smart-kontoen din: https://software.cisco.com/ -> Smart programvarelisensiering
Klikk på knappen i vinduet som åpnes Ny token
Sørg for at det er et aktivt felt i vinduet som åpnes og at det er krysset av Tillat eksportkontrollert funksjonalitet… Uten dette feltet aktivt, vil du ikke kunne bruke funksjonene til sterk kryptering og følgelig VPN. Hvis dette feltet ikke er aktivt, vennligst kontakt kontoteamet ditt med en aktiveringsforespørsel.
Etter å ha trykket på knappen Lag Token, vil det opprettes et token som vi vil bruke for å få en lisens for ASAv, kopier det:
Gjenta trinn C,D,E for hver utplasserte ASAv.
For å gjøre det enklere å kopiere tokenet, la oss midlertidig tillate telnet. La oss konfigurere hver ASA (eksemplet nedenfor illustrerer innstillingene på ASA-1). telnet fungerer ikke med utenfor, hvis du virkelig trenger det, endre sikkerhetsnivået til 100 til utenfor, og returner det deretter tilbake.
!
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
!
For å registrere et token i Smart-Account-skyen, må du gi Internett-tilgang for ASA, detaljer her.
Kort sagt, ASA er nødvendig:
tilgang via HTTPS til Internett;
tidssynkronisering (mer korrekt, via NTP);
registrert DNS-server;
Vi telnet til vårt ASA og gjør innstillinger for å aktivere lisensen gjennom 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>
Vi sjekker at enheten har registrert en lisens og krypteringsalternativer er tilgjengelige:
Sett opp en grunnleggende SSL-VPN på hver gateway
Deretter konfigurerer du tilgang via SSH og 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
!
For at ASDM skal fungere, må du først laste det ned fra nettstedet cisco.com, i mitt tilfelle er det følgende fil:
For at AnyConnect-klienten skal fungere, må du laste opp et bilde til hver ASA for hvert brukt klientoperativsystem (planlagt å bruke Linux / Windows / MAC), du trenger en fil med Headend-implementeringspakke I tittelen:
De nedlastede filene kan for eksempel lastes opp til en FTP-server og lastes opp til hver enkelt ASA:
Vi konfigurerer ASDM og selvsignert sertifikat for SSL-VPN (det anbefales å bruke et klarert sertifikat i produksjon). Den angitte FQDN for den virtuelle klyngeadressen (vpn-demo.ashes.cc), så vel som hver FQDN knyttet til den eksterne adressen til hver klyngennode, må løses i den eksterne DNS-sonen til IP-adressen til OUTSIDE-grensesnittet (eller til den tilordnede adressen hvis portvideresending udp/443 brukes (DTLS) og tcp/443(TLS)). Detaljert informasjon om kravene til sertifikatet er spesifisert i avsnittet Sertifikatbekreftelse dokumentasjon.
!
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
Ikke glem å spesifisere porten for å sjekke at ASDM fungerer, for eksempel:
La oss utføre de grunnleggende innstillingene for tunnelen:
La oss gjøre bedriftsnettverket tilgjengelig gjennom tunnelen, og la Internett gå direkte (ikke den sikreste metoden hvis det ikke er noen beskyttelse på den tilkoblede verten, det er mulig å trenge gjennom en infisert vert og vise bedriftsdata, alternativ split-tunnel-policy tunnelall vil slippe all vertstrafikk inn i tunnelen. Likevel delt tunnel gjør det mulig å avlaste VPN-gatewayen og ikke behandle vertsinternetttrafikk)
La oss utstede adresser fra 192.168.20.0/24-undernettet til verter i tunnelen (pool fra 10 til 30 adresser (for node #1)). Hver node i VPN-klyngen må ha sin egen pool.
Vi vil utføre grunnleggende autentisering med en lokalt opprettet bruker på ASA (Dette anbefales ikke, dette er den enkleste metoden), det er bedre å gjøre autentisering gjennom LDAP/RADIUS, eller enda bedre, slips Multifaktorautentisering (MFA)eksempel Cisco DUO.
(VALGFRI): I eksemplet ovenfor brukte vi en lokal bruker på ITU for å autentisere eksterne brukere, noe som selvfølgelig, bortsett fra i laboratoriet, er dårlig anvendelig. Jeg vil gi et eksempel på hvordan du raskt kan tilpasse innstillingen for autentisering til RADIUS server, for eksempel brukt Cisco Identity Services Engine:
Denne integrasjonen gjorde det mulig ikke bare raskt å integrere autentiseringsprosedyren med AD-katalogtjenesten, men også å skille om den tilkoblede datamaskinen tilhører AD, for å forstå om denne enheten er bedrifts- eller personlig, og å vurdere statusen til den tilkoblede enheten .
La oss konfigurere Transparent NAT slik at trafikken mellom klienten og ressursene til bedriftens nettverksnettverk ikke er skrevet:
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
(VALGFRI): For å eksponere våre kunder for Internett gjennom ASA (ved bruk tunnelall alternativer) ved å bruke PAT, samt gå ut gjennom det samme OUTSIDE-grensesnittet som de er koblet til, må du gjøre følgende innstillinger
Ved bruk av en klynge er det ekstremt viktig å gjøre det interne nettverket i stand til å forstå hvilken ASA som skal rute returtrafikk til brukere, for dette må du omfordele ruter / 32 adresser utstedt til klienter.
For øyeblikket har vi ikke konfigurert klyngen ennå, men vi har allerede fungerende VPN-gatewayer som kan kobles individuelt via FQDN eller IP.
Vi ser den tilkoblede klienten i rutetabellen til den første ASA:
For at hele VPN-klyngen og hele bedriftsnettverket skal kjenne ruten til klienten vår, vil vi omdistribuere klientprefikset til en dynamisk rutingprotokoll, for eksempel OSPF:
Nå har vi en rute til klienten fra den andre ASA-2-gatewayen, og brukere koblet til forskjellige VPN-gatewayer i klyngen kan for eksempel kommunisere direkte gjennom en bedrifts softphone, samt returnere trafikk fra ressursene som brukeren ber om. kom til ønsket VPN-gateway:
La oss gå videre til å konfigurere Load-Balancing-klyngen.
Adressen 192.168.31.40 vil bli brukt som en virtuell IP (VIP - alle VPN-klienter vil i utgangspunktet koble seg til den), fra denne adressen vil Master-klyngen gjøre en OMDIREKTERING til en mindre belastet klyngennode. Ikke glem å skrive frem og tilbake DNS-post både for hver ekstern adresse / FQDN for hver node i klyngen, og for VIP.
Vi sjekker driften av klyngen med to tilkoblede klienter:
La oss gjøre kundeopplevelsen mer praktisk med den automatisk lastede AnyConnect-profilen via ASDM.
Vi navngir profilen på en praktisk måte og knytter vår gruppepolicy til den:
Etter neste tilkobling av klienten, vil denne profilen automatisk lastes ned og installeres i AnyConnect-klienten, så hvis du trenger å koble til, velg den fra listen:
Siden vi opprettet denne profilen på bare én ASA ved bruk av ASDM, ikke glem å gjenta trinnene på de andre ASA-ene i klyngen.
Konklusjon: Dermed implementerte vi raskt en klynge av flere VPN-gatewayer med automatisk lastbalansering. Det er enkelt å legge til nye noder til klyngen, med enkel horisontal skalering ved å distribuere nye virtuelle ASAv-maskiner eller bruke maskinvare-ASA-er. Den funksjonsrike AnyConnect-klienten kan i stor grad forbedre sikker ekstern tilkobling ved å bruke Holdning (statlige estimater), mest effektivt brukt i forbindelse med systemet med sentralisert kontroll og tilgangsregnskap Identitetstjenestemotor.