En ASA VPN Load-Balancing Cluster ofsetzen

An dësem Artikel wéilt ech Schrëtt-fir-Schrëtt Instruktiounen ubidden wéi Dir dee Skalierbarste Schema am Moment séier kënnt ofsetzen Remote-Access VPN Zougang baséiert AnyConnect an Cisco ASA - VPN Load Balancing Cluster.

Aféierung: Vill Firmen ronderëm d'Welt maachen, wéinst der aktueller Situatioun mam COVID-19, Efforte fir hir Mataarbechter op Fernaarbecht ze transferéieren. Wéinst dem verbreeten Iwwergang op Fernaarbecht erhéicht d'Belaaschtung op existente VPN Gateways vu Firmen kritesch an eng ganz séier Fäegkeet fir se ze skaléieren ass erfuerderlech. Op der anerer Säit si vill Firme gezwongen d'Konzept vun der Fernaarbecht vun Null séier ze beherrschen.

Fir Geschäfter ze hëllefen séier praktesch, sécher a skalierbar VPN Zougang fir Mataarbechter ëmzesetzen, liwwert Cisco bis zu 13-Woche Lizenzen fir de Feature-räiche AnyConnect SSL-VPN Client. Dir kënnt och ASAv fir Testen huelen (Virtuell ASA fir VMWare/Hyper-V/KVM Hypervisoren an AWS/Azure Cloud Plattformen) vun autoriséierte Partner oder andeems Dir Cisco Vertrieder kontaktéiert, déi mat Iech schaffen.

D'Prozedur fir d'Ausstelle vun AnyConnect COVID-19 Lizenzen gëtt hei beschriwwen.

Ech hunn Schrëtt-fir-Schrëtt Instruktioune virbereet fir eng einfach Optioun fir e VPN Load-Balancing Cluster als déi skalierbarst VPN Technologie z'installéieren.

D'Beispill hei ënnen wäert zimmlech einfach sinn aus der Siicht vun den benotzten Authentifikatiouns- an Autorisatiounsalgorithmen, awer et wäert eng gutt Optioun fir e schnelle Start sinn (wat eppes ass wat vill Leit elo feelen) mat der Méiglechkeet vun enger detailléierter Upassung un Är Bedierfnesser während dem Détachement Prozess.

Kuerz Informatioun: VPN Load Balancing Cluster Technologie ass net e Failover oder eng Clusterfunktioun a sengem gebiertege Sënn; Dës Technologie kann komplett verschidden ASA Modeller kombinéieren (mat bestëmmte Restriktiounen) fir Balance Remote-Access VPN Verbindungen ze lueden. Et gëtt keng Synchroniséierung vu Sessiounen a Konfiguratiounen tëscht den Wirbelen vun esou engem Cluster, awer et ass méiglech automatesch VPN Verbindungen ze lueden a Feeler Toleranz vu VPN Verbindungen ze garantéieren bis op d'mannst een aktive Node am Cluster bleift. D'Laascht am Cluster gëtt automatesch ausgeglach ofhängeg vun der Aarbechtslaascht vun den Noden duerch d'Zuel vu VPN Sessiounen.

Fir Feeler Toleranz vu spezifesche Stärekoup Wirbelen (wann néideg), Dir kënnt e Fichier benotzen, sou datt déi aktiv Verbindung vun der Primärschoul Node vun der Classeuren veraarbecht ginn. De Fileover ass keng noutwenneg Bedingung fir Feeler Toleranz am Load-Balancing Cluster ze garantéieren; am Fall vun engem Node Echec wäert de Cluster selwer d'Benotzersessioun an en anere Live Node transferéieren, awer ouni de Verbindungsstatus z'erhalen, dat ass genau wat de Filet schéissen stellt. Deementspriechend kënnen dës zwou Technologien kombinéiert ginn wann néideg.

E VPN Load-Balancing Cluster kann méi wéi zwee Wirbelen enthalen.

VPN Load-Balancing Cluster gëtt op ASA 5512-X a méi héich ënnerstëtzt.

Well all ASA am VPN Load-Balancing Cluster eng onofhängeg Eenheet ass wat d'Astellunge ugeet, maache mir all Konfiguratiounsschrëtt individuell op all eenzelnen Apparat.

Detailer vun der Technologie hei

Déi logesch Topologie vum gegebene Beispill ass:

En ASA VPN Load-Balancing Cluster ofsetzen

