Desplegament d'un clúster d'equilibri de càrrega VPN ASA
En aquest article, m'agradaria proporcionar instruccions pas a pas sobre com podeu implementar ràpidament l'esquema més escalable del moment. VPN d'accés remot basat en l'accés AnyConnect i Cisco ASA - Clúster d'equilibri de càrrega VPN.
Introducció: Moltes empreses d'arreu del món, davant la situació actual amb la COVID-19, estan fent esforços per traslladar els seus empleats al treball a distància. A causa de la transició massiva al treball remot, la càrrega de les passarel·les VPN existents de les empreses està augmentant de manera crítica i es requereix una capacitat molt ràpida per escalar-les. D'altra banda, moltes empreses es veuen obligades a dominar precipitadament el concepte de treball remot des de zero.
He preparat una guia pas a pas per a un desplegament senzill del clúster d'equilibri de càrrega VPN com a tecnologia VPN més escalable.
L'exemple següent serà força senzill pel que fa als algorismes d'autenticació i autorització utilitzats, però serà una bona opció per a un inici ràpid (que actualment no és suficient per a molts) amb la possibilitat d'adaptar-se en profunditat a les vostres necessitats durant el desplegament. procés.
Informació breu: La tecnologia VPN Load Balancing Cluster no és una funció de migració per error ni una funció de clustering en el seu sentit natiu, aquesta tecnologia pot combinar models ASA completament diferents (amb certes restriccions) per tal d'equilibrar la càrrega de connexions VPN d'accés remot. No hi ha sincronització de sessions i configuracions entre els nodes d'aquest clúster, però és possible equilibrar automàticament les connexions VPN i garantir la tolerància a errors de les connexions VPN fins que almenys un node actiu roman al clúster. La càrrega del clúster s'equilibra automàticament en funció de la càrrega de treball dels nodes pel nombre de sessions VPN.
Per a la migració per error de nodes específics del clúster (si cal), es pot utilitzar un fitxer, de manera que la connexió activa serà gestionada pel node principal del fitxer. La superació de fitxers no és una condició necessària per garantir la tolerància a errors dins del clúster d'equilibri de càrrega, el propi clúster, en cas d'error del node, transferirà la sessió de l'usuari a un altre node en directe, però sense desar l'estat de connexió, que és precisament. proporcionat pel fitxer. En conseqüència, és possible, si cal, combinar aquestes dues tecnologies.
Un clúster d'equilibri de càrrega VPN pot contenir més de dos nodes.
El clúster d'equilibri de càrrega VPN és compatible amb ASA 5512-X i superior.
Com que cada ASA dins del clúster d'equilibri de càrrega VPN és una unitat independent pel que fa a la configuració, realitzem tots els passos de configuració individualment a cada dispositiu individual.
Despleguem instàncies ASAv de les plantilles que necessitem (ASAv5/10/30/50) a partir de la imatge.
Assignem les interfícies INSIDE / OUTSIDE a les mateixes VLAN (Fora en la seva pròpia VLAN, INSIDE en la seva pròpia, però generalment dins del clúster, vegeu la topologia), és important que les interfícies del mateix tipus estiguin al mateix segment L2.
Llicències:
De moment la instal·lació d'ASAV no tindrà cap llicència i estarà limitada a 100 kbps.
Per instal·lar una llicència, heu de generar un testimoni al vostre compte intel·ligent: https://software.cisco.com/ -> Llicència de programari intel·ligent
A la finestra que s'obre, feu clic al botó Token nou
Assegureu-vos que a la finestra que s'obre hi ha un camp actiu i una marca de verificació està marcada Permet la funcionalitat controlada per exportació… Sense aquest camp actiu, no podreu utilitzar les funcions de xifratge fort i, en conseqüència, VPN. Si aquest camp no està actiu, poseu-vos en contacte amb l'equip del vostre compte amb una sol·licitud d'activació.
Després de prémer el botó Crea un testimoni, es crearà un testimoni que farem servir per obtenir una llicència per ASAv, copieu-lo:
Repetiu els passos C,D,E per a cada ASAv desplegat.
Per facilitar la còpia del testimoni, permetem temporalment telnet. Configurem cada ASA (l'exemple següent il·lustra la configuració de l'ASA-1). telnet no funciona amb l'exterior, si realment ho necessiteu, canvieu el nivell de seguretat a 100 a l'exterior i torneu-lo a tornar.
!
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 registrar un testimoni al núvol Smart-Account, heu de proporcionar accés a Internet per a ASA, detalls aquí.
Ens connectem al nostre ASA i fem la configuració per activar la llicència mitjançant 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>
Comprovem que el dispositiu ha registrat correctament una llicència i les opcions de xifratge estan disponibles:
Configureu un SSL-VPN bàsic a cada passarel·la
A continuació, configureu l'accés mitjançant SSH i 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
!
Perquè l'ASDM funcioni, primer l'has de descarregar des del lloc web cisco.com, en el meu cas és el següent fitxer:
Perquè el client AnyConnect funcioni, heu de carregar una imatge a cada ASA per a cada sistema operatiu d'escriptori client utilitzat (planificat per utilitzar Linux / Windows / MAC), necessitareu un fitxer amb Paquet de desplegament de capçalera En el títol:
Els fitxers descarregats es poden carregar, per exemple, a un servidor FTP i pujar a cada ASA individual:
Configurem ASDM i certificat autofirmat per a SSL-VPN (es recomana utilitzar un certificat de confiança en producció). El FQDN establert de l'adreça del clúster virtual (vpn-demo.ashes.cc), així com cada FQDN associat a l'adreça externa de cada node del clúster, s'ha de resoldre a la zona DNS externa amb l'adreça IP de la interfície EXTERIOR (o a l'adreça assignada si s'utilitza el reenviament de ports udp/443 (DTLS) i tcp/443(TLS)). A l'apartat s'especifica informació detallada sobre els requisits del certificat Verificació del certificat documentació.
!
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
No us oblideu d'especificar el port per comprovar que l'ASDM funciona, per exemple:
Realitzem la configuració bàsica del túnel:
Posem la xarxa corporativa disponible a través del túnel i deixem que Internet vagi directament (no és el mètode més segur si no hi ha proteccions a l'amfitrió que es connecta, és possible penetrar a través d'un amfitrió infectat i mostrar dades corporatives, opció). Split-tunnel-policy tunnelall permetrà que tot el trànsit d'acollida entri al túnel. no obstant túnel dividit permet descarregar la passarel·la VPN i no processar el trànsit d'Internet de l'amfitrió)
Emetem adreces de la subxarxa 192.168.20.0/24 als amfitrions del túnel (agrupament de 10 a 30 adreces (per al node #1)). Cada node del clúster VPN ha de tenir el seu propi grup.
Realitzarem l'autenticació bàsica amb un usuari creat localment a l'ASA (això no es recomana, aquest és el mètode més fàcil), és millor fer l'autenticació mitjançant LDAP/RADIUS, o millor encara, corbata Autenticació multifactor (MFA), Per exemple Cisco DUO.
(OPCIONAL): En l'exemple anterior, hem utilitzat un usuari local a la ITU per autenticar usuaris remots, cosa que, per descomptat, excepte al laboratori, és poc aplicable. Donaré un exemple de com adaptar ràpidament la configuració per a l'autenticació RADIUS servidor, per exemple utilitzat Motor de serveis d'identitat de Cisco:
Aquesta integració va permetre no només integrar ràpidament el procediment d'autenticació amb el servei de directori AD, sinó també distingir si l'ordinador connectat pertany a AD, entendre si aquest dispositiu és corporatiu o personal i avaluar l'estat del dispositiu connectat. .
Configurem NAT transparent perquè el trànsit entre el client i els recursos de la xarxa de la xarxa corporativa no s'escrigui:
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
(OPCIONAL): Per tal d'exposar els nostres clients a Internet a través de l'ASA (en utilitzar tunelall opcions) utilitzant PAT, així com sortir per la mateixa interfície EXTERIOR des de la qual es connecten, cal que realitzeu la configuració següent
Quan s'utilitza un clúster, és extremadament important habilitar la xarxa interna per entendre quin ASA ha d'encaminar el trànsit de retorn als usuaris, per a això cal redistribuir les rutes / 32 adreces emeses als clients.
De moment, encara no hem configurat el clúster, però ja disposem de passarel·les VPN en funcionament que es poden connectar individualment mitjançant FQDN o IP.
Veiem el client connectat a la taula d'encaminament del primer ASA:
Per tal que tot el nostre clúster VPN i tota la xarxa corporativa coneguin la ruta al nostre client, redistribuirem el prefix del client en un protocol d'encaminament dinàmic, per exemple OSPF:
Ara tenim una ruta al client des de la segona passarel·la ASA-2 i els usuaris connectats a diferents passarel·les VPN dins del clúster poden, per exemple, comunicar-se directament a través d'un softphone corporatiu, així com retornar el trànsit dels recursos sol·licitats per l'usuari. arriba a la passarel·la VPN desitjada:
Passem a la configuració del clúster d'equilibri de càrrega.
L'adreça 192.168.31.40 s'utilitzarà com a IP virtual (VIP: tots els clients VPN s'hi connectaran inicialment), des d'aquesta adreça el clúster mestre farà una REDIRECTA a un node de clúster menys carregat. No t'oblidis d'escriure Registre DNS cap endavant i cap enrere tant per a cada adreça externa/FQDN de cada node del clúster, com per a VIP.
Comprovem el funcionament del clúster amb dos clients connectats:
Fem que l'experiència del client sigui més còmoda amb el perfil AnyConnect carregat automàticament mitjançant ASDM.
Anomenem el perfil d'una manera còmoda i hi associem la nostra política de grup:
Després de la següent connexió del client, aquest perfil es descarregarà i s'instal·larà automàticament al client AnyConnect, així que si us cal connectar, només cal que seleccioneu-lo de la llista:
Com que només hem creat aquest perfil en un ASA mitjançant ASDM, no us oblideu de repetir els passos a les altres ASA del clúster.
Conclusió: Així, vam desplegar ràpidament un clúster de diverses passarel·les VPN amb equilibri automàtic de càrrega. Afegir nous nodes al clúster és fàcil, amb un escalat horitzontal senzill desplegant noves màquines virtuals ASAv o utilitzant ASA de maquinari. El client AnyConnect, ric en funcions, pot millorar considerablement la connexió remota segura utilitzant el Postura (estimacions de l'estat), més eficaçment utilitzat conjuntament amb el sistema de control centralitzat i comptabilitat d'accés Motor de serveis d'identitat.