Implementering af en ASA VPN Load-Balancing Cluster
I denne artikel vil jeg gerne give trin-for-trin instruktioner om, hvordan du hurtigt kan implementere den mest skalerbare ordning i øjeblikket. Fjernadgang VPN adgangsbaseret AnyConnect og Cisco ASA - VPN Load Balancing Cluster.
Introduktion: Mange virksomheder rundt om i verden gør i lyset af den aktuelle situation med COVID-19 en indsats for at overføre deres medarbejdere til fjernarbejde. På grund af masseovergangen til fjernarbejde er belastningen på virksomheders eksisterende VPN-gateways kritisk stigende, og en meget hurtig evne til at skalere dem er påkrævet. På den anden side er mange virksomheder tvunget til hastigt at mestre konceptet med fjernarbejde fra bunden.
Jeg har udarbejdet en trin-for-trin guide til en simpel implementering af VPN Load-Balancing Cluster som den mest skalerbare VPN-teknologi.
Eksemplet nedenfor vil være ganske enkelt i forhold til de anvendte autentificerings- og autorisationsalgoritmer, men vil være en god mulighed for en hurtig start (hvilket i øjeblikket ikke er nok for mange) med mulighed for dybdegående tilpasning til dine behov under udrulningen behandle.
Kort information: VPN Load Balancing Cluster-teknologi er ikke en failover og ikke en klyngefunktion i dens oprindelige forstand, denne teknologi kan kombinere helt forskellige ASA-modeller (med visse begrænsninger) for at belaste Remote-Access VPN-forbindelser. Der er ingen synkronisering af sessioner og konfigurationer mellem noderne i en sådan klynge, men det er muligt automatisk at indlæse VPN-forbindelser og sikre fejltolerance af VPN-forbindelser, indtil mindst én aktiv node forbliver i klyngen. Belastningen i klyngen afbalanceres automatisk afhængigt af nodernes arbejdsbelastning med antallet af VPN-sessioner.
Til failover af specifikke noder i klyngen (hvis påkrævet), kan en filer bruges, så den aktive forbindelse vil blive håndteret af den primære node for filerne. Fileoveren er ikke en nødvendig betingelse for at sikre fejltolerance inden for Load-Balancing klyngen, klyngen selv vil i tilfælde af en nodefejl overføre brugersessionen til en anden live node, men uden at gemme forbindelsesstatus, som er præcis stillet til rådighed af filialen. Det er derfor muligt, om nødvendigt, at kombinere disse to teknologier.
En VPN Load-Balancing-klynge kan indeholde mere end to noder.
VPN Load-Balancing Cluster understøttes på ASA 5512-X og nyere.
Da hver ASA inden for VPN Load-Balancing-klyngen er en selvstændig enhed med hensyn til indstillinger, udfører vi alle konfigurationstrin individuelt på hver enkelt enhed.
Vi implementerer ASAv-forekomster af de skabeloner, vi har brug for (ASAv5/10/30/50) fra billedet.
Vi tildeler INSIDE / OUTSIDE interfaces til de samme VLAN'er (Udenfor i sit eget VLAN, INSIDE i sit eget, men generelt indenfor klyngen, se topologien), er det vigtigt, at interfaces af samme type er i samme L2 segment.
Licenser:
I øjeblikket vil ASAv-installationen ikke have nogen licenser og vil være begrænset til 100 kbps.
For at installere en licens skal du generere et token på din Smart-konto: https://software.cisco.com/ -> Smart Software Licensering
Klik på knappen i det vindue, der åbnes Ny token
Sørg for, at der i vinduet, der åbnes, er et aktivt felt, og at et flueben er markeret Tillad eksportkontrolleret funktionalitet… Uden dette felt aktivt, vil du ikke være i stand til at bruge funktionerne stærk kryptering og dermed VPN. Hvis dette felt ikke er aktivt, bedes du kontakte dit kontoteam med en aktiveringsanmodning.
Efter at have trykket på knappen Opret token, vil der blive oprettet et token, som vi vil bruge til at få en licens til ASAv, kopier det:
Gentag trin C,D,E for hver installeret ASAv.
For at gøre det nemmere at kopiere tokenet, lad os midlertidigt tillade telnet. Lad os konfigurere hver ASA (eksemplet nedenfor illustrerer indstillingerne på ASA-1). telnet fungerer ikke udenfor, hvis du virkelig har brug for det, skal du ændre sikkerhedsniveauet til 100 til eksternt, og derefter returnere det.
!
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 at registrere et token i Smart-Account-skyen skal du give internetadgang til ASA, detaljer her.
Kort sagt, ASA er nødvendig:
adgang via HTTPS til internettet;
tidssynkronisering (mere korrekt, via NTP);
registreret DNS-server;
Vi telnet til vores ASA og foretager indstillinger for at aktivere licensen gennem 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 kontrollerer, at enheden har registreret en licens, og krypteringsmuligheder er tilgængelige:
Konfigurer en grundlæggende SSL-VPN på hver gateway
Konfigurer derefter adgang 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 virke, skal du først downloade det fra cisco.com hjemmesiden, i mit tilfælde er det følgende fil:
For at AnyConnect-klienten skal fungere, skal du uploade et billede til hver ASA for hvert brugt klient desktop-operativsystem (planlagt at bruge Linux / Windows / MAC), du skal bruge en fil med Headend-implementeringspakke I titlen:
De downloadede filer kan f.eks. uploades til en FTP-server og uploades til hver enkelt ASA:
Vi konfigurerer ASDM og Self-Signed certifikat til SSL-VPN (det anbefales at bruge et betroet certifikat i produktionen). Det indstillede FQDN for den virtuelle klyngeadresse (vpn-demo.ashes.cc) såvel som hver FQDN, der er knyttet til den eksterne adresse på hver klyngenode, skal løses i den eksterne DNS-zone til IP-adressen for OUTSIDE-grænsefladen (eller til den tilknyttede adresse, hvis portvideresendelse udp/443 bruges (DTLS) og tcp/443(TLS)). Detaljerede oplysninger om kravene til certifikatet er specificeret i afsnittet Certifikatbekræftelse dokumentation.
!
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
Glem ikke at angive porten for at kontrollere, at ASDM fungerer, for eksempel:
Lad os udføre de grundlæggende indstillinger af tunnelen:
Lad os gøre virksomhedens netværk tilgængeligt gennem tunnelen, og lade internettet gå direkte (ikke den sikreste metode, hvis der ikke er nogen beskyttelse på den tilsluttende vært, det er muligt at trænge igennem en inficeret vært og vise virksomhedsdata, mulighed split-tunnel-policy tunnelall vil lade al værtstrafik komme ind i tunnelen. alligevel split-tunnel gør det muligt at aflæse VPN-gatewayen og ikke behandle værtens internettrafik)
Lad os udstede adresser fra 192.168.20.0/24-undernettet til værter i tunnelen (pulje fra 10 til 30 adresser (for node #1)). Hver node i VPN-klyngen skal have sin egen pulje.
Vi vil udføre grundlæggende godkendelse med en lokalt oprettet bruger på ASA (dette anbefales ikke, dette er den nemmeste metode), det er bedre at udføre godkendelse gennem LDAP/RADIUS, eller endnu bedre, slips Multifaktorautentificering (MFA)Fx Cisco DUO.
(VALGFRI): I ovenstående eksempel brugte vi en lokal bruger på ITU'en til at godkende fjernbrugere, hvilket naturligvis, undtagen i laboratoriet, er dårligt anvendeligt. Jeg vil give et eksempel på, hvordan man hurtigt tilpasser indstillingen for autentificering til RADIUS server, for eksempel brugt Cisco Identity Services Engine:
Denne integration gjorde det muligt ikke kun hurtigt at integrere godkendelsesproceduren med AD-katalogtjenesten, men også at skelne, om den tilsluttede computer tilhører AD, at forstå, om denne enhed er firma- eller personlig, og at vurdere status for den tilsluttede enhed .
Lad os konfigurere Transparent NAT, så trafikken mellem klienten og ressourcerne på virksomhedens netværksnetværk 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 at eksponere vores kunder for internettet gennem ASA (når du bruger tunnel muligheder) ved at bruge PAT, samt afslutte gennem den samme OUTSIDE-grænseflade, som de er forbundet fra, skal du foretage følgende indstillinger
Når du bruger en klynge, er det ekstremt vigtigt at sætte det interne netværk i stand til at forstå, hvilken ASA der skal dirigere returtrafik til brugerne, for dette skal du omfordele ruter / 32 adresser udstedt til klienter.
I øjeblikket har vi endnu ikke konfigureret klyngen, men vi har allerede fungerende VPN-gateways, der kan forbindes individuelt via FQDN eller IP.
Vi ser den tilsluttede klient i routingtabellen for den første ASA:
For at hele vores VPN-klynge og hele virksomhedens netværk kan kende ruten til vores klient, vil vi omfordele klientpræfikset til en dynamisk routingprotokol, for eksempel OSPF:
Nu har vi en rute til klienten fra den anden ASA-2-gateway, og brugere, der er tilsluttet forskellige VPN-gateways i klyngen, kan f.eks. kommunikere direkte gennem en virksomheds softphone, samt returnere trafik fra de ressourcer, som brugeren anmoder om. kom til den ønskede VPN-gateway:
Lad os gå videre til at konfigurere Load-Balancing-klyngen.
Adressen 192.168.31.40 vil blive brugt som en virtuel IP (VIP - alle VPN-klienter vil i første omgang oprette forbindelse til den), fra denne adresse vil Master-klyngen lave en OMDIREKTERING til en mindre belastet klyngenode. Glem ikke at skrive frem og tilbage DNS-record både for hver ekstern adresse / FQDN for hver node i klyngen og for VIP.
Vi kontrollerer driften af klyngen med to tilsluttede klienter:
Lad os gøre kundeoplevelsen mere bekvem med den automatisk indlæste AnyConnect-profil via ASDM.
Vi navngiver profilen på en bekvem måde og forbinder vores gruppepolitik med den:
Efter den næste tilslutning af klienten vil denne profil automatisk blive downloadet og installeret i AnyConnect-klienten, så hvis du skal oprette forbindelse, skal du blot vælge den fra listen:
Da vi kun oprettede denne profil på én ASA ved hjælp af ASDM, glem ikke at gentage trinene på de andre ASA'er i klyngen.
Konklusion: Således implementerede vi hurtigt en klynge af flere VPN-gateways med automatisk belastningsbalancering. Det er nemt at tilføje nye noder til klyngen med simpel vandret skalering ved at implementere nye virtuelle ASAv-maskiner eller bruge hardware-ASA'er. Den funktionsrige AnyConnect-klient kan i høj grad forbedre sikker fjernforbindelse ved at bruge Holdning (statlige skøn), mest effektivt brugt i forbindelse med systemet med centraliseret kontrol og adgangsregnskab Identity Services Engine.