It ynsetten fan in ASA VPN Load-Balancing Cluster

Yn dit artikel wol ik stap-foar-stap ynstruksjes jaan oer hoe't jo it meast skaalbere skema op it stuit fluch kinne ynsette VPN op ôfstân tagong basearre AnyConnect en Cisco ASA - VPN Load Balancing Cluster.

Ynlieding: In protte bedriuwen om 'e wrâld dogge, fanwegen de hjoeddeistige situaasje mei COVID-19, ynspanningen om har meiwurkers oer te bringen nei wurk op ôfstân. Troch de wiidfersprate oergong nei wurk op ôfstân nimt de lading op besteande VPN-poarten fan bedriuwen kritysk ta en is in heul rappe mooglikheid om se te skaaljen fereaske. Oan 'e oare kant wurde in protte bedriuwen twongen om hastich it konsept fan wurk op ôfstân fanôf it begjin te behearskjen.

Om bedriuwen te helpen fluch handige, feilige en skaalbere VPN-tagong foar meiwurkers te realisearjen, leveret Cisco maksimaal 13 wiken lisinsjes foar de funksje-rike AnyConnect SSL-VPN-kliïnt. Jo kinne ek ASAv nimme foar testen (Virtual ASA foar VMWare / Hyper-V / KVM-hypervisors en AWS / Azure-wolkplatfoarms) fan autorisearre partners of troch kontakt op te nimmen mei Cisco-fertsjintwurdigers dy't mei jo wurkje.

De proseduere foar it útjaan fan AnyConnect COVID-19-lisinsjes wurdt hjir beskreaun.

Ik haw stap-foar-stap ynstruksjes taret foar in ienfâldige opsje foar it ynsetten fan in VPN Load-Balancing-kluster as de meast skalberbere VPN-technology.

It foarbyld hjirûnder sil frij ienfâldich wêze út it eachpunt fan 'e brûkte autentikaasje- en autorisaasjealgoritmen, mar it sil in goede opsje wêze foar in rappe start (wat is wat in protte minsken no misse) mei de mooglikheid fan yngeande oanpassing oan jo behoeften tidens it ynsetproses.

Koarte ynformaasje: VPN Load Balancing Cluster-technology is gjin failover of in klusterfunksje yn har eigen sin; dizze technology kin folslein ferskillende ASA-modellen kombinearje (mei bepaalde beheiningen) om balâns te laden VPN-ferbiningen op ôfstân. D'r is gjin syngronisaasje fan sesjes en konfiguraasjes tusken de knooppunten fan sa'n kluster, mar it is mooglik om automatysk balâns VPN-ferbiningen te laden en te soargjen foar fouttolerânsje fan VPN-ferbiningen oant op syn minst ien aktive knooppunt yn it kluster bliuwt. De lading yn it kluster wurdt automatysk balansearre ôfhinklik fan de wurkdruk fan 'e knopen troch it oantal VPN-sesjes.

Foar skuld tolerânsje fan spesifike kluster knopen (as nedich), kinne jo gebrûk meitsje fan in filer, sadat de aktive ferbining wurdt ferwurke troch de primêre knooppunt fan de filer. De fileover is gjin needsaaklike betingst foar it garandearjen fan fouttolerânsje binnen it Load-Balancing-kluster; yn it gefal fan in knooppuntfal sil it kluster sels de brûker sesje oerdrage nei in oare live knooppunt, mar sûnder de ferbiningstatus te behâlden, dat is krekt wat de filer jout. Dêrtroch kinne dizze twa technologyen as nedich wurde kombinearre.

In VPN Load-Balancing-kluster kin mear as twa knopen befetsje.

VPN Load-Balancing kluster wurdt stipe op ASA 5512-X en heger.

Om't elke ASA binnen it VPN Load-Balancing-kluster in ûnôfhinklike ienheid is yn termen fan ynstellings, fiere wy alle konfiguraasjestappen yndividueel út op elk yndividueel apparaat.

Details fan de technology hjir

De logyske topology fan it jûn foarbyld is:

It ynsetten fan in ASA VPN Load-Balancing Cluster

