Implementazione di un cluster di bilanciamento di carica VPN ASA

In questu articulu, vogliu furnisce struzzioni passu per passu nantu à cumu pudete implementà rapidamente u schema più scalabile in u mumentu. Accessu remoto VPN accessu basatu AnyConnect è Cisco ASA - Cluster di equilibriu di carica VPN.

Introduzione: Parechje cumpagnie in u mondu, in vista di a situazione attuale cù COVID-19, facenu sforzi per trasfirià i so impiegati à u travagliu remoto. A causa di a transizione di massa à u travagliu remoto, a carica nantu à e porte VPN esistenti di l'imprese hè in crescita critica è una capacità assai veloce di scala hè necessaria. Per d 'altra banda, assai cumpagnie sò furzati à ammaistrà in fretta u cuncettu di travagliu remoto da zero.

Per aiutà l'imprese à ottene un accessu VPN convenientu, sicuru è scalabile per l'impiegati in u più brevi tempu pussibule, Cisco licenze u cliente VPN SSL AnyConnect riccu di funzioni per un massimu di 13 settimane. Pudete ancu piglià ASAv per una prova (ASA virtuale per ipervisori VMWare/Hyper-V/KVM è piattaforme cloud AWS/Azure) da partenarii autorizati o cuntattendu i rapprisentanti Cisco chì travaglianu cun voi..

A prucedura per l'emissione di licenze AnyConnect COVID-19 hè descritta quì.

Aghju preparatu una guida passo-passu per una implementazione simplice di VPN Load-Balancing Cluster cum'è a tecnulugia VPN più scalabile.

L'esempiu quì sottu serà abbastanza simplice in quantu à l'algoritmi di autentificazione è d'autorizazione utilizati, ma serà una bona opzione per un iniziu rapidu (chì attualmente ùn hè micca abbastanza per parechji) cù a pussibilità di adattazione in profonda à i vostri bisogni durante a implementazione. prucessu.

Brevi infurmazione: A tecnulugia VPN Load Balancing Cluster ùn hè micca un failover è micca una funzione di clustering in u so sensu nativu, sta tecnulugia pò cumminà mudelli ASA completamente differenti (cun ​​​​certe restrizioni) per equilibrà e cunnessione VPN Remote-Access. Ùn ci hè micca sincronizazione di sessioni è cunfigurazioni trà i nodi di un tali cluster, ma hè pussibule di carica automaticamente e cunnessione VPN di equilibriu è assicurà a tolleranza di difetti di cunnessione VPN finu à chì almenu un node attivu resta in u cluster. A carica in u cluster hè automaticamente equilibratu secondu a carica di travagliu di i nodi da u numeru di sessioni VPN.

Per fallu di nodi specifichi di u cluster (se necessariu), un filer pò esse usatu, cusì a cunnessione attiva serà trattata da u node primariu di u filer. U fileover ùn hè micca una cundizione necessaria per assicurà a tolleranza di difetti in u cluster Load-Balancing, u cluster stessu, in casu di fallimentu di u nodu, trasfirerà a sessione di l'utilizatori à un altru node live, ma senza salvà u statutu di cunnessione, chì hè precisamente. furnitu da u filer. In cunsiquenza, hè pussibule, se ne necessariu, cunghjuntà sti dui tecnulugia.

Un cluster di equilibriu di carica VPN pò cuntene più di dui nodi.

U cluster di equilibriu di carica VPN hè supportatu in ASA 5512-X è sopra.

Siccomu ogni ASA in u cluster VPN Load-Balancing hè una unità indipendente in quantu à i paràmetri, effettuemu tutti i passi di cunfigurazione individualmente in ogni dispusitivu individuale.

I dettagli di a tecnulugia quì

A topologia logica di l'esempiu datu:

Implementazione di un cluster di bilanciamento di carica VPN ASA

