Nasadenie ASA VPN klastra na vyrovnávanie záťaže

V tomto článku by som chcel poskytnúť podrobné pokyny, ako môžete rýchlo nasadiť momentálne najviac škálovateľnú schému. Vzdialený prístup VPN na základe prístupu AnyConnect a Cisco ASA - Cluster vyrovnávania záťaže VPN.

Úvod: Mnoho spoločností na celom svete sa vzhľadom na súčasnú situáciu s COVID-19 snaží presunúť svojich zamestnancov na prácu na diaľku. V dôsledku masového prechodu na prácu na diaľku sa záťaž na existujúce VPN brány spoločností kriticky zvyšuje a je potrebná veľmi rýchla schopnosť ich škálovania. Na druhej strane je veľa spoločností nútených rýchlo zvládnuť koncept práce na diaľku od nuly.

S cieľom pomôcť podnikom dosiahnuť pohodlný, bezpečný a škálovateľný prístup k VPN pre zamestnancov v čo najkratšom čase, spoločnosť Cisco licencuje klienta SSL VPN s bohatými funkciami AnyConnect až na 13 týždňov. Môžete si tiež vyskúšať ASAv (virtuálne ASA pre hypervízory VMWare/Hyper-V/KVM a cloudové platformy AWS/Azure) od autorizovaných partnerov alebo kontaktovaním zástupcov spoločnosti Cisco, ktorí s vami spolupracujú..

Postup vydávania licencií AnyConnect COVID-19 je popísaný tu.

Pripravil som podrobný návod na jednoduché nasadenie VPN Load-Balancing Cluster ako najškálovateľnejšej technológie VPN.

Nižšie uvedený príklad bude pomerne jednoduchý z hľadiska použitých autentifikačných a autorizačných algoritmov, ale bude dobrou voľbou pre rýchly štart (čo v súčasnosti mnohým nestačí) s možnosťou hĺbkového prispôsobenia vašim potrebám počas nasadenia. proces.

Stručné informácie: Technológia VPN Load Balancing Cluster nie je núdzové prepnutie ani funkcia klastrovania v jej prirodzenom zmysle, táto technológia môže kombinovať úplne odlišné modely ASA (s určitými obmedzeniami), aby sa vyvážila záťaž VPN pripojení so vzdialeným prístupom. Medzi uzlami takéhoto klastra nedochádza k synchronizácii relácií a konfigurácií, ale je možné automaticky vyrovnávať zaťaženie VPN spojení a zabezpečiť odolnosť VPN spojení proti chybám, kým v klastri nezostane aspoň jeden aktívny uzol. Zaťaženie v klastri je automaticky vyvážené v závislosti od pracovného zaťaženia uzlov počtom relácií VPN.

Pre failover špecifických uzlov klastra (ak je to potrebné) je možné použiť filer, takže aktívne spojenie bude obsluhované Primárnym uzlom fileru. Fileover nie je nevyhnutnou podmienkou pre zabezpečenie odolnosti voči chybám v rámci klastra Load-Balancing, samotný klaster v prípade zlyhania uzla prenesie používateľskú reláciu do iného živého uzla, avšak bez uloženia stavu pripojenia, čo je presne poskytnutý zakladačom. V súlade s tým je možné v prípade potreby tieto dve technológie kombinovať.

Klaster na vyrovnávanie zaťaženia VPN môže obsahovať viac ako dva uzly.

Cluster na vyrovnávanie záťaže VPN je podporovaný na ASA 5512-X a novších.

Keďže každá ASA v rámci klastra VPN Load-Balancing je z hľadiska nastavení nezávislou jednotkou, všetky konfiguračné kroky vykonávame individuálne na každom jednotlivom zariadení.

Podrobnosti o technológii tu

Logická topológia daného príkladu:

Nasadenie ASA VPN klastra na vyrovnávanie záťaže

