Uvajanje gruče za uravnoteženje obremenitve ASA VPN

V tem članku bi rad podal navodila po korakih, kako hitro uvesti trenutno najbolj razširljivo shemo. Oddaljeni dostop VPN dostop na podlagi AnyConnect in Cisco ASA - Grozd za uravnoteženje obremenitve VPN.

Uvod: Zaradi trenutnih razmer s COVID-19 si številna podjetja po svetu prizadevajo za prehod svojih zaposlenih na delo na daljavo. Zaradi široke uporabe dela na daljavo se obremenitev obstoječih VPN prehodov kritično povečuje, kar zahteva hitro skalabilnost. Hkrati so številna podjetja prisiljena hitro osvojiti koncept dela na daljavo iz nič.

Da bi podjetjem pomagal hitro uvesti priročen, varen in prilagodljiv dostop do VPN za zaposlene, Cisco ponuja licence za odjemalca AnyConnect SSL VPN z bogatimi funkcijami za do 13 tednov. ASAv (virtualni ASA za hipervizorje VMWare/Hyper-V/KVM in oblačne platforme AWS/Azure) lahko preizkusite tudi pri pooblaščenih partnerjih ali pa se obrnete na svojega predstavnika Cisco..

Postopek izdaje licence AnyConnect COVID-19 je opisan tukaj..

Pripravil sem podroben vodnik za preprosto možnost uvajanja gruč za uravnoteženje obremenitve VPN kot najbolj skalabilne tehnologije VPN.

Spodnji primer bo dokaj preprost glede uporabljenih algoritmov za preverjanje pristnosti in avtorizacije, vendar bo dobra možnost za hiter začetek (nekaj, česar mnogi trenutno nimajo) z možnostjo poglobljenega prilagajanja vašim potrebam med postopkom uvajanja.

Kratke informacije: Tehnologija gruče za uravnoteženje obremenitve VPN ni funkcija preklopa ob okvari ali združevanja v gruče v svojem izvornem pomenu. To tehnologijo je mogoče uporabiti za kombiniranje popolnoma različnih modelov ASA (z določenimi omejitvami) za uravnoteženje obremenitve povezav VPN z oddaljenim dostopom. Sinhronizacija sej in konfiguracij med vozlišči v takšni gruči ni mogoča, vendar je samodejno uravnoteženje obremenitve povezav VPN in zagotavljanje tolerance napak za povezave VPN mogoče, dokler v gruči ne ostane vsaj eno aktivno vozlišče. Obremenitev gruče se samodejno uravnoteži glede na obremenitev vozlišča glede na število sej VPN.

Za toleranco napak določenih vozlišč gruče (če je potrebno) se lahko uporabi filter, kar pomeni, da bo aktivno povezavo obravnavalo primarno vozlišče filterja. Filer ni predpogoj za zagotavljanje tolerance napak znotraj gruče za uravnoteženje obremenitve; v primeru okvare vozlišča bo gruča sama prenesla uporabnikovo sejo na drugo aktivno vozlišče, vendar brez ohranjanja stanja povezave, kar pravzaprav zagotavlja filter. Zato se ti dve tehnologiji lahko po potrebi združita.

Gruča za uravnoteženje obremenitve VPN lahko vsebuje več kot dve vozlišči.

Gruča za uravnoteženje obremenitve VPN je podprta v različicah ASA 5512-X in novejših.

Ker je vsak ASA znotraj gruče VPN Load-Balancing neodvisna enota glede na izvedene nastavitve, vse korake konfiguracije izvedemo individualno na vsaki posamezni napravi.

Podrobnosti o tehnologiji so tukaj

Logična topologija danega primera:

Uvajanje gruče za uravnoteženje obremenitve ASA VPN