Impiegazione primaria:

  1. Implementemu istanze ASAv di i mudelli chì avemu bisognu (ASAv5/10/30/50) da l'imaghjini.

  2. Assignemu l'interfacce INSIDE / OUTSIDE à i stessi VLAN (Fora in u so propiu VLAN, INSIDE in u so propiu, ma in generale in u cluster, vede a topologia), hè impurtante chì l'interfacce di u listessu tipu sò in u stessu segmentu L2.

  3. Licenze:

    • À u mumentu, l'installazione ASAv ùn hà micca licenze è serà limitata à 100kbps.
    • Per installà una licenza, avete bisognu di generà un token in u vostru Smart-Account: https://software.cisco.com/ -> Licenza di software intelligente
    • In a finestra chì si apre, cliccate nantu à u buttone New Token

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Assicuratevi chì in a finestra chì si apre ci hè un campu attivu è una marca di spunta hè verificata Permette a funziunalità cuntrullata da l'esportazione... Senza stu campu attivu, ùn puderete micca aduprà e funzioni di criptografia forte è, per quessa, VPN. Se stu campu ùn hè micca attivu, cuntattate u vostru squadra di contu cun una dumanda di attivazione.

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Dopu avè pressu u buttone Crea Token, serà creatu un token chì useremu per ottene una licenza per ASAv, copiate:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Ripete i passi C,D,E per ogni ASAv implementatu.
    • Per fà più faciule per copià u token, permettemu temporaneamente telnet. Cunfiguremu ogni ASA (l'esempiu quì sottu illustra i paràmetri nantu à ASA-1). telnet ùn funziona micca cù l'esternu, se ne avete veramente bisognu, cambiate u nivellu di sicurezza à 100 à l'esternu, dopu torna torna.

    !
    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
    !

    • Per registrà un token in u nuvulu Smart-Account, duvete furnisce l'accessu Internet per ASA, dettagli quì.

    In breve, ASA hè necessariu:

    • accessu via HTTPS à Internet;
    • sincronizazione di u tempu (più currettamente, via NTP);
    • servitore DNS registratu;
      • Avemu telnet à u nostru ASA è fà paràmetri per attivà a licenza attraversu 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>

    • Avemu verificatu chì u dispusitivu hà registratu successu una licenza è l'opzioni di criptografia sò dispunibili:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Implementazione di un cluster di bilanciamento di carica VPN ASA

  4. Configurate un SSL-VPN di basa in ogni gateway

    • Dopu, cunfigurà l'accessu via 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 
    !

    • Per chì l'ASDM funziona, prima deve esse scaricatu da u situ web cisco.com, in u mo casu hè u schedariu seguente:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Per u cliente AnyConnect per travaglià, avete bisognu di carica una maghjina à ogni ASA per ogni OS desktop client utilizatu (prughjettatu à aduprà Linux / Windows / MAC), avete bisognu di un schedariu cù Paquet di implementazione di Headend In u titulu:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • I schedarii telecaricati ponu esse caricati, per esempiu, à un servitore FTP è caricati à ogni ASA individuale:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Configuremu ASDM è certificatu autofirmatu per SSL-VPN (hè cunsigliatu di utilizà un certificatu di fiducia in a produzzione). U FQDN stabilitu di l'indirizzu di u Cluster Virtual (vpn-demo.ashes.cc), è ancu ogni FQDN assuciatu cù l'indirizzu esternu di ogni node di cluster, deve risolve in a zona DNS esterna à l'indirizzu IP di l'interfaccia OUTSIDE (o à l'indirizzu mappatu se u port forwarding udp/443 hè utilizatu (DTLS) è tcp/443 (TLS)). L'infurmazioni detallate nantu à i requisiti per u certificatu sò specificate in a sezione Verificazione di u Certificatu documentazione.

    !
    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               

    • Ùn vi scurdate di specificà u portu per verificà chì l'ASDM funziona, per esempiu:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Facemu i paràmetri di basa di u tunnel:
    • Facemu a rete corporativa dispunibile attraversu u tunelu, è lascià l'Internet andà direttamente (micca u metudu più sicuru se ùn ci hè micca prutezzione nantu à l'ospite di cunnessione, hè pussibule penetrà attraversu un host infettatu è vede e dati corporativi, opzione. split-tunnel-policy tunnelall permetterà tuttu u trafficu di l'ospiti in u tunnel. Tuttavia split-tunnel permette di scaricà u gateway VPN è micca processà u trafficu Internet di l'ospite)
    • Emettemu indirizzi da a subnet 192.168.20.0/24 à l'ospiti in u tunnel (piscina da 10 à 30 indirizzi (per u node #1)). Ogni node di u cluster VPN deve avè u so propiu pool.
    • Realizzeremu l'autentificazione di basa cù un utilizatore creatu localmente nantu à l'ASA (Questu ùn hè micca cunsigliatu, questu hè u metudu più faciule), hè megliu fà l'autentificazione attraversu LDAP/RADIUS, o megliu ancu, cravatta Autenticazione multifattore (MFA), per esempiu 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
    !

    • (OPZIONALE): In l'esempiu di sopra, avemu usatu un utilizatore locale nantu à l'ITU per autentificà l'utilizatori remoti, chì di sicuru, salvu in u laboratoriu, hè pocu applicabile. Daraghju un esempiu di cumu adattà rapidamente l'impostazione per l'autentificazione RADIUS servitore, per esempiu usatu 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 
    !

    Questa integrazione hà permessu micca solu di integrà rapidamente a prucedura di autentificazione cù u serviziu di annuariu AD, ma ancu di distinguishà se l'urdinatore cunnessu appartene à l'AD, per capiscenu s'ellu hè corporativu o persunale, è per valutà u statutu di u dispusitivu cunnessu. .

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Cunfiguremu Transparent NAT in modu chì u trafficu trà u cliente è e risorse di a reta di a rete corporativa ùn hè micca scribbled:

    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

    • (OPZIONALE): Per espose i nostri clienti à Internet attraversu l'ASA (quandu usanu tunnelall opzioni) utilizendu PAT, è ancu esce da a stessa interfaccia OUTSIDE da quale sò cunnessi, avete bisognu di fà i seguenti paràmetri

    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 
    !

    • Quandu si usa un cluster, hè estremamente impurtante per attivà a rete interna per capisce quale ASA per indirizzà u trafficu di ritornu à l'utilizatori, per questu avete bisognu di redistribuisce rotte / indirizzi 32 emessi à i clienti.
      À u mumentu, ùn avemu micca cunfiguratu u cluster, ma avemu digià gateway VPN chì ponu esse cunnessi individualmente via FQDN o IP.

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Avemu vistu u cliente cunnessu in a tabella di routing di u primu ASA:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Per chì tuttu u nostru cluster VPN è tutta a reta corporativa cunnosce a strada à u nostru cliente, redistribuemu u prefissu di u cliente in un protokollu di routing dinamicu, per esempiu 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

    Avà avemu un itinerariu à u cliente da a seconda porta ASA-2 è l'utilizatori cunnessi à e diverse porte VPN in u cluster ponu, per esempiu, cumunicà direttamente attraversu un softphone corporativu, è ancu rinvià u trafficu da e risorse richieste da l'utilizatore. vene à a porta VPN desiderata:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

  5. Passemu à cunfigurà u cluster Load-Balancing.

    L'indirizzu 192.168.31.40 serà utilizatu cum'è un IP Virtual (VIP - tutti i clienti VPN inizialmente cunnette à questu), da questu indirizzu u cluster Maestru farà un REDIRECT à un node cluster menu carricu. Ùn vi scurdate di scrive record DNS avanti è inversu sia per ogni indirizzu esternu / FQDN di ogni nodu di u cluster, sia per 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)#

    • Cuntrollamu u funziunamentu di u cluster cù dui clienti cunnessi:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    • Facemu l'esperienza di u cliente più còmuda cù u prufilu AnyConnect caricatu automaticamente via ASDM.

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Nominemu u prufilu in una manera còmuda è associemu a nostra pulitica di gruppu cun ella:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Dopu à a prossima cunnessione di u cliente, stu prufilu serà scaricatu automaticamente è installatu in u cliente AnyConnect, perchè se avete bisognu di cunnette, basta selezziunate da a lista:

    Implementazione di un cluster di bilanciamento di carica VPN ASA

    Siccomu avemu creatu stu prufilu in un solu ASA cù ASDM, ùn vi scurdate di ripetiri i passi nantu à l'altri ASA in u cluster.

Cunsigliu: Cusì, avemu implementatu rapidamente un cluster di parechje gateway VPN cù equilibriu automaticu di carica. L'aghjunzione di novi nodi à u cluster hè faciule, cù una scala horizontale simplice implementendu novi macchine virtuali ASAv o utilizendu ASA hardware. U cliente AnyConnect riccu di funzioni pò migliurà assai a cunnessione remota sicura usendu u Postura (estimazioni statali), più efficacemente utilizatu in cunghjunzione cù u sistema di cuntrollu centralizatu è cuntabilità di accessu Motore di servizii d'identità.

Source: www.habr.com

Add a comment