Nasazení clusteru pro vyrovnávání zátěže ASA VPN

V tomto článku bych rád poskytl podrobné pokyny, jak můžete rychle nasadit aktuálně nejvíce škálovatelné schéma. Vzdálený přístup VPN přístup založený AnyConnect a Cisco ASA - Cluster pro vyrovnávání zatížení VPN.

Úvod: Mnoho společností po celém světě se s ohledem na současnou situaci s COVID-19 snaží převést své zaměstnance na práci na dálku. Vzhledem k masovému přechodu na práci na dálku kriticky roste zatížení stávajících VPN bran společností a je vyžadována velmi rychlá schopnost jejich škálování. Na druhou stranu je mnoho společností nuceno narychlo zvládnout koncept práce na dálku od nuly.

S cílem pomoci podnikům dosáhnout pohodlného, ​​bezpečného a škálovatelného přístupu k VPN pro zaměstnance v co nejkratším čase, Cisco licencuje klienta SSL VPN s bohatými funkcemi AnyConnect až na 13 týdnů. Můžete si také vyzkoušet ASAv (virtuální ASA pro hypervizory VMWare/Hyper-V/KVM a cloudové platformy AWS/Azure) od autorizovaných partnerů nebo kontaktováním zástupců společnosti Cisco, kteří s vámi spolupracují..

Postup pro vydávání licencí AnyConnect COVID-19 je popsán zde.

Připravil jsem průvodce krok za krokem pro jednoduché nasazení VPN Load-Balancing Cluster jako nejškálovatelnější technologie VPN.

Níže uvedený příklad bude poměrně jednoduchý z hlediska použitých autentizačních a autorizačních algoritmů, ale bude dobrou volbou pro rychlý start (který v současnosti mnohým nestačí) s možností hloubkového přizpůsobení vašim potřebám během nasazení proces.

stručná informace: Technologie VPN Load Balancing Cluster není převzetím služeb při selhání a není funkcí clusteringu v nativním smyslu, tato technologie může kombinovat zcela odlišné modely ASA (s určitými omezeními) za účelem vyvážení zatížení VPN připojení se vzdáleným přístupem. Mezi uzly takového clusteru nedochází k synchronizaci relací a konfigurací, ale je možné automaticky vyrovnávat zatížení VPN spojení a zajistit odolnost VPN spojení proti chybám, dokud v clusteru nezůstane alespoň jeden aktivní uzel. Zátěž v clusteru se automaticky vyrovnává v závislosti na vytížení uzlů počtem relací VPN.

Pro převzetí služeb při selhání konkrétních uzlů clusteru (v případě potřeby) lze použít filer, takže aktivní připojení bude obsluhovat Primární uzel fileru. Fileover není nezbytnou podmínkou pro zajištění odolnosti proti chybám v rámci clusteru Load-Balancing, samotný cluster v případě selhání uzlu přenese uživatelskou relaci do jiného živého uzlu, ale bez uložení stavu připojení, což je přesně poskytnutý souborem. V souladu s tím je možné v případě potřeby tyto dvě technologie kombinovat.

Cluster pro vyrovnávání zatížení VPN může obsahovat více než dva uzly.

Cluster pro vyrovnávání zatížení VPN je podporován na ASA 5512-X a vyšších.

Vzhledem k tomu, že každé ASA v rámci clusteru VPN Load-Balancing je samostatnou jednotkou z hlediska nastavení, provádíme všechny kroky konfigurace individuálně na každém jednotlivém zařízení.

Podrobnosti o technologii zde

Logická topologie daného příkladu:

Nasazení clusteru pro vyrovnávání zátěže ASA VPN

