Bu məqalədə sürətli şəkildə hazırkı ən miqyaslana bilən sxemin necə qurulacağına dair addım-addım təlimatı təqdim etmək istəyirəm Remote-Access VPN təqdimatı əsasında AnyConnect və Cisco ASA – VPN Yük Balanslama Klasteri.
Giriş: Dünyanın bir çox şirkəti COVID-19 səbəbindən işçilərini uzaqdan işləməyə keçirmək üçün tədbirlər görür. Uzaqdan işə keçidin genişlənməsi, şirkətlərin mövcud VPN qapılarına olan yükü kritik şəkildə artırır və onların sürətli miqyası üçün imkanlar tələb olunur. Eyni zamanda, bir çox şirkət, uzaqdan işləmə anlayışını icra etməyə tələsik uyğunlaşmaq məcburiyyətindədir.
İş dünyasına işçilər üçün rahat, təhlükəsiz və miqyaslana bilən VPN erişimi təmin etmək məqsədilə Cisco 13 həftəyə qədər AnyConnect çoxfunksiyalı SSL-VPN müştərisi üçün lisenziyalar təqdim edir. .
.
VPN Yük-Balanslamasına dair ən sadə olan versiyasının qurulmasını addım-addım təlimatını hazırlamışam, bu da ən miqyaslana bilən VPN texnologiyasıdır.
Aşağıda göstərilən nümunə istifadə olunan autentifikasiya və avtorizasiya algoritmları baxımından xeyli sadə olacaq, lakin başlanğıc üçün yaxşı bir variantdır (indiki anda çoxlarına lazım olan bir şey) və eyni zamanda qurulma prosesi boyunca tələblərə uyğun dərin adaptasiya imkanını təmin edir.
Qısa məlumat: VPN Yük-Balanslama Klasteri texnologiyası failover deyil və özünün nativ anlayışında klasterləşdirmə funksiyası deyil, bu texnologiya Remote-Access VPN bağlantılarını balanslama məqsədilə tamamən fərqli ASA modellərini (müəyyən məhdudiyyətlərlə) birləşdirməyə imkan verir. Belə bir klasterdə sessiyaların və konfiqurasiyaların nodelər arasında sinxronizasiyası yoxdur, lakin VPN bağlantılarının avtomatik balanslanması və klasterdə ən azı bir aktiv nod qaldığı müddətcə VPN bağlantılarının dayanıqlılığının təmin edilməsi mümkündür. Klasterdə yük, VPN sessiyalarının sayına görə nodelərin yük səviyyəsinə əsaslanaraq avtomatik olaraq balanslanır.
Klasterin müəyyən düyünlərinin etibarlılığını təmin etmək üçün (əgər bu tələb olunursa) fayl pleyeri istifadə oluna bilər, beləliklə, aktiv əlaqə fayl pleyerinin İdarəedici düyünü tərəfindən işlənəcək. Fayl pleyeri Yük-Balanser klasteri daxilində etibarlılığı təmin etmək üçün mütləq şərt deyil, çünki klaster, bir düyün sıradan çıxdıqda istifadəçinin sessiyasını başqa bir aktiv düyünə keçirəcək, lakin bu, əlaqənin statusunu saxlamayacaq, bu da fayl pleyeri tərəfindən təmin edilir. Beləliklə, bu iki texnologiyanı bir arada istifadə etmək mümkündür.
VPN Yük-Balanser klasteri iki düyündən artıq ola bilər.
VPN Yük-Balanser klasteri ASA 5512-X və yuxarı versiyalarda dəstəklənir.
VPN Yük-Balanser klasteri çərçivəsində hər bir ASA müstəqil bir vahid olduğuna görə, konfiqurasiya mərhələlərinin hamısını hər bir cihazda ayrı-ayrılıqda həyata keçiririk.
Göstərilən nümunənin məntiqi topologiyası:

İlkin yayım:
Biz lazım olan şablonların (ASAv5/10/30/50) imicindən ASAv instansiyalarını yayırıq.
INSIDE/OUTSIDE interfeyslərini eyni VLAN-lara təyin edirik (Dış VLAN-da, Daxil öz VLAN-da, lakin klaster çərçivəsində ortaq baxın, interfeyslərin eyni növünün bir L2 seqmentində olması vacibdir).
Lisenziyalar:
- ASAv quraşdırılarkən heç bir lisenziya olmayacaq və 100 kbit/san sürəti ilə məhdudlaşacaq.
- Lisenziya quraşdırmaq üçün Smart-Accounthesabınızdakı bir token yaratmalısınız: -> Smart Software Licensing
- Açılan pəncərədə düyməni basın Yeni Token