Primárne nasadenie:

  1. Nasadíme inštancie ASAv šablón, ktoré potrebujeme (ASAv5/10/30/50) z obrázka.

  2. Rozhrania INSIDE / OUTSIDE priraďujeme k rovnakým VLAN (vonku vo vlastnej VLAN, INSIDE vo vlastnej, ale všeobecne v rámci klastra, pozri topológiu), dôležité je, aby rozhrania rovnakého typu boli v rovnakom segmente L2.

  3. Licencie:

    • V súčasnosti inštalácia ASAv nebude mať žiadne licencie a bude obmedzená na 100 kbps.
    • Ak chcete nainštalovať licenciu, musíte si vygenerovať token vo svojom inteligentnom účte: https://software.cisco.com/ -> Licencovanie inteligentného softvéru
    • V okne, ktoré sa otvorí, kliknite na tlačidlo Nový token

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Uistite sa, že v okne, ktoré sa otvorí, je aktívne pole a je začiarknuté Povoliť funkcie riadené exportom… Bez aktívneho tohto poľa nebudete môcť využívať funkcie silného šifrovania a teda ani VPN. Ak toto pole nie je aktívne, kontaktujte svoj tím účtu so žiadosťou o aktiváciu.

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Po stlačení tlačidla Vytvoriť token, vytvorí sa token, ktorý použijeme na získanie licencie pre ASAv, skopírujte ho:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Opakujte kroky C, D, E pre každý nasadený ASAv.
    • Aby bolo kopírovanie tokenu jednoduchšie, dočasne povoľme telnet. Nakonfigurujme každý ASA (príklad nižšie ilustruje nastavenia na ASA-1). telnet nefunguje s vonkajškom, ak ho skutočne potrebujete, zmeňte úroveň zabezpečenia na 100 na vonkajšok a potom ho vráťte späť.

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

    • Ak chcete zaregistrovať token v cloude Smart-Account, musíte poskytnúť prístup na internet pre ASA, podrobnosti tu.

    Stručne povedané, ASA je potrebná:

    • prístup cez HTTPS na internet;
    • synchronizácia času (správnejšie cez NTP);
    • registrovaný DNS server;
      • Telnetujeme do nášho ASA a robíme nastavenia na aktiváciu licencie cez 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>

    • Skontrolujeme, či zariadenie úspešne zaregistrovalo licenciu a či sú k dispozícii možnosti šifrovania:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

  4. Na každej bráne nastavte základnú SSL-VPN

    • Ďalej nakonfigurujte prístup cez SSH a 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 
    !

    • Aby ASDM fungoval, musíte si ho najprv stiahnuť z webovej stránky cisco.com, v mojom prípade je to nasledujúci súbor:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Aby klient AnyConnect fungoval, musíte nahrať obrázok do každého ASA pre každý použitý klientsky desktopový OS (plánované používať Linux / Windows / MAC), budete potrebovať súbor s Balík nasadenia koncovej stanice V názve:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Stiahnuté súbory je možné nahrať napríklad na server FTP a nahrať do každého jednotlivého ASA:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Nakonfigurujeme ASDM a Self-Signed certifikát pre SSL-VPN (odporúčame použiť dôveryhodný certifikát vo výrobe). Nastavený FQDN adresy virtuálneho klastra (vpn-demo.ashes.cc), ako aj každý FQDN spojený s externou adresou každého uzla klastra, sa musí v externej zóne DNS rozlíšiť na IP adresu rozhrania OUTSIDE (alebo na mapovanú adresu, ak sa používa presmerovanie portov udp/443 (DTLS) a tcp/443 (TLS)). Podrobné informácie o požiadavkách na certifikát sú uvedené v časti Overenie certifikátu dokumentáciu.

    !
    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               

    • Nezabudnite zadať port na kontrolu funkčnosti ASDM, napríklad:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Vykonajte základné nastavenia tunela:
    • Sprístupnime firemnú sieť cez tunel a nechajme internet ísť priamo (nie je to najbezpečnejšia metóda, ak na pripájajúcom sa hostiteľovi nie sú žiadne ochrany, je možné preniknúť cez infikovaný hostiteľ a zobraziť firemné údaje, možnosť split-tunel-policy tunnelall vpustí všetku hostiteľskú prevádzku do tunela. Napriek tomu delený tunel umožňuje znížiť zaťaženie brány VPN a nespracovať hostiteľský internetový prenos)
    • Prideľme adresy z podsiete 192.168.20.0/24 hostiteľom v tuneli (skupina od 10 do 30 adries (pre uzol č. 1)). Každý uzol klastra VPN musí mať svoju vlastnú oblasť.
    • Základnú autentifikáciu vykonáme s lokálne vytvoreným používateľom na ASA (neodporúčame, je to najjednoduchší spôsob), je lepšie vykonať autentifikáciu cez LDAP/RADIUS, alebo ešte lepšie kravatu Viacfaktorová autentifikácia (MFA)Napr 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
    !

    • (VOLITEĽNÉ): Vo vyššie uvedenom príklade sme na autentifikáciu vzdialených používateľov použili lokálneho používateľa na ITU, čo je samozrejme s výnimkou laboratória zle použiteľné. Uvediem príklad, ako rýchlo prispôsobiť nastavenie pre autentifikáciu POLOMER server, napríklad použitý 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 
    !

    Táto integrácia umožnila nielen rýchlo integrovať autentifikačnú procedúru s adresárovou službou AD, ale aj rozlíšiť, či pripojený počítač patrí AD, pochopiť, či je toto zariadenie firemné alebo osobné, a posúdiť stav pripojeného zariadenia. .

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Nakonfigurujme Transparent NAT tak, aby prevádzka medzi klientom a zdrojmi podnikovej siete nebola načmáraná:

    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

    • (VOLITEĽNÉ): S cieľom vystaviť našich klientov internetu prostredníctvom ASA (pri používaní tunnelall možnosti) pomocou PAT, ako aj výstup cez rovnaké rozhranie OUTSIDE, z ktorého sú pripojené, musíte vykonať nasledujúce nastavenia

    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 
    !

    • Pri používaní klastra je mimoriadne dôležité umožniť internej sieti, aby pochopila, ktoré ASA má smerovať spätnú prevádzku k používateľom, preto musíte prerozdeliť trasy / 32 adries vydaných klientom.
      V tejto chvíli ešte nemáme nakonfigurovaný klaster, ale už máme funkčné VPN brány, ktoré je možné individuálne pripojiť cez FQDN alebo IP.

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Pripojeného klienta vidíme v smerovacej tabuľke prvého ASA:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Aby celý náš VPN klaster a celá podniková sieť poznali cestu k nášmu klientovi, prerozdelíme prefix klienta do dynamického smerovacieho protokolu, napríklad 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

    Teraz máme cestu ku klientovi z druhej brány ASA-2 a používatelia pripojení k rôznym bránam VPN v rámci klastra môžu napríklad komunikovať priamo cez firemný softvérový telefón, ako aj vracať prevádzku zo zdrojov požadovaných používateľom. prejdite na požadovanú bránu VPN:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

  5. Prejdime ku konfigurácii klastra na vyrovnávanie záťaže.

    Adresa 192.168.31.40 bude použitá ako Virtuálna IP (VIP - spočiatku sa na ňu pripájajú všetci VPN klienti), z tejto adresy Master cluster urobí PRESMEROVANIE na menej zaťažený uzol klastra. Nezabudni napísať dopredný a spätný DNS záznam pre každú externú adresu / FQDN každého uzla klastra a pre 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)#

    • Skontrolujeme fungovanie klastra s dvoma pripojenými klientmi:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    • Urobme zákaznícku skúsenosť pohodlnejšou s automaticky načítaným profilom AnyConnect cez ASDM.

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Profil pomenujeme pohodlným spôsobom a priradíme k nemu našu skupinovú politiku:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Po ďalšom pripojení klienta sa tento profil automaticky stiahne a nainštaluje do klienta AnyConnect, takže ak sa potrebujete pripojiť, stačí ho vybrať zo zoznamu:

    Nasadenie ASA VPN klastra na vyrovnávanie záťaže

    Keďže sme tento profil vytvorili iba na jednom ASA pomocou ASDM, nezabudnite zopakovať kroky na ostatných ASA v klastri.

Záver: Rýchlo sme teda nasadili klaster niekoľkých VPN brán s automatickým vyrovnávaním záťaže. Pridávanie nových uzlov do klastra je jednoduché, s jednoduchým horizontálnym škálovaním nasadením nových virtuálnych strojov ASAv alebo pomocou hardvérových ASA. Klient AnyConnect s bohatými funkciami môže výrazne zlepšiť zabezpečené vzdialené pripojenie pomocou Držanie tela (odhady stavu), najúčinnejšie využívaný v spojení so systémom centralizovaného riadenia a účtovníctva prístupov Modul služieb identity.

Zdroj: hab.com

Pridať komentár