Šiame straipsnyje norėčiau pateikti nuoseklias instrukcijas, kaip galite greitai įdiegti šiuo metu labiausiai keičiamą schemą. Nuotolinės prieigos VPN pagrįsta prieiga AnyConnect ir Cisco ASA - VPN apkrovos balansavimo klasteris.
Įvadas: Daugelis įmonių visame pasaulyje, atsižvelgdamos į dabartinę situaciją dėl COVID-19, stengiasi perkelti savo darbuotojus dirbti nuotoliniu būdu. Dėl masinio perėjimo prie nuotolinio darbo esamų įmonių VPN šliuzų apkrova kritiškai didėja ir reikalinga labai greita galimybė juos išplėsti. Kita vertus, daugelis įmonių yra priverstos paskubomis įsisavinti nuotolinio darbo sąvoką nuo nulio.
Aš parengiau nuoseklų vadovą, kaip paprastai įdiegti VPN apkrovos balansavimo grupę kaip labiausiai keičiamą VPN technologiją.
Žemiau pateiktas pavyzdys bus gana paprastas naudojamų autentifikavimo ir autorizacijos algoritmų atžvilgiu, tačiau bus geras pasirinkimas norint greitai pradėti (kurio šiuo metu daugeliui nepakanka) su galimybe nuodugniai prisitaikyti prie jūsų poreikių diegimo metu. procesas.
Trumpa informacija: VPN apkrovos balansavimo klasterio technologija nėra perkrovimas ir ne klasterizavimo funkcija savo gimtąja prasme, ši technologija gali derinti visiškai skirtingus ASA modelius (su tam tikrais apribojimais), kad būtų galima subalansuoti nuotolinės prieigos VPN ryšius. Tarp tokio klasterio mazgų nevyksta seansų ir konfigūracijų sinchronizavimas, tačiau galima automatiškai subalansuoti VPN ryšius ir užtikrinti VPN jungčių atsparumą gedimams, kol klasteryje liks bent vienas aktyvus mazgas. Klasterio apkrova automatiškai subalansuojama priklausomai nuo mazgų darbo krūvio pagal VPN seansų skaičių.
Konkrečių klasterio mazgų perkėlimui (jei reikia) gali būti naudojamas failas, todėl aktyvų ryšį tvarkys pirminis failo mazgas. Failų perkėlimas nėra būtina sąlyga norint užtikrinti atsparumą gedimams apkrovos balansavimo klasteryje, pats klasteris, mazgo gedimo atveju, perkels vartotojo seansą į kitą veikiantį mazgą, tačiau neišsaugos ryšio būsenos, kuri yra būtent pateikė pateikėjas. Atitinkamai, jei reikia, šias dvi technologijas galima sujungti.
VPN apkrovos balansavimo klasteryje gali būti daugiau nei du mazgai.
VPN apkrovos balansavimo grupė palaikoma ASA 5512-X ir naujesnėje versijoje.
Kadangi kiekviena VPN apkrovos balansavimo klasteryje esanti ASA yra nepriklausomas vienetas nustatymų požiūriu, visus konfigūravimo veiksmus atliekame atskirai kiekviename atskirame įrenginyje.
Iš vaizdo diegiame reikalingų šablonų (ASAv5/10/30/50) ASAv egzempliorius.
INSIDE / OUTSIDE sąsajas priskiriame tiems patiems VLAN (išorėje savo VLAN, INSIDE savo, bet apskritai klasterio viduje, žr. topologiją), svarbu, kad to paties tipo sąsajos būtų tame pačiame L2 segmente.
Licencijos:
Šiuo metu ASAv diegimas neturės jokių licencijų ir bus apribotas iki 100 kbps.
Norėdami įdiegti licenciją, išmaniojoje paskyroje turite sugeneruoti prieigos raktą: https://software.cisco.com/ -> Išmaniosios programinės įrangos licencijavimas
Atsidariusiame lange spustelėkite mygtuką Naujas Tokenas
Įsitikinkite, kad atsidariusiame lange yra aktyvus laukas ir pažymėtas langelis Leisti eksportuoti valdomas funkcijas… Jei šis laukas nebus aktyvus, negalėsite naudotis stipraus šifravimo ir atitinkamai VPN funkcijomis. Jei šis laukas neaktyvus, susisiekite su savo paskyros komanda ir pateikite aktyvinimo užklausą.
Paspaudus mygtuką Kurti prieigos raktą, bus sukurtas prieigos raktas, kurį naudosime norėdami gauti ASAv licenciją, nukopijuokite jį:
Pakartokite C, D, E veiksmus kiekvienam įdiegtam ASAv.
Kad būtų lengviau kopijuoti prieigos raktą, laikinai leiskime telnet. Sukonfigūruokime kiekvieną ASA (toliau pateiktas pavyzdys iliustruoja ASA-1 nustatymus). telnet neveikia su išore, jei labai reikia, pakeiskite saugumo lygį į 100 į išorę, tada grąžinkite atgal.
!
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
!
Norėdami užregistruoti prieigos raktą „Smart-Account“ debesyje, turite suteikti ASA prieigą prie interneto, detales čia.
Trumpai tariant, ASA reikalinga:
prieiga prie interneto per HTTPS;
laiko sinchronizavimas (tiksliau, per NTP);
registruotas DNS serveris;
Mes susisiekiame su savo ASA ir atliekame nustatymus, kad suaktyvintume licenciją per „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>
Patikriname, ar įrenginys sėkmingai užregistravo licenciją ir yra šifravimo parinkčių:
Kiekviename šliuze nustatykite pagrindinį SSL-VPN
Tada sukonfigūruokite prieigą per SSH ir 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
!
Kad ASDM veiktų, pirmiausia turite jį atsisiųsti iš cisco.com svetainės, mano atveju tai yra šis failas:
Kad AnyConnect klientas veiktų, turite įkelti vaizdą į kiekvieną ASA kiekvienai naudojamai darbalaukio kliento OS (planuojama naudoti Linux / Windows / MAC), jums reikės failo su Headend diegimo paketas Pavadinime:
Atsisiųstus failus galima įkelti, pavyzdžiui, į FTP serverį ir į kiekvieną atskirą ASA:
Konfigūruojame ASDM ir Self-Signed sertifikatą SSL-VPN (gamyboje rekomenduojama naudoti patikimą sertifikatą). Nustatytas virtualaus klasterio adreso FQDN (vpn-demo.ashes.cc), taip pat kiekvienas FQDN, susietas su kiekvieno klasterio mazgo išoriniu adresu, išorinėje DNS zonoje turi būti išspręstas pagal IŠORĖS sąsajos IP adresą (arba į susietą adresą, jei naudojamas prievado persiuntimas udp/443 (DTLS) ir tcp/443 (TLS)). Išsami informacija apie sertifikatui keliamus reikalavimus nurodyta skyriuje Pažymėjimo patikrinimas dokumentacija.
!
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
Nepamirškite nurodyti prievado, kad patikrintumėte, ar ASDM veikia, pavyzdžiui:
Atlikime pagrindinius tunelio nustatymus:
Padarykime įmonės tinklą pasiekiamą per tunelį ir paleisime internetą tiesiai (ne saugiausias būdas, jei jungiančiame pagrindiniame kompiuteryje nėra apsaugos, galima prasiskverbti per užkrėstą pagrindinį kompiuterį ir rodyti įmonės duomenis, parinktis split-tunnel-policy tunellall leis į tunelį patekti visą srautą. Nepaisant to padalintas tunelis leidžia iškrauti VPN šliuzą ir neapdoroti pagrindinio interneto srauto)
Išduokime adresus iš 192.168.20.0/24 potinklio pagrindiniams kompiuteriams tunelyje (sukaupkite nuo 10 iki 30 adresų (mazgui #1)). Kiekvienas VPN klasterio mazgas turi turėti savo baseiną.
Atliksime pagrindinį autentifikavimą su vietoje sukurtu vartotoju ASA (Tai nerekomenduojama, tai yra lengviausias būdas), geriau autentifikuoti per LDAP/RADIUS, arba dar geriau – kaklaraištį Daugiafaktoris autentifikavimas (MFA), Pavyzdžiui Cisco DUO.
(PASIRENKAMA): Aukščiau pateiktame pavyzdyje mes naudojome vietinį ITU vartotoją, kad patvirtintume nuotolinius vartotojus, o tai, žinoma, išskyrus laboratoriją, yra prastai taikoma. Pateiksiu pavyzdį, kaip greitai pritaikyti nustatymą autentifikavimui RADIUS Pavyzdžiui, naudojamas serveris „Cisco Identity Services“ variklis:
Ši integracija leido ne tik greitai integruoti autentifikavimo procedūrą su AD katalogo paslauga, bet ir atskirti, ar prijungtas kompiuteris priklauso AD, suprasti, ar šis įrenginys yra įmonės ar asmeninis, bei įvertinti prijungto įrenginio būseną. .
Sukonfigūruokime Skaidrųjį NAT taip, kad srautas tarp kliento ir įmonės tinklo išteklių nebūtų užrašytas:
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
(PASIRENKAMA): Siekdami atskleisti savo klientams internetą per ASA (kai naudojate tunelis parinktys) naudodami PAT, taip pat išeiti per tą pačią OUTSIDE sąsają, iš kurios jie yra prijungti, turite atlikti šiuos nustatymus
Naudojant klasterį, labai svarbu įgalinti vidinį tinklą, kad jis suprastų, kuri ASA nukreiptų grįžtamąjį srautą vartotojams, tam reikia perskirstyti maršrutus / 32 klientams išduotus adresus.
Šiuo metu dar nesukonfigūravome klasterio, bet jau turime veikiančius VPN šliuzus, kuriuos galima individualiai prijungti per FQDN arba IP.
Prijungtą klientą matome pirmosios ASA maršruto parinkimo lentelėje:
Kad visas mūsų VPN klasteris ir visas įmonės tinklas žinotų maršrutą iki mūsų kliento, perskirstysime kliento prefiksą į dinaminį maršruto parinkimo protokolą, pavyzdžiui, OSPF:
Dabar turime maršrutą į klientą iš antrojo ASA-2 šliuzo, o vartotojai, prisijungę prie skirtingų VPN šliuzų klasteryje, gali, pavyzdžiui, tiesiogiai bendrauti per įmonės programinį telefoną, taip pat grąžinti srautą iš vartotojo prašomų išteklių. eikite į norimą VPN šliuzą:
Pereikime prie apkrovos balansavimo klasterio konfigūravimo.
Adresas 192.168.31.40 bus naudojamas kaip virtualus IP (VIP – prie jo iš pradžių prisijungs visi VPN klientai), iš šio adreso pagrindinis klasteris atliks REDIRECT į mažiau apkrautą klasterio mazgą. Nepamirškite parašyti pirminis ir atvirkštinis DNS įrašas tiek kiekvienam išoriniam kiekvieno klasterio mazgo išoriniam adresui / FQDN, tiek VIP.
Klasterio veikimą tikriname su dviem prijungtais klientais:
Padarykime patogesnę klientų patirtį automatiškai įkeliamu AnyConnect profiliu per ASDM.
Pavadiname profilį patogiu būdu ir susiejame su juo savo grupės politiką:
Po kito kliento prisijungimo šis profilis bus automatiškai atsisiųstas ir įdiegtas „AnyConnect“ kliente, todėl jei reikia prisijungti, tiesiog pasirinkite jį iš sąrašo:
Kadangi šį profilį sukūrėme tik vienoje ASA naudodami ASDM, nepamirškite pakartoti veiksmų su kitomis grupės ASA.
Išvada: Taigi greitai įdiegėme kelių VPN šliuzų grupę su automatiniu apkrovos balansavimu. Naujų mazgų įtraukimas į klasterį yra paprastas, naudojant paprastą horizontalų mastelį diegiant naujas ASAv virtualias mašinas arba naudojant aparatinės įrangos ASA. Daug funkcijų turintis „AnyConnect“ klientas gali žymiai pagerinti saugų nuotolinį ryšį naudodamas Laikyena (būsenos įvertinimai), efektyviausiai naudojamas kartu su centralizuoto valdymo ir prieigos apskaitos sistema Tapatybės paslaugų variklis.