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.

For at hjælpe virksomheder med at opnå bekvem, sikker og skalerbar VPN-adgang for medarbejdere på kortest mulig tid, licenserer Cisco den funktionsrige SSL VPN-klient AnyConnect i op til 13 uger. Du kan også tage ASAv til en test (Virtual ASA for VMWare/Hyper-V/KVM hypervisorer og AWS/Azure cloud platforme) fra autoriserede partnere eller ved at kontakte Cisco-repræsentanter, der arbejder med dig.

Proceduren for udstedelse af AnyConnect COVID-19-licenser er beskrevet her.

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.

Tekniske detaljer her

Den logiske topologi i det givne eksempel:

Implementering af en ASA VPN Load-Balancing Cluster

Primær implementering:

  1. Vi implementerer ASAv-forekomster af de skabeloner, vi har brug for (ASAv5/10/30/50) fra billedet.

  2. 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.

  3. 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

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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.

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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:

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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:

    Implementering af en ASA VPN Load-Balancing Cluster

    Implementering af en ASA VPN Load-Balancing Cluster

  4. 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:

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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:

    Implementering af en ASA VPN Load-Balancing Cluster

    • De downloadede filer kan f.eks. uploades til en FTP-server og uploades til hver enkelt ASA:

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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:

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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.

    !
    vpn-demo-1(config)# ip local pool vpn-pool 192.168.20.10-192.168.20.30 mask 255.255.255.0
    !
    vpn-demo-1(config)# access-list split-tunnel standard permit 192.168.0.0 255.255.0.0
    !
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY internal
    vpn-demo-1(config)# group-policy SSL-VPN-GROUP-POLICY attributes
    vpn-demo-1(config-group-policy)# vpn-tunnel-protocol ssl-client 
    vpn-demo-1(config-group-policy)# split-tunnel-policy tunnelspecified
    vpn-demo-1(config-group-policy)# split-tunnel-network-list value split-tunnel
    vpn-demo-1(config-group-policy)# dns-server value 192.168.99.132
    vpn-demo-1(config-group-policy)# default-domain value ashes.cc
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)#  default-group-policy SSL-VPN-GROUP-POLICY
    vpn-demo-1(config-tunnel-general)#  address-pool vpn-pool
    !
    vpn-demo-1(config)# username dkazakov password cisco
    vpn-demo-1(config)# username dkazakov attributes
    vpn-demo-1(config-username)# service-type remote-access
    !
    vpn-demo-1(config)# ssl trust-point SELF
    vpn-demo-1(config)# webvpn
    vpn-demo-1(config-webvpn)#  enable outside
    vpn-demo-1(config-webvpn)#  anyconnect image disk0:/anyconnect-win-4.8.03036-webdeploy-k9.pkg
    vpn-demo-1(config-webvpn)#  anyconnect enable
    !

    • (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:

    vpn-demo-1(config-aaa-server-group)# dynamic-authorization
    vpn-demo-1(config-aaa-server-group)# interim-accounting-update
    vpn-demo-1(config-aaa-server-group)# aaa-server RADIUS (outside) host 192.168.99.134
    vpn-demo-1(config-aaa-server-host)# key cisco
    vpn-demo-1(config-aaa-server-host)# exit
    vpn-demo-1(config)# tunnel-group DefaultWEBVPNGroup general-attributes
    vpn-demo-1(config-tunnel-general)# authentication-server-group  RADIUS 
    !

    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 .

    Implementering af en ASA VPN Load-Balancing Cluster

    Implementering af en ASA VPN Load-Balancing Cluster

    • 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

    vpn-demo-1(config-network-object)# nat (outside,outside) source dynamic vpn-users interface
    vpn-demo-1(config)# nat (inside,outside) source dynamic any interface
    vpn-demo-1(config)# same-security-traffic permit intra-interface 
    !

    • 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.

    Implementering af en ASA VPN Load-Balancing Cluster

    Vi ser den tilsluttede klient i routingtabellen for den første ASA:

    Implementering af en ASA VPN Load-Balancing Cluster

    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:

    !
    vpn-demo-1(config)# route-map RMAP-VPN-REDISTRIBUTE permit 1
    vpn-demo-1(config-route-map)#  match ip address VPN-REDISTRIBUTE
    !
    vpn-demo-1(config)# router ospf 1
    vpn-demo-1(config-router)#  network 192.168.255.0 255.255.255.0 area 0
    vpn-demo-1(config-router)#  log-adj-changes
    vpn-demo-1(config-router)#  redistribute static metric 5000 subnets route-map RMAP-VPN-REDISTRIBUTE

    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:

    Implementering af en ASA VPN Load-Balancing Cluster

  5. 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.

    vpn-demo-1(config)# vpn load-balancing
    vpn-demo-1(config-load-balancing)# interface lbpublic outside
    vpn-demo-1(config-load-balancing)# interface lbprivate inside
    vpn-demo-1(config-load-balancing)# priority 10
    vpn-demo-1(config-load-balancing)# cluster ip address 192.168.31.40
    vpn-demo-1(config-load-balancing)# cluster port 4000
    vpn-demo-1(config-load-balancing)# redirect-fqdn enable
    vpn-demo-1(config-load-balancing)# cluster key cisco
    vpn-demo-1(config-load-balancing)# cluster encryption
    vpn-demo-1(config-load-balancing)# cluster port 9023
    vpn-demo-1(config-load-balancing)# participate
    vpn-demo-1(config-load-balancing)#

    • Vi kontrollerer driften af ​​klyngen med to tilsluttede klienter:

    Implementering af en ASA VPN Load-Balancing Cluster

    • Lad os gøre kundeoplevelsen mere bekvem med den automatisk indlæste AnyConnect-profil via ASDM.

    Implementering af en ASA VPN Load-Balancing Cluster

    Vi navngiver profilen på en bekvem måde og forbinder vores gruppepolitik med den:

    Implementering af en ASA VPN Load-Balancing Cluster

    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:

    Implementering af en ASA VPN Load-Balancing Cluster

    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.

Kilde: www.habr.com

Tilføj en kommentar