Éischt Deployment:

  1. Mir setzen ASAv Instanzen vun de Templates déi mir brauchen (ASAv5/10/30/50) aus dem Bild.

  2. Mir zougewisen INSIDE / äusseren Schnëttplazen op déi selwecht VLAN (Ausserhalb a sengem eegene VLAN, BINNE a senger eegener, awer allgemeng am Stärekoup, kuckt Topologie), ass et wichteg datt Schnëttplazen vum selwechten Typ am selwechte L2-Segment sinn.

  3. Lizenzen:

    • Zu der Zäit vun der Installatioun wäert ASAv keng Lizenzen hunn a wäert op 100kbit / sec limitéiert sinn.
    • Fir eng Lizenz z'installéieren, musst Dir en Token an Ärem Smart-Account Kont generéieren: https://software.cisco.com/ -> Smart Software Lizenz
    • An der Fënster déi opmaacht, klickt op de Knäppchen Neien Token

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Vergewëssert Iech datt d'Feld an der Fënster déi opmaacht aktiv ass an d'Checkbox ass markéiert Erlaabt exportkontrolléiert Funktionalitéit... Ouni dëst aktive Feld kënnt Dir net staark Verschlësselungsfunktiounen benotzen an deementspriechend VPN. Wann dëst Feld net aktiv ass, kontaktéiert w.e.g. Äre Kontteam fir Aktivéierung ze froen.

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Nodeems Dir de Knäppchen gedréckt hutt Erstellt Token, gëtt en Token erstallt dee mir benotze fir eng Lizenz fir ASAv ze kréien, kopéiert se:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Loosst eis d'Schrëtt C, D, E fir all ofgebauten ASAv widderhuelen.
    • Fir et méi einfach ze maachen den Token ze kopéieren, loosst eis den Telnet temporär aktivéieren. Loosst eis all ASA konfiguréieren (d'Beispill hei drënner illustréiert d'Astellungen op ASA-1). Telnet vu baussen funktionnéiert net, wann Dir et wierklech braucht, ännert de Sécherheetsniveau op 100 no baussen, ännert et dann zréck.

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

    • Fir en Token an der Smart-Account Cloud anzeschreiwen, musst Dir Internetzougang zu ASA ubidden, Detailer hei.

    Kuerz gesot, ASA ass gebraucht:

    • Internetzougang iwwer HTTPS;
    • Zäit Synchroniséierung (méi korrekt iwwer NTP);
    • registréiert DNS Server;
      • Mir ginn iwwer Telnet op eis ASA a maachen Astellunge fir d'Lizenz iwwer Smart-Account z'aktivéieren.

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

    • Mir kontrolléieren ob den Apparat eng Lizenz erfollegräich ugemellt huet an d'Verschlësselungsoptioune verfügbar sinn:

    En ASA VPN Load-Balancing Cluster ofsetzen

    En ASA VPN Load-Balancing Cluster ofsetzen

  4. Basis SSL-VPN op all Paart konfiguréieren

    • Als nächst konfiguréiere mir den Zougang iwwer SSH an 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 
    !

    • Fir ASDM ze schaffen, musst Dir et als éischt vun cisco.com eroflueden, a mengem Fall ass et déi folgend Datei:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Fir datt den AnyConnect Client funktionnéiert, musst Dir e Bild op all ASA eroflueden fir all Client Desktop OS benotzt (geplangt fir Linux / Windows / MAC ze benotzen), Dir braucht e Fichier mat Headend Deployment Package Am Titel:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Déi erofgeluede Dateie kënnen zum Beispill op en FTP-Server eropgeluede ginn an op all eenzel ASA eropgeluede ginn:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Mir konfiguréieren ASDM an Self-Ënnerschriwwen Zertifikat fir SSL-VPN (et ass recommandéiert e vertrauenswürdege Certificat an der Produktioun ze benotzen). Déi etabléiert FQDN vum Cluster Virtuell Adress (vpn-demo.ashes.cc), souwéi all FQDN verbonne mat der externer Adress vun all Cluster Node muss an der externer DNS Zone op d'IP Adress vun der OUTSIDE Interface geléist ginn (oder op déi kartéiert Adress wann udp/443 Port Forwarding benotzt gëtt (DTLS) an tcp/443(TLS)). Detailléiert Informatioun iwwer d'Ufuerderunge fir den Zertifika gëtt an der Rubrik spezifizéiert Zertifika Verifikatioun Dokumentatioun.

    !
    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               

    • Fir d'Operatioun vun ASDM z'iwwerpréiwen, vergiesst net den Hafen ze spezifizéieren, zum Beispill:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Loosst eis d'Basis Tunnel Astellunge maachen:
    • Mir wäerten de Firmennetz iwwer en Tunnel zougänglech maachen, an den Internet direkt verbannen (net déi sécherst Method an der Verontreiung vu Sécherheetsmoossnamen um Verbindungshost, et ass méiglech duerch en infizéierte Host z'erreechen an d'Firmendaten auszeginn, Optioun Split-Tunnel-Politik tunnelall erlaabt all Gaaschtverkéier an den Tunnel. Trotzdem Split-Tunnel mécht et méiglech de VPN Gateway ze entlaaschten an den Host Internet Traffic net ze veraarbecht)
    • Mir wäerten Hosten am Tunnel mat Adressen aus dem Subnet erausginn 192.168.20.0/24 (e Pool vun 10 bis 30 Adressen (fir Node #1)). All Node am Cluster muss säin eegene VPN Pool hunn.
    • Loosst eis Basis Authentifikatioun mat engem lokal erstallte Benotzer op der ASA ausféieren (Dëst ass net recommandéiert, dëst ass déi einfachst Method), et ass besser d'Authentifikatioun duerch ze maachen LDAP/RADIUS, oder besser nach, Tie Multi-Factor Authentifikatioun (MFA), zum Beispill 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
    !

    • (OPTIONAL): Am uewe genannte Beispill hu mir e lokale Benotzer op der Firewall benotzt fir Remote Benotzer ze authentifizéieren, wat selbstverständlech wéineg Notzung ausser am Laboratoire ass. Ech ginn e Beispill wéi Dir de Setup fir d'Authentifikatioun séier adaptéiere kënnt Radius Server, zum Beispill benotzt Cisco Identitéit Servicer 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 
    !

    Dës Integratioun huet et méiglech gemaach net nëmmen d'Authentifikatiounsprozedur séier mat dem AD Verzeichnisservice z'integréieren, awer och z'ënnerscheeden ob de verbonne Computer zu AD gehéiert, ze verstoen ob et e Firmenapparat oder e perséinlechen ass, an den Zoustand vun de verbonnene bewäerten. Apparat.

    En ASA VPN Load-Balancing Cluster ofsetzen

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Loosst eis Transparent NAT konfiguréieren sou datt de Verkéier tëscht dem Client an dem Netzwierkressourcen vum Firmennetz net gestéiert gëtt:

    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

    • (OPTIONAL): Fir eis Clienten um Internet iwwer ASA auszesetzen (wann Dir benotzt tunnel Optiounen) mat PAT, an och duerch déiselwecht OUTSIDE Interface erausgoen vu wou se verbonne sinn, musst Dir déi folgend Astellunge maachen

    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 
    !

    • Et ass extrem wichteg wann Dir e Cluster benotzt fir den internen Netzwierk z'erméiglechen ze verstoen wéi eng ASA de Retourverkéier un d'Benotzer ze routen; dofir ass et néideg d'Strecken /32 Adressen ze verdeelen, déi u Clienten ausgestallt goufen.
      Am Moment hu mir de Cluster nach net konfiguréiert, awer mir hu scho funktionnéierende VPN-Gateways, mat deenen Dir individuell iwwer FQDN oder IP verbënnt.

    En ASA VPN Load-Balancing Cluster ofsetzen

    Mir gesinn de verbonne Client an der Routing-Tabelle vun der éischter ASA:

    En ASA VPN Load-Balancing Cluster ofsetzen

    Also datt eise ganze VPN Stärekoup an de ganze Firmennetz de Wee op eise Client kennt, wäerte mir de Client Präfix an en dynamesche Routingprotokoll ëmverdeelen, zum Beispill 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

    Elo hu mir e Wee zum Client vun der zweeter ASA-2 Paart a Benotzer verbonne mat verschiddene VPN Gateways am Cluster kënnen zum Beispill direkt iwwer e Firme Softphone kommunizéieren, sou wéi de Retourverkéier vun de Ressourcen, déi vum Benotzer gefrot ginn, kommen um gewënschten VPN Paart:

    En ASA VPN Load-Balancing Cluster ofsetzen

  5. Loosst eis weidergoen fir de Load-Balancing Cluster opzestellen.

    D'Adress 192.168.31.40 gëtt als Virtuell IP benotzt (VIP - all VPN Clienten wäerten ufanks mat him verbannen), vun dëser Adress gëtt de Cluster Master REDIRECT op e manner gelueden Cluster Node. Vergiesst net Iech unzemellen Forward an Reverse DNS records souwuel fir all extern Adress / FQDN vun all Cluster Node, a fir 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)#

    • Mir kontrolléieren d'Operatioun vum Cluster mat zwee verbonne Clienten:

    En ASA VPN Load-Balancing Cluster ofsetzen

    • Loosst eis dem Client seng Erfahrung méi bequem maachen mat engem automatesch erofgeluede AnyConnect Profil iwwer ASDM.

    En ASA VPN Load-Balancing Cluster ofsetzen

    Mir nennen de Profil op eng bequem Manéier an associéieren eis Gruppepolitik domat:

    En ASA VPN Load-Balancing Cluster ofsetzen

    No der nächster Clientverbindung gëtt dëse Profil automatesch erofgelueden an am AnyConnect Client installéiert, also wann Dir musst verbannen, musst Dir et just aus der Lëscht auswielen:

    En ASA VPN Load-Balancing Cluster ofsetzen

    Zënter der ASDM benotzt hu mir dëse Profil nëmmen op enger ASA erstallt, vergiesst net d'Schrëtt op déi verbleiwen ASAen am Stärekoup ze widderhuelen.

Fazit: Also hu mir séier e Stärekoup vu verschiddene VPN Gateways mat automatesche Laaschtbalancéierung ofgesat. Nei Noden an de Stärekoup bäizefügen ass einfach, einfach horizontal Skaléieren z'erreechen andeems Dir nei ASAv virtuell Maschinnen ofsetzt oder Hardware ASAs benotzt. De Feature-räiche AnyConnect Client kann Är sécher Fernverbindungsfäegkeeten immens verbesseren mat der Haltung (Staatsbewäertungen), am effektivsten benotzt a Verbindung mat engem zentraliséierten Zougangskontroll a Comptabilitéitssystem Identitéitsservicer Engine.

Source: will.com

Setzt e Commentaire