Primární nasazení:

  1. Nasazujeme instance ASAv šablon, které potřebujeme (ASAv5/10/30/50) z obrázku.

  2. Rozhraní INSIDE / OUTSIDE přiřazujeme stejným VLAN (mimo ve vlastní VLAN, INSIDE ve vlastní, ale obecně v rámci clusteru, viz topologie), důležité je, aby rozhraní stejného typu byla ve stejném segmentu L2.

  3. Licence:

    • V tuto chvíli instalace ASAv nebude mít žádné licence a bude omezena na 100 kbps.
    • Chcete-li nainstalovat licenci, musíte ve svém účtu Smart-Account vygenerovat token: https://software.cisco.com/ -> Chytré licencování softwaru
    • V okně, které se otevře, klikněte na tlačítko Nový token

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Ujistěte se, že v okně, které se otevře, je aktivní pole a že je zaškrtnuto Povolit funkce řízené exportem… Bez aktivního tohoto pole nebudete moci používat funkce silného šifrování a tedy ani VPN. Pokud toto pole není aktivní, obraťte se na svůj tým účtu s požadavkem na aktivaci.

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Po stisknutí tlačítka Vytvořit token, vytvoří se token, který použijeme k získání licence pro ASAv, zkopírujte jej:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Opakujte kroky C, D, E pro každý nasazený ASAv.
    • Aby bylo kopírování tokenu snazší, dočasně povolme telnet. Pojďme nakonfigurovat každý ASA (příklad níže ukazuje nastavení na ASA-1). telnet nefunguje s vnějškem, pokud to opravdu potřebujete, změňte úroveň zabezpečení na 100 na vnější a vraťte ji zpět.

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

    • Chcete-li zaregistrovat token v cloudu Smart-Account, musíte ASA poskytnout přístup k internetu, podrobnosti zde.

    Stručně řečeno, ASA je potřeba:

    • přístup přes HTTPS k internetu;
    • synchronizace času (přesněji přes NTP);
    • registrovaný DNS server;
      • Připojíme telnet k našemu ASA a provedeme nastavení pro aktivaci licence prostřednictvím 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>

    • Zkontrolujeme, že zařízení úspěšně zaregistrovalo licenci a jsou k dispozici možnosti šifrování:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

  4. Na každé bráně nastavte základní SSL-VPN

    • Dále nakonfigurujte přístup přes 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 fungovalo, musíte si jej nejprve stáhnout z webu cisco.com, v mém případě je to následující soubor:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Aby klient AnyConnect fungoval, musíte do každého ASA nahrát obrázek pro každý použitý klientský desktopový OS (plánováno používat Linux / Windows / MAC), budete potřebovat soubor s Balíček nasazení koncové stanice V názvu:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Stažené soubory lze nahrát například na server FTP a nahrát do každého jednotlivého ASA:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Nakonfigurujeme ASDM a Self-Signed certifikát pro SSL-VPN (doporučujeme používat důvěryhodný certifikát ve výrobě). Nastavený FQDN adresy virtuálního klastru (vpn-demo.ashes.cc), stejně jako každý FQDN spojený s externí adresou každého uzlu klastru, se musí v externí zóně DNS přeložit na IP adresu rozhraní OUTSIDE (nebo na mapovanou adresu, pokud je použito přesměrování portů udp/443 (DTLS) a tcp/443(TLS)). Podrobné informace o požadavcích na certifikát jsou uvedeny v sekci Ověření certifikátu dokumentace.

    !
    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               

    • Nezapomeňte zadat port pro kontrolu funkčnosti ASDM, například:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Provedeme základní nastavení tunelu:
    • Zpřístupněme firemní síť tunelem a nechme jít přímo Internet (není to nejbezpečnější metoda, pokud na připojujícím se hostiteli nejsou žádné ochrany, je možné proniknout přes infikovaný hostitel a zobrazit firemní data, možnost split-tunnel-policy tunnelall pustí veškerý hostitelský provoz do tunelu. Nicméně dělený tunel umožňuje snížit zátěž brány VPN a nezpracovávat hostitelský internetový provoz)
    • Vydejme adresy z podsítě 192.168.20.0/24 hostitelům v tunelu (soubor od 10 do 30 adres (pro uzel č. 1)). Každý uzel clusteru VPN musí mít svůj vlastní fond.
    • Základní autentizaci provedeme s lokálně vytvořeným uživatelem na ASA (toto se nedoporučuje, je to nejjednodušší způsob), je lepší provést autentizaci přes LDAP/RADIUS, nebo ještě lépe kravatu Multi-Factor Authentication (MFA)Např 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
    !

    • (VOLITELNÝ): Ve výše uvedeném příkladu jsme použili místního uživatele na ITU k ověření vzdálených uživatelů, což je samozřejmě kromě laboratoře špatně použitelné. Uvedu příklad, jak rychle přizpůsobit nastavení pro autentizaci POLOMĚR server, napří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 
    !

    Tato integrace umožnila nejen rychle integrovat autentizační proceduru s adresářovou službou AD, ale také rozlišit, zda připojený počítač patří AD, pochopit, zda je toto zařízení firemní nebo osobní, a posoudit stav připojeného zařízení. .

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Nakonfigurujeme Transparent NAT tak, aby provoz mezi klientem a prostředky podnikové sítě nebyl načmárován:

    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

    • (VOLITELNÝ): Abychom mohli naše klienty vystavit internetu prostřednictvím ASA (při použití tunelall možnosti) pomocí PAT, stejně jako výstup přes stejné VNĚJŠÍ rozhraní, ze kterého jsou připojeni, musíte provést následující nastavení

    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 
    !

    • Při použití clusteru je nesmírně důležité umožnit interní síti, aby pochopila, které ASA má směrovat zpětný provoz k uživatelům, k tomu je třeba přerozdělit trasy / 32 adres vydaných klientům.
      V tuto chvíli ještě nemáme nakonfigurovaný cluster, ale již máme funkční VPN brány, které lze individuálně připojit přes FQDN nebo IP.

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Připojeného klienta vidíme ve směrovací tabulce prvního ASA:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Aby celý náš VPN cluster a celá podniková síť znaly cestu k našemu klientovi, přerozdělíme prefix klienta do dynamického směrovacího protokolu, napří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

    Nyní máme cestu ke klientovi z druhé brány ASA-2 a uživatelé připojení k různým branám VPN v rámci clusteru mohou například komunikovat přímo prostřednictvím podnikového softwarového telefonu a také vracet provoz ze zdrojů požadovaných uživatelem. přejděte na požadovanou bránu VPN:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

  5. Pojďme ke konfiguraci clusteru pro vyrovnávání zátěže.

    Adresa 192.168.31.40 bude použita jako Virtuální IP (VIP - na ni se zpočátku připojí všichni VPN klienti), z této adresy Master cluster provede PŘESMĚROVÁNÍ do méně zatíženého uzlu clusteru. Nezapomeň napsat dopředný a zpětný DNS záznam jak pro každou externí adresu / FQDN každého uzlu clusteru, tak pro 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)#

    • Kontrolujeme provoz clusteru se dvěma připojenými klienty:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    • Udělejme zákaznickou zkušenost pohodlnější s automaticky načteným profilem AnyConnect přes ASDM.

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Profil pojmenujeme pohodlným způsobem a přiřadíme k němu naši skupinovou politiku:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Po dalším připojení klienta se tento profil automaticky stáhne a nainstaluje do klienta AnyConnect, takže pokud se potřebujete připojit, stačí jej vybrat ze seznamu:

    Nasazení clusteru pro vyrovnávání zátěže ASA VPN

    Protože jsme tento profil vytvořili pouze na jednom ASA pomocí ASDM, nezapomeňte zopakovat kroky na ostatních ASA v clusteru.

Závěr: Rychle jsme tak nasadili cluster několika VPN bran s automatickým vyrovnáváním zátěže. Přidání nových uzlů do clusteru je snadné, s jednoduchým horizontálním škálováním nasazením nových virtuálních strojů ASAv nebo pomocí hardwarových ASA. Klient AnyConnect s bohatými funkcemi může výrazně zlepšit zabezpečené vzdálené připojení pomocí Držení těla (odhady stavu), nejefektivněji využitelný ve spojení se systémem centralizovaného řízení a účtování přístupů Identity Services Engine.

Zdroj: www.habr.com

Přidat komentář