Uvajanje gruče za uravnoteženje obremenitve ASA VPN

V tem članku bi rad ponudil navodila po korakih, kako lahko hitro uvedete trenutno najbolj razširljivo shemo. Oddaljeni dostop VPN osnovni dostop AnyConnect in Cisco ASA - Gruča za izravnavo obremenitve VPN.

Uvod: Številna podjetja po svetu si zaradi trenutne situacije s COVID-19 prizadevajo svoje zaposlene preusmeriti na delo na daljavo. Zaradi množičnega prehoda na delo na daljavo se obremenitev obstoječih VPN prehodov podjetij kritično povečuje in potrebna je zelo hitra sposobnost njihovega prilagajanja. Po drugi strani pa so številna podjetja prisiljena na hitro usvojiti koncept dela na daljavo iz nič.

Da bi podjetjem pomagal doseči udoben, varen in razširljiv dostop VPN za zaposlene v najkrajšem možnem času, Cisco licencira odjemalca SSL-VPN s funkcijami AnyConnect za do 13 tednov. ASAv lahko preizkusite tudi (virtualni ASA za hipervizorje VMWare/Hyper-V/KVM in platforme v oblaku AWS/Azure) pri pooblaščenih partnerjih ali tako, da se obrnete na predstavnike Cisca, ki sodelujejo z vami.

Postopek za izdajo licenc AnyConnect COVID-19 je opisan tukaj.

Pripravil sem vodnik po korakih za enostavno uvedbo VPN Load-Balancing Cluster kot najbolj razširljive VPN tehnologije.

Spodnji primer bo precej preprost glede na uporabljene algoritme za preverjanje pristnosti in avtorizacijo, vendar bo dobra možnost za hiter začetek (kar trenutno mnogim ni dovolj) z možnostjo poglobljene prilagoditve vašim potrebam med uvajanjem. postopek.

Kratke informacije: Tehnologija grozda za izravnavo obremenitve VPN ni funkcija samodejnega preklopa ali združevanja v gruče v izvornem smislu; ta tehnologija lahko združuje popolnoma različne modele ASA (z določenimi omejitvami), da uravnoteži obremenitev povezav VPN z oddaljenim dostopom. Med vozlišči takšne gruče ni sinhronizacije sej in konfiguracij, je pa mogoče samodejno uravnavati obremenitev VPN povezav in zagotavljati toleranco napak VPN povezav, dokler v gruči ne ostane vsaj eno aktivno vozlišče. Obremenitev v gruči se samodejno uravnoteži glede na obremenitev vozlišč glede na število sej VPN.

Za samodejni preklop določenih vozlišč gruče (če je potrebno) je mogoče uporabiti datoteko, tako da bo aktivno povezavo obravnavalo primarno vozlišče datoteke. Fileover ni nujen pogoj za zagotavljanje tolerance napak znotraj Load-Balancing gruče, gruče same v primeru okvare vozlišča prenesejo uporabniško sejo na drugo živo vozlišče, vendar brez shranjevanja statusa povezave, kar je natančno priskrbel vložnik. V skladu s tem je mogoče po potrebi združiti ti dve tehnologiji.

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

Gruča za izravnavo obremenitve VPN je podprta na ASA 5512-X in novejših.

Ker je vsak ASA znotraj VPN Load-Balancing clustra glede nastavitev samostojna enota, izvajamo vse konfiguracijske korake posebej na vsaki posamezni napravi.

Podrobnosti o tehnologiji tukaj

Logična topologija danega primera:

Uvajanje gruče za uravnoteženje obremenitve ASA VPN

