U ovom članku, želio bih dati upute korak po korak o tome kako možete brzo primijeniti najskalabilniju shemu u ovom trenutku. VPN za daljinski pristup pristup bazi AnyConnect i Cisco ASA - VPN klaster za balansiranje opterećenja.
Uvod: Mnoge kompanije širom svijeta, s obzirom na trenutnu situaciju sa COVID-19, ulažu napore da svoje zaposlenike prebace na daljinski rad. Zbog masovnog prelaska na rad na daljinu, opterećenje postojećih VPN gateway-a kompanija kritično raste i potrebna je vrlo brza mogućnost njihovog skaliranja. S druge strane, mnoge kompanije su prisiljene da na brzinu savladaju koncept rada na daljinu od nule.
Kako bi pomogao preduzećima da postignu zgodan, siguran i skalabilan VPN pristup za zaposlene u najkraćem mogućem roku, Cisco licencira AnyConnect SSL-VPN klijent bogat funkcijama na period do 13 sedmica. .
.
Pripremio sam vodič korak po korak za jednostavnu implementaciju VPN klastera za balansiranje opterećenja kao najskalabilnije VPN tehnologije.
Primjer u nastavku bit će prilično jednostavan u smislu korištenih algoritama za autentifikaciju i autorizaciju, ali će biti dobra opcija za brzi početak (što trenutno mnogima nije dovoljno) uz mogućnost dubinskog prilagođavanja vašim potrebama tokom implementacije proces.
Kratke informacije: Tehnologija VPN klastera za balansiranje opterećenja nije funkcija prelaska na greške i nije funkcija klasteriranja u svom izvornom smislu, ova tehnologija može kombinovati potpuno različite ASA modele (sa određenim ograničenjima) kako bi izbalansirala VPN veze sa udaljenim pristupom. Nema sinkronizacije sesija i konfiguracija između čvorova takvog klastera, ali je moguće automatski balansirati VPN veze i osigurati otpornost na greške VPN veza sve dok barem jedan aktivni čvor ne ostane u klasteru. Opterećenje u klasteru se automatski balansira ovisno o opterećenju čvorova brojem VPN sesija.
Za napuštanje određenih čvorova klastera (ako je potrebno), može se koristiti filer, tako da će aktivnom vezom upravljati primarni čvor filera. Fileover nije neophodan uslov za osiguranje tolerancije grešaka unutar klastera Load-Balancing, sam klaster će, u slučaju kvara čvora, prenijeti korisničku sesiju na drugi živi čvor, ali bez pohranjivanja statusa veze, što je upravo obezbjeđuje filer. U skladu s tim, moguće je, ako je potrebno, kombinirati ove dvije tehnologije.
VPN klaster za balansiranje opterećenja može sadržavati više od dva čvora.
VPN klaster za balansiranje opterećenja je podržan na ASA 5512-X i novijim.
Budući da je svaki ASA unutar VPN Load-Balancing klastera nezavisna jedinica u smislu postavki, sve korake konfiguracije izvodimo pojedinačno na svakom pojedinačnom uređaju.
Logička topologija datog primjera:

Primarna implementacija:
Mi implementiramo ASAv instance predložaka koji su nam potrebni (ASAv5/10/30/50) sa slike.
INSIDE / OUTSIDE interfejse dodeljujemo istim VLAN-ovima (Spolja u sopstvenom VLAN-u, UNUTRA u svom, ali generalno unutar klastera, pogledajte topologiju), važno je da su interfejsi istog tipa u istom L2 segmentu.
Licence:
- U ovom trenutku ASAv instalacija neće imati nikakve licence i bit će ograničena na 100 kbps.
- Da biste instalirali licencu, potrebno je da generišete token na svom Smart-računu: -> Pametno licenciranje softvera
- U prozoru koji se otvori kliknite na dugme New Token

- Uvjerite se da u prozoru koji se otvori postoji aktivno polje i da je označena kvačica Dozvoli funkcionalnost kontroliranu izvozom… Bez aktivnog ovog polja nećete moći koristiti funkcije jake enkripcije i, shodno tome, VPN. Ako ovo polje nije aktivno, obratite se svom timu naloga sa zahtjevom za aktivaciju.

- Nakon pritiska na dugme Kreirajte token, kreirat će se token koji ćemo koristiti za dobivanje licence za ASAv, kopirajte ga:

- Ponovite korake C,D,E za svaki raspoređeni ASAv.
- Da bismo olakšali kopiranje tokena, dozvolimo privremeno telnet. Konfigurirajmo svaki ASA (primjer ispod ilustruje postavke na ASA-1). telnet ne radi sa vanjskim, ako vam je zaista potreban, promijenite sigurnosni nivo na 100 na vanjski, a zatim ga vratite nazad.
! 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 !- Da biste registrovali token u oblaku Smart-Account, morate omogućiti pristup internetu za ASA, .
Ukratko, ASA je potrebna:
- pristup Internetu putem HTTPS-a;
- sinhronizacija vremena (tačnije, preko NTP-a);
- registrovani DNS server;
- Telnet na naš ASA i vršimo podešavanja za aktiviranje licence preko Smart-Account-a.
! 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>- Provjeravamo da li je uređaj uspješno registrirao licencu i da li su dostupne opcije šifriranja:


Postavite osnovni SSL-VPN na svakom gatewayu
- Zatim konfigurirajte pristup putem SSH i 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 bi ASDM radio, prvo ga morate preuzeti sa web stranice cisco.com, u mom slučaju to je sljedeća datoteka:

- Za rad AnyConnect klijenta, potrebno je preuzeti sliku za svaki operativni sistem desktop klijenta koji se koristi (planiran za upotrebu) na svaki ASA. Linux/Windows/MAC) trebat će vam datoteka sa Paket za implementaciju Headend u naslovu:

- Preuzete datoteke se mogu postaviti, na primjer, na FTP server i otpremiti na svaki pojedinačni ASA:

- Konfigurišemo ASDM i Self-Signed certifikat za SSL-VPN (preporučuje se korištenje pouzdanog certifikata u proizvodnji). Postavljeni FQDN adrese virtuelnog klastera (vpn-demo.ashes.cc), kao i svaki FQDN povezan sa eksternom adresom svakog čvora klastera, mora da se razreši u eksternoj DNS zoni na IP adresu VANJSKOG interfejsa (ili na mapiranu adresu ako se koristi prosljeđivanje porta udp/443 (DTLS) i tcp/443(TLS)). Detaljne informacije o zahtjevima za certifikat su navedene u odjeljku Potvrda certifikata dokumentaciju.
! 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 zaboravite navesti port za provjeru da ASDM radi, na primjer:

- Izvršimo osnovna podešavanja tunela:
- Učinimo korporativnu mrežu dostupnom kroz tunel i pustimo internet direktno (nije najsigurniji način ako nema zaštite na hostu koji se povezuje, moguće je prodrijeti kroz zaraženi host i prikazati korporativne podatke, opcija split-tunnel-policy tunnelall će pustiti sav promet domaćina u tunel. Ipak split-tunel omogućava oslobađanje VPN gateway-a i ne obradu internetskog prometa domaćina)
- Hajde da izdamo adrese hostovima tunela iz podmreže 192.168.20.0/24 (skup od 10 do 30 adresa (za čvor #1)). Svaki čvor VPN klastera mora imati svoj vlastiti bazen.
- Provešćemo osnovnu autentifikaciju sa lokalno kreiranim korisnikom na ASA (ovo se ne preporučuje, ovo je najlakši način), bolje je izvršiti autentifikaciju preko LDAP/RADIUS, ili još bolje, kravata Višefaktorska autentikacija (MFA), na primjer 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 !- (OPCIONALNO): U gornjem primjeru koristili smo lokalnog korisnika na ITU-u za autentifikaciju udaljenih korisnika, što je naravno, osim u laboratoriji, slabo primjenjivo. Navest ću primjer kako brzo prilagoditi postavke za autentifikaciju RADIUS server, na primjer korišten 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 !Ova integracija je omogućila ne samo brzu integraciju procedure autentikacije sa uslugom AD imenika, već i razlikovanje da li povezani računar pripada AD, da se shvati da li je ovaj uređaj korporativni ili lični i da se proceni status povezanog uređaja. .


- Konfigurirajmo Transparent NAT tako da se promet između klijenta i resursa mreže korporativne mreže ne piše:
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- (OPCIONALNO): Kako bismo svoje klijente izložili Internetu putem ASA (prilikom korištenja tunelall opcije) pomoću PAT-a, kao i za izlaz kroz isti VANJSKI interfejs sa kojeg su povezani, potrebno je izvršiti sljedeća podešavanja
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 !- Prilikom korištenja klastera izuzetno je važno omogućiti internoj mreži da razumije koji ASA će usmjeriti povratni promet do korisnika, za to je potrebno preraspodijeliti rute / 32 adrese koje se izdaju klijentima.
Trenutno još nismo konfigurisali klaster, ali već imamo funkcionalne VPN gatewaye koji se mogu pojedinačno povezati preko FQDN ili IP-a.

Vidimo povezanog klijenta u tabeli rutiranja prvog ASA:

Kako bi cijeli naš VPN klaster i cijela korporativna mreža znali put do našeg klijenta, prefiks klijenta ćemo preraspodijeliti u dinamički protokol za usmjeravanje, na primjer 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-REDISTRIBUTESada imamo rutu do klijenta od drugog ASA-2 gatewaya i korisnici povezani na različite VPN gatewaye unutar klastera mogu, na primjer, komunicirati direktno preko korporativnog softphonea, kao i vraćati promet iz resursa koje korisnik traži. dođite na željeni VPN gateway:

Prijeđimo na konfiguriranje klastera za balansiranje opterećenja.
Adresa 192.168.31.40 će se koristiti kao virtuelna IP adresa (VIP - svi VPN klijenti će se inicijalno povezivati na nju), sa ove adrese će Master klaster izvršiti REDIRECT na manje opterećen čvor klastera. Ne zaboravite napisati naprijed i nazad DNS zapis kako za svaku eksternu adresu/FQDN svakog čvora klastera, tako i 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)#- Provjeravamo rad klastera sa dva povezana klijenta:

- Učinimo korisničko iskustvo praktičnijim sa automatski učitanim AnyConnect profilom preko ASDM-a.

Profilu dajemo naziv na prikladan način i povezujemo našu politiku grupe s njim:

Nakon sljedećeg povezivanja klijenta, ovaj profil će se automatski preuzeti i instalirati u AnyConnect klijentu, pa ako se trebate povezati, samo ga odaberite sa liste:

Pošto smo kreirali ovaj profil samo na jednom ASA koristeći ASDM, ne zaboravite da ponovite korake na drugim ASA u klasteru.
Zaključak: Stoga smo brzo postavili klaster od nekoliko VPN gatewaya s automatskim balansiranjem opterećenja. Dodavanje novih čvorova u klaster je jednostavno, uz jednostavno horizontalno skaliranje postavljanjem novih ASAv virtualnih mašina ili korištenjem hardverskih ASA-ova. AnyConnect klijent bogat funkcijama može uvelike poboljšati sigurnu udaljenu vezu korištenjem Držanje (državne procjene), najefikasnije se koristi u sprezi sa sistemom centralizovane kontrole i računovodstva pristupa Identity Services Engine.
izvor: www.habr.com


