Inisjele ynset:

  1. Wy ynsette ASAv eksimplaren fan de sjabloanen wy nedich (ASAv5/10/30/50) út de ôfbylding.

  2. Wy tawize INSIDE / OUTSIDE Schnittstellen oan deselde VLAN (Bûten yn syn eigen VLAN, INSIDE yn syn eigen, mar mienskiplik binnen it kluster, sjoch topology), is it wichtich dat Schnittstellen fan itselde type leit yn deselde L2 segment.

  3. Lisinsjes:

    • Op it momint fan ynstallaasje sil ASAv gjin lisinsjes hawwe en wurde beheind ta 100kbit / sek.
    • Om in lisinsje te ynstallearjen, moatte jo in token generearje yn jo Smart-Account-akkount: https://software.cisco.com/ -> Smart Software Lisinsje
    • Klikje op de knop yn it finster dat iepent Nije Token

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Soargje derfoar dat it fjild yn it finster dat iepent aktyf is en it karfakje is oanwiisd Tastean eksport-kontrolearre funksjonaliteit... Sûnder dit aktive fjild kinne jo gjin sterke fersiferingsfunksjes brûke en, dus, VPN. As dit fjild net aktyf is, nim dan kontakt op mei jo akkountteam om aktivearring oan te freegjen.

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Nei it drukken op de knop Token oanmeitsje, sil in token oanmakke wurde dat wy sille brûke om in lisinsje foar ASAv te krijen, kopiearje it:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Litte wy de stappen C, D, E werhelje foar elke ynset ASAv.
    • Om it makliker te meitsjen om it token te kopiearjen, litte wy telnet tydlik ynskeakelje. Litte wy elke ASA konfigurearje (it foarbyld hjirûnder yllustrearret de ynstellings op ASA-1). telnet fan bûten wurket net, as jo it echt nedich binne, feroarje it feiligensnivo nei 100 nei bûten, feroarje it dan werom.

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

    • Om in token te registrearjen yn 'e Smart-Account-wolk, moatte jo ynternettagong leverje oan ASA, details hjir.

    Koartsein, ASA is nedich:

    • Ynternet tagong fia HTTPS;
    • tiidsyngronisaasje (korrekter fia NTP);
    • registrearre DNS-tsjinner;
      • Wy geane fia telnet nei ús ASA en meitsje ynstellings om de lisinsje te aktivearjen fia 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>

    • Wy kontrolearje dat it apparaat in lisinsje mei súkses hat registrearre en dat fersiferingsopsjes beskikber binne:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    It ynsetten fan in ASA VPN Load-Balancing Cluster

  4. Basis SSL-VPN konfigurearje op elke gateway

    • Dêrnei konfigurearje wy tagong fia SSH en 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 
    !

    • Foar ASDM om te wurkjen, moatte jo it earst downloade fan cisco.com, yn myn gefal is it it folgjende bestân:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Foar de AnyConnect-kliïnt om te wurkjen, moatte jo in ôfbylding downloade nei elke ASA foar elke brûkte client-buroblêd OS (pland om Linux / Windows / MAC te brûken), jo sille in bestân nedich hawwe mei Headend-ynsetpakket Yn de titel:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • De ynladen bestannen kinne wurde uploade, bygelyks, nei in FTP-tsjinner en opladen nei elke yndividuele ASA:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Wy konfigurearje ASDM en Self-Signed sertifikaat foar SSL-VPN (it is oan te rieden om in fertroud sertifikaat te brûken yn produksje). De fêststelde FQDN fan it firtuele adres fan it kluster (vpn-demo.ashes.cc), lykas elke FQDN dy't ferbûn is mei it eksterne adres fan elke klusterknooppunt moat wurde oplost yn 'e eksterne DNS-sône nei it IP-adres fan' e OUTSIDE-ynterface (of nei it yn kaart brocht adres as udp / 443 poarte trochstjoere wurdt brûkt (DTLS) en tcp / 443 (TLS)). Detaillearre ynformaasje oer de easken foar it sertifikaat wurdt spesifisearre yn 'e seksje Sertifikaatferifikaasje dokumintaasje.

    !
    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               

    • Om de wurking fan ASDM te kontrolearjen, ferjit net de poarte op te jaan, bygelyks:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Litte wy basis tunnelynstellingen útfiere:
    • Wy sille it bedriuwsnetwurk tagonklik meitsje fia in tunnel, en it ynternet direkt ferbine (net de feilichste metoade yn it ûntbrekken fan feiligensmaatregels op 'e ferbinende host, it is mooglik om troch in ynfekteare host te penetrearjen en bedriuwsgegevens út te fieren, opsje split-tunnel-belied tunnelall sil tastean alle host ferkear yn de tunnel. Dochs Split-tunnel makket it mooglik om de VPN-gateway te ûntlêsten en host ynternetferkear net te ferwurkjen)
    • Wy sille hosts yn 'e tunnel útjaan mei adressen fan it subnet 192.168.20.0/24 (in pool fan 10 oant 30 adressen (foar node #1)). Elke knooppunt yn it kluster moat in eigen VPN-pool hawwe.
    • Litte wy basis ferifikaasje útfiere mei in lokaal oanmakke brûker op 'e ASA (Dit is net oan te rieden, dit is de ienfâldichste metoade), it is better om autentikaasje te dwaan fia LDAP/RADIUS, of better noch, tie Multi-Factor Authentication (MFA), bygelyks 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
    !

    • (FAKULTATYF): Yn it boppesteande foarbyld hawwe wy in lokale brûker op 'e brânmuorre brûkt om brûkers op ôfstân te autentisearjen, wat fansels net folle nut is, útsein yn it laboratoarium. Ik sil jou in foarbyld fan hoe't jo fluch oanpasse de opset foar autentikaasje op radius server, brûkt bygelyks 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 
    !

    Dizze yntegraasje makke it mooglik om net allinich de autentikaasjeproseduere fluch te yntegrearjen mei de AD-maptsjinst, mar ek om te ûnderskieden oft de ferbûne kompjûter ta AD heart, te begripen oft it in bedriuwsapparaat of in persoanlik is, en de steat fan 'e ferbûne te beoardieljen. apparaat.

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Litte wy Transparante NAT konfigurearje sadat ferkear tusken de kliïnt en netwurkboarnen fan it bedriuwsnetwurk net wurdt bemuoie mei:

    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

    • (FAKULTATYF): Om ús kliïnten bleatstelle oan it ynternet fia ASA (by it brûken fan tunnelall opsjes) mei PAT, en ek útgean fia deselde OUTSIDE-ynterface fan wêr't se ferbûn binne, moatte jo de folgjende ynstellingen meitsje

    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 
    !

    • It is ekstreem wichtich by it brûken fan in kluster om it ynterne netwurk yn te skeakeljen om te begripen hokker ASA retourferkear nei brûkers sil rûte; hjirfoar is it nedich om de rûtes /32-adressen útjûn oan kliïnten te fersprieden.
      Op it stuit hawwe wy it kluster noch net konfigureare, mar wy hawwe al wurkjende VPN-gateways wêrmei jo yndividueel kinne ferbine fia FQDN of IP.

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    Wy sjogge de ferbûne klant yn 'e routingtabel fan' e earste ASA:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    Sadat ús heule VPN-kluster en it heule bedriuwsnetwurk de rûte nei ús kliïnt wit, sille wy it foarheaksel fan 'e kliïnt opnij fersprieden yn in dynamysk routingprotokol, bygelyks 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

    No hawwe wy in rûte nei de kliïnt fan 'e twadde ASA-2-gateway en brûkers dy't ferbûn binne mei ferskate VPN-gateways binnen it kluster kinne bygelyks direkt kommunisearje fia in bedriuwssoftphone, krekt as weromferkear fan' e boarnen dy't troch de brûker frege wurde, komme by de winske VPN-gateway:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

  5. Litte wy trochgean mei it ynstellen fan it Load-Balancing-kluster.

    It adres 192.168.31.40 sil brûkt wurde as in firtuele IP (VIP - alle VPN-kliïnten sille der yn earste ynstânsje mei ferbine), fanôf dit adres sil de Cluster Master REDIRECTearje nei in minder laden klusterknooppunt. Ferjit net registrearje foarút en werom DNS records sawol foar elk ekstern adres / FQDN fan eltse kluster node, en foar 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)#

    • Wy kontrolearje de wurking fan it kluster mei twa ferbûne kliïnten:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    • Litte wy de ûnderfining fan de klant handiger meitsje mei in automatysk downloade AnyConnect-profyl fia ASDM.

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    Wy neame it profyl op in handige manier en assosjearje ús groepsbelied dêrmei:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    Nei de folgjende kliïntferbining sil dit profyl automatysk downloade en ynstalleare wurde yn 'e AnyConnect-kliïnt, dus as jo ferbine moatte, moatte jo it gewoan selektearje út' e list:

    It ynsetten fan in ASA VPN Load-Balancing Cluster

    Sûnt it brûken fan ASDM hawwe wy dit profyl op mar ien ASA makke, ferjit net om de stappen te werheljen op 'e oerbleaune ASA's yn it kluster.

Fermelding: Sa hawwe wy fluch in kluster fan ferskate VPN-gateways ynset mei automatyske load balancing. It tafoegjen fan nije knopen oan it kluster is maklik, it realisearjen fan ienfâldige horizontale skaalfergrutting troch nije ASAv firtuele masines yn te setten of hardware ASA's te brûken. De funksje-rike AnyConnect-kliïnt kin jo feilige ferbiningsmooglikheden op ôfstân sterk ferbetterje mei de Posture (steat beoardielingen), meast effektyf brûkt yn kombinaasje mei in sintralisearre tagongskontrôle en boekhâldingsysteem Identiteit Tsjinsten Engine.

Boarne: www.habr.com

Add a comment