- Açılan pəncərədə aktiv bir sahənin olduğunu və "Allow export-controlled functionality" seçiminin işarələndiyini yoxlayın. … Bu sahə aktiv olmadıqda güclü şifrələmə və buna uyğun VPN funksiyalarını istifadə edə bilməyəcəksiniz. Bu sahə aktiv deyilsə, aktivasiya tələb etmək üçün hesab komandanıza müraciət edin.Düyməni basdıqdan sonra

- New Token basıldıqda, ASAv üçün lisenziya əldə etmək üçün istifadə edəcəyimiz token yaradılacaq, bunu kopyalayacağıq:Hər bir yayılmış ASAv üçün C, D, E addımlarını təkrarlayaq.

- Token-i kopyalamağı asanlaşdırmaq üçün telnet-i müvəqqəti icazə verək. Hər bir ASA-nı tənzimləyək (aşağıdakı nümunə ASA-1-in tənzimləmələrini göstərir).
- Dışardan telnet işləmir, əgər mütləq lazımdırsa, dışardakı security-level-i 100-ə dəyişdirin, sonra geri qaytarın. ! сiscoasa(config)# int gi0/0 сiscoasa(config)# nameif outside сiscoasa(config)# ip address 192.168.31.30 255.255.255.0 сiscoasa(config)# no shut ! сiscoasa(config)# int gi0/1 сiscoasa(config)# nameif inside сiscoasa(config)# ip address 192.168.255.2 255.255.255.0 сiscoasa(config)# no shut ! сiscoasa(config)# telnet 0 0 inside сiscoasa(config)# username admin password cisco priv 15 сiscoasa(config)# ena password cisco сiscoasa(config)# aaa authentication telnet console LOCAL ! сiscoasa(config)# route outside 0 0 192.168.31.1 ! сiscoasa(config)# wr !
ASAv token-in buludda qeydiyyatı üçün ASA-nın Internetə girişi təmin olunmalıdır,- detallar burada .
İnternətə HTTPS girişi;
- доступ по HTTPS в Интернет;
- vaxtın sinxronizasiyası (NTP əsasında daha dəqiq);
- təyin edilmiş DNS server;
- Telnet vasitəsilə bizim ASA-lara daxil oluruq və Smart-Account vasitəsilə lisenziyanın aktivləşdirilməsi üçün parametrləri yerinə yetiririk.
! 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-in işini yoxlayırıq: ! 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 sinxronizasiyasını yoxlayırıq: ! 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 (sinxronizasiya olunub), # master (sinxronizasiya olunmayıb), + seçilmiş, - namizəd, ~ konfiqurasiya olunub ! ! Smart-Licensing üçün ASAv konfiqurasiyasını qururuq (sizin profilinizə uyğun, mənim nümunəmdə 100M) ! ciscoasa(config)# license smart ciscoasa(config-smart-lic)# feature tier standard ciscoasa(config-smart-lic)# throughput level 100M ! ! Zərurət yarandıqda internetə proxy vasitəsilə girişin tənzimlənməsi üçün aşağıdakı komanda blokundan istifadə edin: !call-home ! http-proxy ip_address port port ! ! Sonra Smart-Account portalından kopyalanmış tokeni (<token>) əlavə edərək lisenziyanı qeyd edirik ! ciscoasa(config)# end ciscoasa# license smart register idtoken <token>- Cihazın lisenziyanı uğurla qeyd etdiyini və şifrləmə seçimlərinin daxil olduğunu yoxlayırıq:


Hər bir keçiddə əsas SSL-VPN tənzimləyirik
- Sonra SSH və ASDM ilə giriş tənzimləyirik:
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 ! ! ASDM üçün 445 portunda HTTPS serverini açırıq ki, SSL-VPN portalı ilə üst-üstə düşməsin ! vpn-demo-1(config)# http server enable 445 !- ASDM-in işləməsi üçün əvvəlcə onu cisco.com saytından yükləmək lazımdır, mənim nümunəmdə bu aşağıdakı fayldır:

- AnyConnect müştərisinin işləməsi üçün hər ASA-ya müştərinin istifadə ediləcək masaüstü əməliyyat sistemi (Linux/Windows/MAC) üçün görüntü yükləmək lazımdır, lazım olan fayl: Headend Deployment Package adında:

- Yüklənmiş faylları, məsələn, FTP serverə yerləşdirə və hər bir ASA-ya yükləyə bilərsiniz:

- ASDM və SSL-VPN üçün Self-Signed sertifikat tənzimləyirik (istehsalda, sertifikatın etibarlı olması tövsiyə olunur). Virtual klaster ünvanının (vpn-demo.ashes.cc) quraşdırılmış FQDN-i, eləcə də klasterin hər bir nodu ilə əlaqəli olan FQDN-lər dış zonada DNS-də OUTSIDE interfeysinin IP ünvanına (və ya portu UDP/443 (DTLS) və TCP/443 (TLS) vasitəsilə yönləndirilərsə, mapped ünvana) həll olunmalıdır. Sertifikat tələbləri ilə bağlı ətraflı məlumat Sertifikatın Təsdiqi sənədində göstərilib.
! 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 % Sertifikatdakı tam yüklənmiş domen adı: vpn-demo.ashes.cc Öz İmza Sertifikatı Yaratmaq? [bəli/xeyr]: bəli vpn-demo-1(config)# ! vpn-demo-1(config)# sh cry ca certificates Sertifikat Status: Mövcuddur Sertifikat Serial Nömrəsi: 4d43725e Sertifikat İstifadəsi: Ümumi Məqsəd İctimai Açar Növü: RSA (4096 bit) İmza Algoritmi: SHA256 RSA Şifrələmə ilə Təminatçı Adı: serialNumber=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=ru Mövzu Adı: serialNumber=9A439T02F95 hostname=vpn-demo.ashes.cc cn=*.ashes.cc ou=ashes-lab o=ashes c=ru Sübut Tarixi: başlanğıc tarixi: 00:16:17 MSK Mar 19 2020 son tarix: 00:16:17 MSK Mar 17 2030 Saxlama: config Bağlı Etimad Puanları: SELF CA Sertifikatı Status: Mövcuddur Sertifikat Serial Nömrəsi: 0509 Sertifikat İstifadəsi: Ümumi Məqsəd İctimai Açar Növü: RSA (4096 bit) İmza Algoritmi: SHA1 RSA Şifrələmə ilə Təminatçı Adı: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Mövzu Adı: cn=QuoVadis Root CA 2 o=QuoVadis Limited c=BM Sübut Tarixi: başlanğıc tarixi: 21:27:00 MSK Nov 24 2006 son tarix: 21:23:33 MSK Nov 24 2031 Saxlama: config Bağlı Etimad Puanları: _SmartCallHome_ServerCA- ASDM-in işini yoxlamaq üçün porta qeyd etməyi unutmayın, məsələn:

- Tünel üçün əsas parametrləri həyata keçirək:
- Korporativ şəbəkəni tünel vasitəsilə əlçatan edəcək, interneti isə birbaşa buraxacağıq (bu, müdafiə vasitələrinin olmadığı bir hostda dəqiq olmayıb, pozulma riski var; zərərli bir host vasitəsilə korporativ məlumatların xaric edilməsi, seçim) split-tunnel-policy tunnelall bütün host trafiğini tunneldan buraxacaq. Bununla belə, Split-Tunnel VPN şlüzünü yükləmək və hostun internet trafiğini emal etməməsi imkanı verir.
- Tüneldən keçən hostlara 192.168.20.0/24 şəbəkəsindən ünvanlar verəcəyik (1-ci node üçün 10-dan 30-a fərqlənən ünvanlar). Hər bir VPN klasterindəki node-un öz ünvan boyu olmalıdır.
- ASA-da yerli yaradılan istifadəçi ilə əsas autentifikasiyanı həyata keçirəcəyik (bu, tövsiyə edilmir, bu, ən sadə metoddur), buna görə də autentifikasiyanı LDAP/RADIUS, daha da yaxşı yanaşma olaraq, bağlamaq Çox Faktorlu Autentifikasiya (MFA), məsələn 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 !- (İSTƏYƏ GÖRƏ): Yuxarıda göstərilən nümunədə biz RADIUS istifadə edərək uzaq istifadəçilərin autentifikasiyası üçün MSƏ-də yerli istifadəçi istifadə etdik ki, bu da əlbəttə ki, laboratoriya xaricində zəif tətbiq olunur. Men bunu sürətli bir şəkildə autentifikasiya konfiqurasiyasını necə tənzimləmək barədə bir nümunə verəcəyəm. RADIUS -server, misal üçün istifadə edilən 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 !Bu inteqrasiya yalnız autentifikasiya prosedurunu AD kataloqu xidməti ilə sürətlə inteqrasiya etməyə imkan vermək deyil, həm də qoşulmuş kompüterin AD-ə aid olduğunu ayırd etməyə, onun korporativ avadanlıq yoxsa şəxsi olduğunu başa düşməyə və qoşulmuş avadanlığın vəziyyətini qiymətləndirməyə imkan verdi.


- Korporativ şəbəkə resursları ilə müştəri arasında trafik NAT-da natlaşdırılmaması üçün Transparent NAT konfiqurasiyasını edək:
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- (İSTƏYİM): Müştərilərimizi ASA vasitəsilə İnternetə buraxmaq üçün (tunnelall istifadə olunarkən) PAT ilə yanaşı eyni OUTSIDE interfeysindən çıxış etmək üçün, aşağıdakı konfiqurasiyaları etməlisiniz tunnelall seçimlərinə əsaslanan
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 !- Klaster istifadə edərkən daxili şəbəkənin istifadəçilərə geri trafik yönləndirmək üçün hansı ASA-ya yönəldəcəyini başa düşməsi olduqca vacibdir, bunun üçün müştərilərə verilən /32 ünvanları üçün marşrutların yenidən paylanması lazımdır.
Hal-hazırda klasteri hələ qurmadıq, amma artıq separat FQDN və ya IP vasitəsilə qoşulmaq üçün işləyən VPN qapılarımız var.

Birinci ASA-nın marşrutlaşdırma cədvəlində qoşulmuş müştərini görürük:

Bütün VPN klasterimiz və bütün korporativ şəbəkə müştərimizə qədər marşrutu bilmək üçün, müştəri prefiksini dinamik marşrutlaşdırma protokoluna, misal üçün, OSPF-yə yenidən paylayacağıq:
! 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İndi ASA-2-dən ikinci qapıya qədər müştəriyə marşrutumuz var və klaster çərçivəsində fərqli VPN qapılarına qoşulmuş istifadəçilər korporativ proqram vasitəsilə birbaşa əlaqə qura bilərlər, həmçinin istifadəçilərin tələb etdiyi resurslardan gələn geri trafik lazım olan VPN qapısına gələcəkdir:

Klaster üçün Yük Balanslaması konfiqurasiyasına keçirik.
192.168.31.40 ünvanı Virtual IP (VIP — VPN müştərilərinin birincil əlaqə quracağı nöqtə) kimi istifadə olunacaq, Master klasterindən bu ünvanı daha az yüklənmiş klaster noduna REDIRECT edəcək. Unutmayın ki, həm birbaşa, həm də geri DNS qeydlərini yazmalısınız hər bir klaster nodunun xarici ünvanı/FQDN üçün olduğu kimi, VIP üçün də.
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)#- İki müştəri qoşulmuş halda klasterin işini yoxlayırıq:

- Müştəri təcrübəsini ASDM vasitəsilə avtomatik olaraq yüklənən AnyConnect profili ilə daha rahat edək.

Profili rahat bir şəkildə adlandırırıq və qruplarımızın siyasətini onunla əlaqələndiririk:

Sonrakı müştəri qoşulmasında bu profil avtomatik olaraq AnyConnect müştərisində yüklənəcək və buna görə də, ehtiyac olduqda sadəcə onu siyahıdan seçmək kifayətdir:

ASDM-dən istifadə edərək bu profili yalnız bir ASA-da yaratdığımızdan, klasterin digər ASA-larında bu əməliyyatları təkrarlamağı unutmayın.
Nəticə: Beləliklə, biz avtomatik yük balansı olan bir neçə VPN qapısı klasterini tez bir şəkildə qurduq. Klasterə yeni nodlar əlavə etmək asandır, yeni ASAv virtual maşınlarını yerləşdirərək və ya aparat ASA-larını istifadə edərək sadə üfüqi miqyaslama əldə edilir. Multifunksiyalı AnyConnect müştərisi, təhlükəsiz uzaq bağlantı imkanlarını genişləndirmək üçün Posture (zustand qiymətləndirməsi)ən effektiv şəkildə mərkəzləşdirilmiş nəzarət və giriş hesablaşma sistemi ilə birlikdə tətbiq edilir Identity Services Engine.
Mənbə: habr.com


