Začetna uvedba:

  1. Namestimo primerke ASAv predlog, ki jih potrebujemo iz slike (ASAv5/10/30/50).

  2. Vmesnike INSIDE/OUTSIDE dodelimo istim VLAN-om (Outside v svojem VLAN-u, INSIDE v svojem, vendar skupnem znotraj gruče, glej topologijo), pomembno je, da so vmesniki istega tipa v istem L2 segmentu.

  3. Licence:

    • Ob namestitvi ASAv ne bo imel nobenih licenc in bo omejen na hitrost 100 kbps.
    • Za namestitev licence morate v svojem pametnem računu ustvariti žeton: https://software.cisco.com/ -> Pametno licenciranje programske opreme
    • V oknu, ki se odpre, kliknite gumb Nov žeton

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Prepričajte se, da je polje, ki se odpre, aktivno in da je potrditveno polje označeno. Dovoli funkcionalnost, ki jo nadzira izvoz... Če to polje ni omogočeno, ne boste mogli uporabljati močnih funkcij šifriranja in posledično VPN-ja. Če to polje ni omogočeno, se obrnite na svojo ekipo za upravljanje računa in zahtevajte aktivacijo.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Po pritisku na gumb Ustvari žeton, ustvarjen bo žeton, ki ga bomo uporabili za pridobitev licence za ASAv, kopirajmo ga:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Ponovite korake C, D in E za vsak razširjeni ASAv.
    • Za lažje kopiranje žetona bomo začasno omogočili telnet. Konfigurirali bomo vsak ASA (spodnji primer prikazuje nastavitve na ASA-1). Telnet od zunaj ne deluje. Če ga res potrebujete, spremenite varnostno raven na zunanji strani na 100 in jo nato spremenite nazaj.

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

    • Za registracijo žetona v oblaku Smart-Account morate ASA zagotoviti dostop do interneta, podrobnosti tukaj.

    Skratka, ASA je potrebna:

    • Dostop do interneta prek HTTPS;
    • sinhronizacija časa (bolj pravilno z uporabo NTP);
    • registriran DNS strežnik;
      • V naš ASA se prijavimo prek Telneta in konfiguriramo nastavitve za aktivacijo licence prek Smart-Accounta.

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

    • Preverimo, ali je naprava uspešno registrirala licenco in ali so na voljo možnosti šifriranja:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

  4. Nastavitev osnovnega SSL VPN-ja na vsakem prehodu

    • Nato konfiguriramo dostop prek SSH in 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 
    !

    • Za uporabo ASDM ga morate najprej prenesti s spletne strani cisco.com. V mojem primeru je to naslednja datoteka:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Za delovanje odjemalca AnyConnect morate prenesti sliko za vsak uporabljeni (načrtovani za uporabo) operacijski sistem namiznega odjemalca v vsak ASA. Linux/Windows/MAC) boste potrebovali datoteko z Paket za uvajanje glavne postaje v naslovu:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Prenesene datoteke lahko na primer shranite na strežnik FTP in jih naložite na vsak posamezen ASA:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Konfigurirajte ASDM in samopodpisano potrdilo za SSL-VPN (priporočljivo je uporabiti zaupanja vredno potrdilo za produkcijo). Konfigurirano FQDN navideznega naslova gruče (vpn-demo.ashes.cc) in vsak FQDN, povezan z zunanjim naslovom vsakega vozlišča gruče, se mora v zunanji coni DNS razrešiti na naslov IP zunanjega vmesnika (ali na preslikan naslov, če uporabljate posredovanje vrat UDP/443 (DTLS) in TCP/443 (TLS)). Podrobne informacije o zahtevah za potrdilo so navedene v razdelku Preverjanje spričevala dokumentacijo.

    !
    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               

    • Za preizkus delovanja ASDM ne pozabite določiti vrat, na primer:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Izvedimo osnovne nastavitve tunela:
    • Dostop do korporativnega omrežja bomo omogočili prek tunela in spustili internet neposredno (ni najbolj varna metoda, saj na povezovalnem gostitelju ni varnostnih orodij, možen je vdor skozi okuženi gostitelj in izhod korporativnih podatkov, možnost pravilnik o razdeljenem predoru tunnelall bo ves promet gostitelja usmeril v tunel. Vendar Razdeljeni predor omogoča razbremenitev VPN prehoda in ne obdelava internetnega prometa gostitelja)
    • Hostom v tunelu bomo dodelili naslove iz podomrežja 192.168.20.0/24 (skupina od 10 do 30 naslovov (za vozlišče št. 1)). Vsako vozlišče gruče VPN mora imeti svoj bazen.
    • Izvedimo osnovno avtentikacijo z lokalno ustvarjenim uporabnikom na ASA (to ni priporočljivo, to je najpreprostejša metoda), bolje je izvesti avtentikacijo prek LDAP/RADIUSali še bolje, zavežite ga Večfaktorska overitev (MFA)Npr 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
    !

    • (IZBIRNO)V zgornjem primeru smo za preverjanje pristnosti oddaljenih uporabnikov uporabili lokalnega uporabnika na požarnem zidu, kar seveda ni zelo praktično, razen v laboratoriju. Navedel bom primer, kako hitro prilagoditi nastavitev za preverjanje pristnosti na RADIUS strežnik, uporabljen kot primer 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 
    !

    Ta integracija je omogočila ne le hitro integracijo postopka preverjanja pristnosti s storitvijo imenika AD, temveč tudi razlikovanje pripadnosti povezanega računalnika storitvi AD, razumevanje, ali gre za poslovno ali osebno napravo, in oceno stanja povezane naprave.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Konfigurirajmo Transparent NAT tako, da promet med odjemalcem in viri poslovnega omrežja ne bo preusmerjen:

    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

    • (IZBIRNO): Da bi naše stranke povezali s spletom prek ASA (z uporabo tunel možnosti) z uporabo PAT in tudi izhod prek istega zunanjega vmesnika, od koder se povezujejo, morate nastaviti naslednje nastavitve

    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 uporabi gruče je izjemno pomembno, da notranje omrežje razume, kateri ASA naj usmeri povratni promet uporabnikom. Za to je treba prerazporediti naslove /32, izdane odjemalcem.
      Gruče še nismo konfigurirali, vendar že imamo delujoče VPN prehode, s katerimi se je mogoče individualno povezati prek FQDN ali IP.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Povezanega odjemalca vidimo v usmerjevalni tabeli prvega ASA:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Da bi zagotovili, da celotna gruča VPN in poslovno omrežje pozna pot do naše stranke, bomo predpono stranke prerazporedili v dinamični usmerjevalni protokol, kot je 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

    Sedaj imamo pot do odjemalca iz drugega prehoda ASA-2, uporabniki, povezani z različnimi prehodi VPN znotraj gruče, pa lahko na primer komunicirajo neposredno prek korporativnega programskega telefona, medtem ko bo povratni promet iz virov, ki jih zahteva uporabnik, prav tako usmerjen na ustrezen prehod VPN:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

  5. Nadaljujemo z nastavitvijo uravnoteženja obremenitve za gručo.

    Naslov 192.168.31.40 bo uporabljen kot virtualni IP (VIP - vsi VPN odjemalci se bodo sprva povezali z njim), s tega naslova bo glavna gruča preusmerila na manj obremenjeno vozlišče gruče. Ne pozabite določiti zapisi DNS naprej in nazaj tako za vsak zunanji naslov/FQDN vsakega vozlišča gruče kot za 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)#

    • Delovanje gruče preizkusimo z dvema povezanima odjemalcema:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Uporabniško izkušnjo bomo naredili bolj priročno z avtomatsko prenesenimi profili AnyConnect prek ASDM.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Profil poimenujemo na priročen način in z njim povežemo našo skupinsko politiko:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Po naslednji povezavi odjemalca se bo ta profil samodejno prenesel in namestil v odjemalca AnyConnect, zato ga morate, ko se boste morali povezati, le izbrati s seznama:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Ker smo ta profil ustvarili samo na enem ASA z uporabo ASDM, ponovite korake na ostalih ASA v gruči.

Zaključek: Tako smo hitro namestili gručo več VPN prehodov z avtomatskim uravnoteženjem obremenitve. Dodajanje novih vozlišč v gručo je enostavno, kar omogoča preprosto horizontalno skaliranje z namestitvijo novih virtualnih strojev ASAv ali uporabo strojne opreme ASA. Odjemalec AnyConnect, bogat z funkcijami, lahko močno razširi zmogljivosti varne oddaljene povezave z uporabo... Drža (ocena stanja), najučinkoviteje se uporablja v povezavi s centraliziranim sistemom za nadzor dostopa in računovodstva Mehanizem za storitve identitete.

Vir: www.habr.com

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster