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. .
.
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.
Logična topologija danega primera:

Začetna uvedba:
-
Namestimo primerke ASAv predlog, ki jih potrebujemo iz slike (ASAv5/10/30/50).
-
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.
-
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: -> Pametno licenciranje programske opreme
- V oknu, ki se odpre, kliknite gumb Nov žeton

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

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

- 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, .
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:


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

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

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

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

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


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

Povezanega odjemalca vidimo v usmerjevalni tabeli prvega ASA:

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-REDISTRIBUTESedaj 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:

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

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

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

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:

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
