ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

Tässä artikkelissa haluan antaa vaiheittaiset ohjeet siitä, kuinka voit ottaa nopeasti käyttöön tällä hetkellä skaalautuvimman järjestelmän. Etäkäyttö VPN pääsyyn perustuva AnyConnect ja Cisco ASA - VPN-kuormituksen tasapainotusklusteri.

Johdanto: Monet yritykset ympäri maailmaa pyrkivät nykyisen COVID-19-tilanteen vuoksi siirtämään työntekijänsä etätöihin. Johtuen joukkosiirtymästä etätyöhön, yritysten olemassa olevien VPN-yhdyskäytävien kuormitus kasvaa kriittisesti ja vaaditaan erittäin nopeaa kykyä skaalata niitä. Toisaalta monet yritykset joutuvat hätäisesti omaksumaan etätyön käsitteen tyhjästä.

Auttaakseen yrityksiä saamaan työntekijöilleen kätevän, turvallisen ja skaalautuvan VPN-yhteyden mahdollisimman lyhyessä ajassa, Cisco lisensoi AnyConnect-ominaisuuksia sisältävän SSL VPN -asiakkaan jopa 13 viikoksi. Voit myös ottaa ASAv-testin (Virtual ASA VMWare/Hyper-V/KVM-hypervisoreille ja AWS/Azure-pilvialustoille) valtuutetuilta kumppaneilta tai ottamalla yhteyttä kanssasi työskenteleviin Ciscon edustajiin..

AnyConnect COVID-19 -lisenssien myöntämismenettely kuvataan täällä.

Olen laatinut vaiheittaisen oppaan VPN Load-Balancing Clusterin yksinkertaisesta käyttöönotosta skaalautuvimpana VPN-teknologiana.

Alla oleva esimerkki on melko yksinkertainen käytettävien todennus- ja valtuutusalgoritmien suhteen, mutta se on hyvä vaihtoehto nopeaan alkuun (mikä ei tällä hetkellä riitä monille), koska sitä voidaan mukauttaa perusteellisesti tarpeisiisi käyttöönoton aikana. käsitellä asiaa.

Lyhyt tiedot: VPN Load Balancing Cluster -tekniikka ei ole vikasiirtymä eikä klusterointitoiminto alkuperäisessä merkityksessään, vaan tämä tekniikka voi yhdistää täysin erilaisia ​​ASA-malleja (tietyin rajoituksin) kuormituksen tasapainottamiseksi Remote-Access VPN -yhteyksissä. Sellaisen klusterin solmujen välillä ei tapahdu istuntojen ja konfiguraatioiden synkronointia, mutta VPN-yhteyksien kuormitustasapaino on mahdollista automaattisesti varmistaa ja VPN-yhteyksien vikasietoisuus, kunnes klusteriin jää vähintään yksi aktiivinen solmu. Klusterin kuormitus tasapainotetaan automaattisesti solmujen työkuorman mukaan VPN-istuntojen lukumäärällä.

Klusterin tiettyjen solmujen vikasietoa varten (tarvittaessa) voidaan käyttää tiedostoa, joten tiedostojen ensisijainen solmu hoitaa aktiivisen yhteyden. Tiedostonvaihto ei ole välttämätön ehto Load-Balancing-klusterin vikasietokyvyn varmistamiseksi, vaan klusteri itse siirtää solmun vian sattuessa käyttäjäistunnon toiseen live-solmuun, mutta tallentamatta yhteyden tilaa, joka on juuri toimittaja. Näin ollen on mahdollista tarvittaessa yhdistää nämä kaksi tekniikkaa.

VPN Load-Balancing -klusteri voi sisältää enemmän kuin kaksi solmua.

VPN Load-Balancing Cluster on tuettu ASA 5512-X:ssä ja uudemmissa.

Koska jokainen VPN Load-Balancing -klusterin ASA on asetukseltaan itsenäinen yksikkö, teemme kaikki konfigurointivaiheet erikseen jokaisessa yksittäisessä laitteessa.

Tekniset tiedot täältä

Annetun esimerkin looginen topologia:

ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

Ensisijainen käyttöönotto:

  1. Otamme käyttöön ASAv-esiintymät tarvitsemistamme malleista (ASAv5/10/30/50) kuvasta.

  2. Määritämme INSIDE / OUTSIDE-liitännät samoihin VLAN-verkkoihin (Ulkopuolella omassa VLANissa, INSIDE omassa, mutta yleensä klusterin sisällä, katso topologia), on tärkeää, että samantyyppiset rajapinnat ovat samassa L2-segmentissä.

  3. lisenssi:

    • Tällä hetkellä ASAv-asennuksella ei ole lisenssejä ja se rajoitetaan 100 kbps:iin.
    • Lisenssin asentamiseksi sinun on luotava tunnus Smart-tilillesi: https://software.cisco.com/ -> Älykäs ohjelmiston lisensointi
    • Napsauta avautuvassa ikkunassa -painiketta Uusi Token

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Varmista, että avautuvassa ikkunassa on aktiivinen kenttä ja valintamerkki on valittuna Salli vientiohjatut toiminnot… Jos tämä kenttä ei ole aktiivinen, et voi käyttää vahvan salauksen ja vastaavasti VPN:n toimintoja. Jos tämä kenttä ei ole aktiivinen, ota yhteyttä tilitiimiisi ja pyydä aktivointipyyntö.

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Kun olet painanut painiketta Luo tunnus, luodaan tunnus, jota käytämme ASAv-lisenssin hankkimiseen, kopioi se:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Toista vaiheet C, D, E jokaiselle käyttöönotetulle ASAv:lle.
    • Tokenin kopioimisen helpottamiseksi sallitaan tilapäisesti telnet. Määritetään jokainen ASA (alla oleva esimerkki havainnollistaa ASA-1:n asetuksia). Telnet ei toimi ulkopuolisten kanssa, jos todella tarvitset sitä, vaihda suojaustasoksi 100 ulkopuoliseksi ja palauta se sitten takaisin.

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

    • Jotta voit rekisteröidä tunnuksen Smart-Account-pilveen, sinun on tarjottava ASA:lle Internet-yhteys, yksityiskohdat täältä.

    Lyhyesti sanottuna ASA:ta tarvitaan:

    • pääsy Internetiin HTTPS:n kautta;
    • ajan synkronointi (oikein, NTP:n kautta);
    • rekisteröity DNS-palvelin;
      • Telnetimme ASA:han ja teemme asetukset aktivoidaksemme lisenssin Smart-Accountin kautta.

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

    • Tarkistamme, että laite on rekisteröinyt lisenssin onnistuneesti ja salausvaihtoehdot ovat käytettävissä:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

  4. Määritä perus-SSL-VPN jokaiselle yhdyskäytävälle

    • Määritä seuraavaksi pääsy SSH:n ja ASDM:n kautta:

    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 
    !

    • Jotta ASDM toimisi, sinun on ensin ladattava se cisco.com-sivustolta, minun tapauksessani se on seuraava tiedosto:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Jotta AnyConnect-asiakasohjelma toimisi, sinun on ladattava kuva jokaiseen ASA:han kullekin käytetylle asiakastietokoneen käyttöjärjestelmälle (suunniteltu käytettäväksi Linux / Windows / MAC), tarvitset tiedoston Headend-käyttöönottopaketti Otsikossa:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Ladatut tiedostot voidaan ladata esimerkiksi FTP-palvelimelle ja jokaiseen yksittäiseen ASA:han:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Määritämme ASDM- ja Self-Signed-sertifikaatin SSL-VPN:lle (tuotannossa on suositeltavaa käyttää luotettua varmennetta). Virtuaaliklusterin osoitteen (vpn-demo.ashes.cc) asetetun FQDN:n sekä jokaisen klusterisolmun ulkoiseen osoitteeseen liittyvän FQDN:n tulee ratkaista ulkoisessa DNS-vyöhykkeessä ULKOliittymän IP-osoitteeksi (tai yhdistettyyn osoitteeseen, jos käytetään portin edelleenohjausta udp/443 (DTLS) ja tcp/443(TLS)). Tarkemmat tiedot sertifikaatin vaatimuksista on kuvattu kohdassa Varmenteen varmennus dokumentointi.

    !
    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               

    • Älä unohda määrittää porttia tarkistaaksesi, että ASDM toimii, esimerkiksi:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Suoritetaan tunnelin perusasetukset:
    • Tehdään yritysverkko saataville tunnelin kautta ja annetaan Internet mennä suoraan (ei turvallisin tapa, jos yhdistävässä isännässä ei ole suojauksia, on mahdollista tunkeutua tartunnan saaneen isännän läpi ja näyttää yritystiedot, vaihtoehto split-tunnel-policy tunnell päästää kaiken isäntäliikenteen tunneliin. tästä huolimatta jaettu tunneli mahdollistaa VPN-yhdyskäytävän purkamisen eikä isäntä-Internet-liikenteen käsittelyä)
    • Myönnetään osoitteet aliverkosta 192.168.20.0/24 tunnelin isäntäkoneille (varasto 10 - 30 osoitetta (solmulle #1)). Jokaisella VPN-klusterin solmulla on oltava oma poolinsa.
    • Suoritamme perustodennuksen paikallisesti luodun käyttäjän kanssa ASA:ssa (tätä ei suositella, tämä on helpoin tapa), on parempi tehdä todennus kautta LDAP/SÄDEtai vielä parempaa, solmio Monitekijäinen todennus (MFA), Esim 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
    !

    • (VALINNAINEN): Yllä olevassa esimerkissä käytimme paikallista käyttäjää ITU:ssa etäkäyttäjien todentamiseen, mikä tietysti laboratoriota lukuun ottamatta on huonosti sovellettavissa. Annan esimerkin kuinka nopeasti mukauttaa todennusasetus SÄDE käytetään esimerkiksi palvelinta Cisco Identity Services -moottori:

    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 
    !

    Tämä integrointi mahdollisti paitsi nopean todennusmenettelyn integroinnin AD-hakemistopalveluun, myös sen erottamisen, kuuluuko yhdistetty tietokone AD:lle, ymmärtää, onko tämä laite yritys vai henkilökohtainen, ja arvioida yhdistetyn laitteen tilaa. .

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Määritetään Transparent NAT niin, että asiakkaan ja yrityksen verkkoverkon resurssien välistä liikennettä ei kirjoiteta:

    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

    • (VALINNAINEN): Altistaaksemme asiakkaamme Internetin ASA:n kautta (käytettäessä tunnellall valinnat) PAT:n avulla sekä poistuminen saman ULKOPUOLISEN liitännän kautta, josta ne on kytketty, sinun on tehtävä seuraavat asetukset

    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 
    !

    • Klusteria käytettäessä on erittäin tärkeää, että sisäinen verkko ymmärtää, mikä ASA reitittää paluuliikenteen käyttäjille, tätä varten sinun on jaettava uudelleen reitit / 32 asiakkaille myönnettyä osoitetta.
      Tällä hetkellä emme ole vielä määrittäneet klusteria, mutta meillä on jo toimivat VPN-yhdyskäytävät, jotka voidaan liittää yksitellen FQDN:n tai IP:n kautta.

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    Näemme yhdistetyn asiakkaan ensimmäisen ASA:n reititystaulukossa:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    Jotta koko VPN-klusterimme ja koko yritysverkko tietäisivät reitin asiakkaallemme, jaamme asiakasetuliitteen uudelleen dynaamiseksi reititysprotokollaksi, esimerkiksi OSPF:ksi:

    !
    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

    Nyt meillä on reitti asiakkaalle toisesta ASA-2-yhdyskäytävästä ja klusterin eri VPN-yhdyskäytäviin yhdistetyt käyttäjät voivat esimerkiksi kommunikoida suoraan yrityksen softphonen kautta sekä palauttaa liikennettä käyttäjän pyytämiltä resursseista. tule haluamaasi VPN-yhdyskäytävään:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

  5. Siirrytään Load-Balancing-klusterin määrittämiseen.

    Osoitetta 192.168.31.40 käytetään virtuaalisena IP-osoitteena (VIP - kaikki VPN-asiakkaat muodostavat siihen aluksi yhteyden), tästä osoitteesta pääklusteri tekee REDIRECTin vähemmän kuormitettuun klusterisolmuun. Älä unohda kirjoittaa eteenpäin ja taaksepäin DNS-tietue sekä klusterin kunkin solmun jokaiselle ulkoiselle osoitteelle / FQDN:lle että VIP:lle.

    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)#

    • Tarkistamme klusterin toiminnan kahdella yhdistetyllä asiakkaalla:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    • Tehdään asiakaskokemuksesta mukavampi ASDM:n kautta automaattisesti ladattavalla AnyConnect-profiililla.

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    Nimeämme profiilin kätevällä tavalla ja yhdistämme siihen ryhmäkäytäntömme:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    Asiakkaan seuraavan yhteyden jälkeen tämä profiili ladataan ja asennetaan automaattisesti AnyConnect-asiakasohjelmaan, joten jos haluat muodostaa yhteyden, valitse se luettelosta:

    ASA VPN -kuormituksen tasapainotusklusterin käyttöönotto

    Koska loimme tämän profiilin vain yhdelle ASA:lle ASDM:n avulla, älä unohda toistaa vaiheita muille klusterin ASA:ille.

Johtopäätös: Näin ollen otimme nopeasti käyttöön useita VPN-yhdyskäytäviä sisältävän klusterin automaattisen kuormituksen tasapainotuksen kanssa. Uusien solmujen lisääminen klusteriin on helppoa yksinkertaisella vaakasuuntaisella skaalauksella ottamalla käyttöön uusia ASAv-virtuaalikoneita tai käyttämällä laitteisto-ASA:ita. Monipuolinen AnyConnect-asiakasohjelma voi parantaa huomattavasti suojattua etäyhteyttä käyttämällä Asento (tilaarviot), jota käytetään tehokkaimmin yhdessä keskitetyn ohjaus- ja käyttökirjanpitojärjestelmän kanssa Identiteettipalveluiden moottori.

Lähde: will.com

Lisää kommentti