Začetna uvedba:

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

  2. Vmesnike INSIDE / OUTSIDE dodelimo istim VLAN-om (zunaj v svojem VLAN-u, INSIDE v svojem, vendar na splošno znotraj gruče, glej topologijo), pomembno je, da so vmesniki iste vrste v istem segmentu L2.

  3. Licence:

    • Trenutno namestitev ASAv ne bo imela nobenih licenc in bo omejena na 100 kbps.
    • Če želite namestiti licenco, 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 v oknu, ki se odpre, aktivno in potrditveno polje označeno Dovoli izvozno nadzorovano funkcionalnost… Brez aktivnega tega polja ne boste mogli uporabljati funkcij močnega šifriranja in s tem VPN. Če to polje ni aktivno, se obrnite na ekipo za račun z zahtevo za aktivacijo.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

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

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Ponovimo korake C, D, E za vsako nameščeno ASAv.
    • Za lažje kopiranje žetona začasno dovolimo telnet. Konfigurirajmo vsak ASA (spodnji primer prikazuje nastavitve na ASA-1). telnet ne deluje z zunaj, če ga res potrebujete, spremenite varnostno raven na 100 na zunaj, nato pa ga vrnite 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
    !

    • Če želite registrirati žeton v oblaku Smart-Account, morate zagotoviti dostop do interneta za ASA, podrobnosti tukaj.

    Skratka, ASA je potreben:

    • dostop preko HTTPS do interneta;
    • časovna sinhronizacija (pravilneje prek NTP);
    • registriran DNS strežnik;
      • Našemu ASA vzpostavimo telnet in izvedemo nastavitve za aktiviranje licence prek pametnega računa.

    !
    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. Konfiguriranje osnovnega SSL-VPN na vsakem prehodu

    • Nato konfigurirajte 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 
    !

    • Da bo ASDM deloval, 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

    • Če želite, da odjemalec AnyConnect deluje, morate naložiti sliko v vsak ASA za vsak uporabljeni OS namiznega odjemalca (načrtovana uporaba Linux / Windows / MAC), potrebovali boste datoteko z Paket za uvedbo glavne enote V naslovu:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Prenesene datoteke je mogoče naložiti na primer na strežnik FTP in naložiti v vsak posamezen ASA:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Konfiguriramo ASDM in samopodpisano potrdilo za SSL-VPN (priporočljiva je uporaba zaupanja vrednega potrdila v produkciji). Nastavljeni FQDN naslova navidezne gruče (vpn-demo.ashes.cc), kot tudi vsak FQDN, povezan z zunanjim naslovom vsakega vozlišča gruče, se mora v zunanjem območju DNS razrešiti v naslov IP vmesnika OUTSIDE (ali na preslikani naslov, če se uporablja posredovanje vrat udp/443 (DTLS) in tcp/443(TLS)). Podrobne informacije o zahtevah za certifikat 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               

    • Ne pozabite določiti vrat za preverjanje delovanja ASDM, na primer:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Izvedemo osnovne nastavitve tunela:
    • Omrežje podjetja bomo naredili dostopno prek tunela in neposredno povezali internet (ni najbolj varna metoda, ker na povezovalnem gostitelju ni varnostnih ukrepov, možno je prodreti skozi okuženega gostitelja in izpisati podatke podjetja, možnost split-tunnel-policy tunnelall bo spustil ves gostiteljski promet v predor. Kljub temu split-tunel omogoča razbremenitev prehoda VPN in ne obdeluje gostiteljskega internetnega prometa)
    • Izdajmo naslove iz podomrežja 192.168.20.0/24 gostiteljem v tunelu (pool od 10 do 30 naslovov (za vozlišče #1)). Vsako vozlišče gruče VPN mora imeti svoje lastno področje.
    • Izvedli bomo osnovno avtentikacijo z lokalno ustvarjenim uporabnikom na ASA (To ni priporočljivo, to je najlažji način), bolje je, da avtentikacijo izvedete prek LDAP/RADIJ, ali še bolje, kravato 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
    !

    • (NEOBVEZNO): V zgornjem primeru smo za avtentikacijo oddaljenih uporabnikov uporabili lokalnega uporabnika na ITU, kar je seveda, razen v laboratoriju, slabo uporabno. Dal bom primer, kako hitro prilagoditi nastavitev za preverjanje pristnosti RADIUS strežnik, na primer rabljen 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 z imeniško storitvijo AD, temveč tudi razlikovanje, ali povezani računalnik pripada AD, razumevanje, ali gre za poslovno ali osebno napravo, in oceno stanja povezanega napravo.

    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 omrežnimi viri omrežja podjetja ni moten:

    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

    • (NEOBVEZNO): Da bi naše stranke izpostavili internetu prek ASA (pri uporabi tunnelall možnosti) z uporabo PAT in tudi izhodom prek istega vmesnika OUTSIDE, od koder so povezani, morate opraviti 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 omogočiti notranjemu omrežju, da razume, kateri ASA naj usmeri povratni promet uporabnikom, za to morate prerazporediti poti / 32 naslovov, izdanih strankam.
      Trenutno še nismo konfigurirali grozda, vendar že imamo delujoče VPN prehode, na katere se lahko individualno povežete preko 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 naša celotna gruča VPN in celotno omrežje podjetja poznala pot do našega odjemalca, bomo predpono odjemalca prerazporedili v dinamični usmerjevalni protokol, na primer 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

    Zdaj imamo pot do odjemalca iz drugega prehoda ASA-2 in uporabniki, povezani z različnimi prehodi VPN znotraj gruče, lahko na primer neposredno komunicirajo prek korporativnega programskega telefona in vračajo promet iz virov, ki jih zahteva uporabnik. pridite do želenega prehoda VPN:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

  5. Preidimo na konfiguracijo gruče za uravnoteženje obremenitve.

    Naslov 192.168.31.40 bo uporabljen kot navidezni IP (VIP - vsi odjemalci VPN se bodo na začetku povezali nanj), s tega naslova bo Cluster Master PREUSMERIL na manj obremenjeno vozlišče gruče. Ne pozabite napisati naprej in nazaj zapis DNS 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 preverimo z dvema povezanima odjemalcema:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    • Naredimo uporabniško izkušnjo bolj priročno s samodejno naloženim profilom AnyConnect prek ASDM.

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Profil poimenujemo na prikladen način in z njim povežemo naš pravilnik skupine:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Po naslednji povezavi odjemalca bo ta profil samodejno prenesen in nameščen v odjemalcu AnyConnect, tako da, če se morate povezati, ga morate samo izbrati s seznama:

    Uvajanje gruče za uravnoteženje obremenitve ASA VPN

    Ker smo ta profil ustvarili samo na enem ASA z uporabo ASDM, ne pozabite ponoviti korakov na drugih ASA v gruči.

Zaključek: Tako smo hitro uvedli gručo več prehodov VPN s samodejnim uravnavanjem obremenitve. Dodajanje novih vozlišč v gručo je enostavno s preprostim vodoravnim skaliranjem z uvedbo novih virtualnih strojev ASAv ali uporabo ASA strojne opreme. Funkcionalno bogat odjemalec AnyConnect lahko močno izboljša varno oddaljeno povezavo z uporabo Drža (ocene stanja), ki se najbolj učinkovito uporablja v povezavi s sistemom centraliziranega nadzora in računovodstva dostopa Identity Services Engine.

Vir: www.habr.com

Dodaj komentar