ASA VPN-i koormuse tasakaalustamise klastri juurutamine

Selles artiklis tahaksin anda samm-sammult juhised selle kohta, kuidas saate kiiresti juurutada hetkel kõige skaleeritavama skeemi. Kaugjuurdepääsu VPN juurdepääsupõhine AnyConnect ja Cisco ASA - VPN-i koormuse tasakaalustamise klaster.

Sissejuhatus: Paljud ettevõtted üle maailma teevad COVID-19 praegust olukorda silmas pidades jõupingutusi, et viia oma töötajad üle kaugtööle. Seoses massilise üleminekuga kaugtööle suureneb ettevõtete olemasolevate VPN-lüüside koormus kriitiliselt ning vajalik on väga kiire suutlikkus neid skaleerida. Teisest küljest on paljud ettevõtted sunnitud kaugtöö kontseptsiooni kiiresti nullist omandama.

Et aidata ettevõtetel saavutada töötajatele võimalikult lühikese aja jooksul mugav, turvaline ja skaleeritav VPN-juurdepääs, litsentsib Cisco AnyConnecti funktsioonirikka SSL VPN-kliendi kuni 13 nädalaks. Samuti võite testimiseks võtta ASAv (virtuaalne ASA VMWare/Hyper-V/KVM hüperviisorite ja AWS/Azure'i pilveplatvormide jaoks) volitatud partneritelt või teiega koostööd tegevate Cisco esindajatega..

AnyConnecti COVID-19 litsentside väljaandmise protseduuri kirjeldatakse siin.

Olen koostanud samm-sammulise juhendi VPN-i koormuse tasakaalustamise klastri kui kõige skaleeritavama VPN-tehnoloogia lihtsaks juurutamiseks.

Allolev näide on kasutatavate autentimis- ja autoriseerimisalgoritmide osas üsna lihtne, kuid on hea võimalus kiireks alustamiseks (mis praegu paljudele ei ole piisav) koos võimalusega juurutamise ajal põhjalikult kohandada oma vajadustega. protsessi.

Lühiteave: VPN Load Balancing Cluster tehnoloogia ei ole tõrkesiirde ega klastrite funktsioon selle loomulikus tähenduses, see tehnoloogia võib kombineerida täiesti erinevaid ASA mudeleid (teatud piirangutega), et tasakaalustada kaugjuurdepääsu VPN-ühendusi. Sellise klastri sõlmede vahel ei toimu seansside ja konfiguratsioonide sünkroonimist, kuid VPN-ühendusi on võimalik automaatselt koormata ja tagada VPN-ühenduste tõrketaluvus seni, kuni klastrisse jääb vähemalt üks aktiivne sõlm. Koormus klastris tasakaalustatakse automaatselt sõltuvalt sõlmede töökoormusest VPN-i seansside arvuga.

Klastri konkreetsete sõlmede tõrkesiirde jaoks (vajadusel) saab kasutada failirit, nii et aktiivset ühendust haldab failiri esmane sõlm. Fileover ei ole Load-Balancing klastri tõrketaluvuse tagamiseks vajalik tingimus, sõlme rikke korral kannab klaster ise kasutaja seansi üle teise aktiivsesse sõlme, kuid ühenduse olekut salvestamata, mis on täpselt esitaja. Sellest lähtuvalt on võimalik neid kahte tehnoloogiat vajadusel kombineerida.

VPN-i koormuse tasakaalustamise klaster võib sisaldada rohkem kui kahte sõlme.

VPN-i koormuse tasakaalustamise klastrit toetavad ASA 5512-X ja uuemad.

Kuna VPN Load-Balancing klastri iga ASA on seadistuste osas iseseisev üksus, teostame kõik konfiguratsioonietapid igas seadmes eraldi.

Tehnoloogia üksikasjad siin

Antud näite loogiline topoloogia:

ASA VPN-i koormuse tasakaalustamise klastri juurutamine

Esmane juurutamine:

  1. Juurutame pildilt vajalike mallide (ASAv5/10/30/50) ASAv eksemplare.

  2. INSIDE / OUTSIDE liidesed määrame samadele VLAN-idele (Väljas oma VLAN-is, INSIDE omas, aga üldiselt klastri sees, vaata topoloogiat), on oluline, et sama tüüpi liidesed oleksid samas L2 segmendis.

  3. Litsentsid:

    • Hetkel ei ole ASAv-i installil litsentse ja see piirdub kiirusega 100 kbit/s.
    • Litsentsi installimiseks peate oma Smart-kontol looma märgi: https://software.cisco.com/ -> Tarkvara litsentsimine
    • Avanevas aknas klõpsake nuppu Uus märk

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Veenduge, et avanevas aknas oleks aktiivne väli ja linnuke on märgitud Luba ekspordiga juhitavad funktsioonid… Kui see väli pole aktiivne, ei saa te kasutada tugeva krüptimise ja vastavalt VPN-i funktsioone. Kui see väli pole aktiivne, võtke aktiveerimistaotlusega ühendust oma kontomeeskonnaga.

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Pärast nupu vajutamist Loo Token, luuakse tunnus, mida kasutame ASAv litsentsi saamiseks, kopeerige see:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Korrake samme C, D, E iga juurutatud ASAv jaoks.
    • Tokeni kopeerimise hõlbustamiseks lubame ajutiselt telneti. Konfigureerime iga ASA (allpool olev näide illustreerib ASA-1 sätteid). telnet ei tööta väljastpoolt, kui seda tõesti vajad, muuda turvatase 100-ks väljapoole, siis tagasta see tagasi.

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

    • Tokeni registreerimiseks Smart-Account pilves peate pakkuma ASA-le Interneti-juurdepääsu, üksikasjad siin.

    Lühidalt, ASA-d on vaja:

    • juurdepääs Internetile HTTPS-i kaudu;
    • aja sünkroonimine (õigemini NTP kaudu);
    • registreeritud DNS-server;
      • Telnetime oma ASA-ga ja teeme sätted litsentsi aktiveerimiseks Smart-Accounti kaudu.

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

    • Kontrollime, kas seade on litsentsi edukalt registreerinud ja krüpteerimisvalikud on saadaval:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

  4. Seadistage igas lüüsis põhiline SSL-VPN

    • Järgmisena konfigureerige juurdepääs SSH ja ASDM-i kaudu:

    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 
    !

    • ASDM-i toimimiseks peate selle esmalt alla laadima veebisaidilt cisco.com, minu puhul on see järgmine fail:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • AnyConnecti kliendi töötamiseks peate iga kasutatava kliendi töölaua OS-i jaoks üles laadima pildi igasse ASA-sse (kavandatakse kasutada Linuxi / Windowsi / MAC-i), vajate faili Headendi juurutuspakett Pealkirjas:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Allalaaditud faile saab üles laadida näiteks FTP-serverisse ja üles laadida igasse ASA-sse:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Konfigureerime SSL-VPN jaoks ASDM ja Self-Signed sertifikaadi (tootmises on soovitatav kasutada usaldusväärset sertifikaati). Virtuaalse klastri aadressi (vpn-demo.ashes.cc) määratud FQDN ja iga klastri sõlme välisaadressiga seotud FQDN peavad välises DNS-i tsoonis lahendama VÄLISliidese IP-aadressi (või vastendatud aadressile, kui kasutatakse pordi edastamist udp/443 (DTLS) ja tcp/443 (TLS)). Üksikasjalik teave sertifikaadile esitatavate nõuete kohta on toodud jaotises Sertifikaadi kontrollimine dokumentatsioon.

    !
    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               

    • Ärge unustage ASDM-i töö kontrollimiseks määrata porti, näiteks:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Teeme tunneli põhiseaded:
    • Teeme ettevõtte võrgu tunneli kaudu kättesaadavaks ja laseme Internetil otse minna (pole kõige turvalisem meetod, kui ühendaval hostil pole kaitseid, on võimalik tungida läbi nakatunud hosti ja kuvada ettevõtte andmeid, valik split-tunnel-policy tunnell laseb kogu hostiliikluse tunnelisse. Sellest hoolimata jagatud tunnel võimaldab VPN-lüüsi maha laadida ja hosti Interneti-liiklust mitte töödelda)
    • Väljastame tunnelis olevatele hostidele aadressid alamvõrgust 192.168.20.0/24 (kogum 10 kuni 30 aadressi (sõlme nr 1 jaoks)). Igal VPN-i klastri sõlmel peab olema oma bassein.
    • Põhiautentimise teostame ASA-s kohapeal loodud kasutajaga (see pole soovitatav, see on kõige lihtsam meetod), parem on autentimine läbi LDAP/RADIUS, või veel parem, lips Mitmefaktoriline autentimine (MFA)Näiteks 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
    !

    • (VALIKULINE): Ülaltoodud näites kasutasime kaugkasutajate autentimiseks ITU kohalikku kasutajat, mis on muidugi halvasti rakendatav, välja arvatud laboris. Toon näite, kuidas autentimise seadet kiiresti kohandada RADIUS kasutatakse näiteks serverit Cisco identiteediteenuste mootor:

    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 
    !

    See integreerimine võimaldas mitte ainult kiiresti integreerida autentimisprotseduuri AD kataloogiteenusega, vaid ka eristada, kas ühendatud arvuti kuulub AD-le, mõista, kas see seade on ettevõtte või isiklik, ja hinnata ühendatud seadme olekut. .

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Seadistame läbipaistva NAT-i nii, et kliendi ja ettevõtte võrguvõrgu ressursside vaheline liiklus ei oleks kritseldatud:

    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

    • (VALIKULINE): Oma klientidele ASA kaudu Internetti avaldamiseks (kui kasutate tunnell valikud) kasutades PAT-i ja väljudes sama VÄLJALIIDES-liidese kaudu, millest need on ühendatud, peate tegema järgmised sätted

    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 
    !

    • Klastri kasutamisel on äärmiselt oluline võimaldada sisevõrgul aru saada, milline ASA suunab liikluse kasutajatele tagasi suunama, selleks on vaja klientidele väljastatud marsruute / 32 aadressi ümber jagada.
      Hetkel pole me veel klastrit konfigureerinud, kuid meil on juba töötavad VPN-lüüsid, mida saab FQDN-i või IP kaudu eraldi ühendada.

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    Ühendatud klienti näeme esimese ASA marsruutimistabelis:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    Selleks, et kogu meie VPN-klaster ja kogu ettevõtte võrk teaks marsruuti meie kliendini, jaotame kliendi prefiksi ümber dünaamilise marsruutimisprotokolli, näiteks OSPF-i:

    !
    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

    Nüüd on meil marsruut kliendini teisest ASA-2 lüüsist ja klastri erinevate VPN-lüüsidega ühendatud kasutajad saavad näiteks suhelda otse ettevõtte tarkvaratelefoni kaudu, samuti tagastada liiklust kasutaja soovitud ressurssidest. minge soovitud VPN-lüüsi:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

  5. Liigume edasi koormuse tasakaalustamise klastri konfigureerimise juurde.

    Aadressi 192.168.31.40 kasutatakse virtuaalse IP-na (VIP - kõik VPN-i kliendid loovad sellega algselt ühenduse), sellelt aadressilt teeb põhiklaster REDIRECT-i vähem koormatud klastri sõlme. Ärge unustage kirjutada edasi- ja tagurpidi DNS-kirje nii klastri iga sõlme iga välisaadressi / FQDN-i kui ka VIP-i jaoks.

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

    • Kontrollime klastri toimimist kahe ühendatud kliendiga:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    • Muudame kliendikogemuse mugavamaks ASDM-i kaudu automaatselt laaditava AnyConnecti profiiliga.

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    Nimetame profiili mugaval viisil ja seostame sellega oma rühmapoliitika:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    Pärast kliendi järgmist ühendamist laaditakse see profiil automaatselt alla ja installitakse AnyConnecti klienti, nii et kui teil on vaja ühenduse luua, peate selle lihtsalt loendist valima:

    ASA VPN-i koormuse tasakaalustamise klastri juurutamine

    Kuna lõime selle profiili ainult ühes ASA-s, kasutades ASDM-i, ärge unustage samme korrata klastri teiste ASA-de puhul.

Järeldus: Seega juurutasime kiiresti mitme VPN-lüüsi klastri koos automaatse koormuse tasakaalustamisega. Uute sõlmede lisamine klastrisse on lihtne, kasutades lihtsat horisontaalset skaleerimist uute ASAv-i virtuaalmasinate juurutamise või riistvara-ASA-de abil. Funktsiooniderikas AnyConnecti klient võib oluliselt parandada turvalist kaugühendust, kasutades Asend (seisundi hinnangud), mida kasutatakse kõige tõhusamalt koos tsentraliseeritud kontrolli ja juurdepääsuarvestuse süsteemiga Identiteediteenuste mootor.

Allikas: www.habr.com

Lisa kommentaar