ASA VPN Load-Balancing кластерін қолдану

Бұл мақалада мен қазіргі уақытта ең ауқымды схеманы қалай жылдам орналастыруға болатыны туралы қадамдық нұсқауларды ұсынғым келеді. Қашықтан қол жеткізу VPN қол жеткізуге негізделген AnyConnect және Cisco ASA - VPN жүктемені теңестіру кластері.

Кіріспе: Дүние жүзіндегі көптеген компаниялар COVID-19-ға қатысты ағымдағы жағдайды ескере отырып, өз қызметкерлерін қашықтан жұмысқа ауыстыруға күш салуда. Қашықтан жұмыс істеуге жаппай көшуге байланысты компаниялардың қолданыстағы VPN шлюздеріндегі жүктеме сыни өсуде және оларды масштабтаудың өте жылдам мүмкіндігі қажет. Екінші жағынан, көптеген компаниялар қашықтан жұмыс істеу тұжырымдамасын нөлден бастап асығыс меңгеруге мәжбүр.

Кәсіпорындарға қызметкерлерге ең қысқа мерзімде ыңғайлы, қауіпсіз және масштабталатын VPN қатынасына қол жеткізуге көмектесу үшін Cisco AnyConnect мүмкіндіктеріне бай SSL-VPN клиентін 13 аптаға дейін лицензиялайды. Сондай-ақ уәкілетті серіктестерден немесе сізбен жұмыс істейтін Cisco өкілдеріне хабарласу арқылы ASAv тестін (VMWare/Hyper-V/KVM гипервизорларына және AWS/Azure бұлттық платформаларына арналған виртуалды ASA) алуға болады..

AnyConnect COVID-19 лицензияларын беру тәртібі осы жерде сипатталған.

Мен ең ауқымды VPN технологиясы ретінде VPN Load-Balancing кластерін қарапайым орналастыруға арналған қадамдық нұсқаулықты дайындадым.

Төмендегі мысал аутентификация және авторизация алгоритмдері тұрғысынан өте қарапайым болады, бірақ орналастыру кезінде сіздің қажеттіліктеріңізге терең бейімделу мүмкіндігімен жылдам бастау үшін жақсы нұсқа болады (бұл қазіргі уақытта көп адамдар үшін жеткіліксіз). процесс.

Қысқаша ақпарат: VPN Load Balancing Cluster технологиясы өз мағынасында істен шығу емес және кластерлеу функциясы емес, бұл технология қашықтан қол жеткізу VPN қосылымдарын жүктеу үшін мүлдем басқа ASA үлгілерін (белгілі шектеулермен) біріктіре алады. Мұндай кластердің түйіндері арасында сеанстар мен конфигурацияларды синхрондау жоқ, бірақ кластерде кем дегенде бір белсенді түйін қалғанша VPN қосылымдарының теңгерімділігін автоматты түрде жүктеуге және VPN қосылымдарының ақауларға төзімділігін қамтамасыз етуге болады. Кластердегі жүктеме VPN сеанстарының саны бойынша түйіндердің жұмыс жүктемесіне байланысты автоматты түрде теңестіріледі.

Кластердің белгілі бір түйіндерін ауыстыру үшін (қажет болса) файлды пайдалануға болады, осылайша белсенді қосылым файлдың Негізгі түйіні арқылы өңделеді. Файлды ауыстыру Load-Balancing кластері ішінде ақауларға төзімділікті қамтамасыз етудің қажетті шарты емес, кластердің өзі түйін сәтсіз болған жағдайда пайдаланушы сеансын басқа тірі түйінге тасымалдайды, бірақ қосылым күйін сақтамайды, бұл дәл файлшы қамтамасыз етеді. Тиісінше, қажет болған жағдайда осы екі технологияны біріктіруге болады.

VPN Load-Balancing кластері екі түйіннен көп болуы мүмкін.

VPN Load-Balancing кластеріне ASA 5512-X және одан жоғары нұсқаларында қолдау көрсетіледі.

VPN Load-Balancing кластеріндегі әрбір ASA параметрлер бойынша тәуелсіз бірлік болғандықтан, біз әрбір жеке құрылғыда барлық конфигурация қадамдарын жеке орындаймыз.

Технология мәліметтері осында

Берілген мысалдың логикалық топологиясы:

ASA VPN Load-Balancing кластерін қолдану

Негізгі орналастыру:

  1. Біз кескіннен қажетті үлгілердің (ASAv5/10/30/50) ASAv даналарын орналастырамыз.

  2. Біз INSIDE / OUTSIDE интерфейстерін бірдей VLAN-ға тағайындаймыз (сыртында өз VLAN-да, INSIDE өз ішінде, бірақ жалпы кластер ішінде топологияны қараңыз), бір типтегі интерфейстердің бір L2 сегментінде болуы маңызды.

  3. Лицензиялар:

    • Қазіргі уақытта ASAv орнатуында ешқандай лицензия болмайды және 100 кбит/с шектеледі.
    • Лицензияны орнату үшін Smart-есептік жазбаңызда белгіні жасау керек: https://software.cisco.com/ -> Smart бағдарламалық құралды лицензиялау
    • Ашылған терезеде түймені басыңыз Жаңа токен

    ASA VPN Load-Balancing кластерін қолдану

    • Ашылған терезеде белсенді өріс бар екеніне және құсбелгі қойылғанына көз жеткізіңіз Экспортпен басқарылатын функцияға рұқсат беріңіз… Бұл өріс белсенді болмаса, күшті шифрлау және сәйкесінше VPN функцияларын пайдалана алмайсыз. Бұл өріс белсенді емес болса, белсендіру сұрауы арқылы тіркелгі тобына хабарласыңыз.

    ASA VPN Load-Balancing кластерін қолдану

    • Түймені басқаннан кейін Токен жасау, біз ASAv лицензиясын алу үшін қолданатын белгі жасалады, оны көшіріңіз:

    ASA VPN Load-Balancing кластерін қолдану

    • Әрбір орналастырылған ASAv үшін C,D,E қадамдарын қайталаңыз.
    • Токенді көшіруді жеңілдету үшін telnet-ке уақытша рұқсат етейік. Әрбір ASA теңшейік (төмендегі мысал ASA-1 параметрлерін көрсетеді). telnet сырттай жұмыс істемейді, егер сізге шынымен қажет болса, қауіпсіздік деңгейін 100-ден сыртқа ауыстырыңыз, содан кейін оны қайтарыңыз.

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

    • Токенді Smart-Account бұлтында тіркеу үшін ASA үшін Интернетке кіруді қамтамасыз ету керек, толығырақ осында.

    Қысқасы, ASA қажет:

    • HTTPS арқылы интернетке кіру;
    • уақытты синхрондау (дұрыс, NTP арқылы);
    • тіркелген DNS сервері;
      • Біз ASA-ға телнет арқылы хабарласамыз және 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>

    • Құрылғының лицензияны сәтті тіркегенін және шифрлау опцияларының қолжетімді екенін тексереміз:

    ASA VPN Load-Balancing кластерін қолдану

    ASA VPN Load-Balancing кластерін қолдану

  4. Әрбір шлюзде негізгі SSL-VPN орнатыңыз

    • Әрі қарай, SSH және 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 
    !

    • ASDM жұмыс істеуі үшін алдымен оны cisco.com веб-сайтынан жүктеп алуыңыз керек, менің жағдайда бұл келесі файл:

    ASA VPN Load-Balancing кластерін қолдану

    • AnyConnect клиенті жұмыс істеуі үшін пайдаланылған әрбір жұмыс үстелі клиентінің ОЖ үшін (Linux / Windows / MAC пайдалану жоспарланған) әр ASA-ға суретті жүктеп салу керек, сізге файл қажет болады. Headend орналастыру пакеті Тақырыпта:

    ASA VPN Load-Balancing кластерін қолдану

    • Жүктелген файлдарды, мысалы, FTP серверіне жүктеп салуға және әрбір жеке ASA-ға жүктеп салуға болады:

    ASA VPN Load-Balancing кластерін қолдану

    • SSL-VPN үшін ASDM және Self-Signed сертификатын конфигурациялаймыз (өндірісте сенімді сертификатты пайдалану ұсынылады). Виртуалды кластер мекенжайының (vpn-demo.ashes.cc) FQDN жиыны, сондай-ақ әрбір кластер түйінінің сыртқы мекенжайымен байланысты әрбір FQDN сыртқы DNS аймағында СЫРТҚЫ интерфейстің IP мекенжайына (немесе udp/443 портын қайта жіберу (DTLS) және tcp/443(TLS) пайдаланылса, салыстырылған мекенжайға. Сертификатқа қойылатын талаптар туралы толық ақпарат бөлімде көрсетілген Сертификат тексеру құжаттама.

    !
    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               

    • ASDM жұмыс істеп тұрғанын тексеру үшін портты көрсетуді ұмытпаңыз, мысалы:

    ASA VPN Load-Balancing кластерін қолдану

    • Туннельдің негізгі параметрлерін орындаймыз:
    • Корпоративтік желіні туннель арқылы қолжетімді етейік және Интернетті тікелей жіберейік (егер қосылатын хостта қорғаныс болмаса, ең қауіпсіз әдіс емес, вирус жұққан хост арқылы еніп, корпоративтік деректерді көрсетуге болады, опция бөлінген туннель-политика туннелл барлық хост трафикті туннельге жібереді. Дегенмен бөлінген туннель VPN шлюзін жүктеп алуға және хост интернет-трафикін өңдемеуге мүмкіндік береді)
    • 192.168.20.0/24 ішкі желісінен туннельдегі хосттарға мекенжайларды шығарайық (10-нан 30-ға дейінгі пул (№1 түйін үшін)). VPN кластерінің әрбір түйінінің өз пулы болуы керек.
    • Біз ASA жүйесінде жергілікті түрде құрылған пайдаланушымен негізгі аутентификацияны жүргіземіз (бұл ұсынылмайды, бұл ең оңай әдіс), аутентификацияны арқылы жасаған дұрыс. LDAP/RADIUS, немесе жақсырақ, галстук Көп факторлы аутентификация (MFA), мысалы 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
    !

    • (Қосымша): Жоғарыда келтірілген мысалда біз қашықтағы пайдаланушыларды аутентификациялау үшін ITU-дағы жергілікті пайдаланушыны қолдандық, бұл, әрине, зертханадан басқа, нашар қолданылады. Мен аутентификация үшін параметрді қалай жылдам бейімдеуге болатынын мысал келтіремін RADIUS сервер, мысалы пайдаланылады 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 
    !

    Бұл біріктіру аутентификация процедурасын AD каталог қызметімен жылдам біріктіруге ғана емес, сонымен қатар қосылған компьютердің AD-ге тиесілілігін анықтауға, бұл құрылғының корпоративтік немесе жеке екенін түсінуге және қосылған құрылғының күйін бағалауға мүмкіндік берді. .

    ASA VPN Load-Balancing кластерін қолдану

    ASA VPN Load-Balancing кластерін қолдану

    • Клиент пен корпоративтік желі ресурстары арасындағы трафик сызылып кетпеуі үшін Transparent NAT конфигурациясын жасайық:

    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

    • (ҚОСЫМША): Біздің клиенттерімізді ASA арқылы Интернетке шығару үшін (пайдалану кезінде туннелл опциялары) PAT арқылы, сондай-ақ олар қосылған сыртқы интерфейс арқылы шығу үшін келесі параметрлерді жасау керек.

    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 
    !

    • Кластерді пайдаланған кезде ішкі желіні қай ASA пайдаланушыларға қайтарылатын трафикті бағыттайтынын түсіну үшін қосу өте маңызды, ол үшін маршруттарды / клиенттерге берілген 32 мекенжайды қайта бөлу қажет.
      Қазіргі уақытта біз әлі кластерді конфигурациялаған жоқпыз, бірақ бізде FQDN немесе IP арқылы жеке қосылуға болатын VPN шлюздері бар.

    ASA VPN Load-Balancing кластерін қолдану

    Біз бірінші ASA маршруттау кестесінде қосылған клиентті көреміз:

    ASA VPN Load-Balancing кластерін қолдану

    Бүкіл VPN кластері және бүкіл корпоративтік желі клиентімізге бағытты білуі үшін біз клиент префиксін динамикалық маршруттау протоколына қайта таратамыз, мысалы, 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

    Енді бізде екінші ASA-2 шлюзінен клиентке маршрут бар және кластер ішіндегі әртүрлі VPN шлюздеріне қосылған пайдаланушылар, мысалы, корпоративтік бағдарламалық телефон арқылы тікелей байланыса алады, сонымен қатар пайдаланушы сұраған ресурстардан трафикті қайтара алады. қалаған VPN шлюзіне келіңіз:

    ASA VPN Load-Balancing кластерін қолдану

  5. Жүктемені теңестіру кластерін конфигурациялауға көшейік.

    192.168.31.40 мекенжайы Виртуалды IP ретінде пайдаланылады (VIP - барлық VPN клиенттері бастапқыда оған қосылады), осы мекенжайдан Басты кластер аз жүктелген кластер түйініне REDIRECT жасайды. Жазуды ұмытпаңыз тура және кері DNS жазбасы кластердің әрбір түйінінің әрбір сыртқы мекенжайы / FQDN үшін де, 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)#

    • Қосылған екі клиентпен кластердің жұмысын тексереміз:

    ASA VPN Load-Balancing кластерін қолдану

    • ASDM арқылы автоматты түрде жүктелетін AnyConnect профилімен тұтынушы тәжірибесін ыңғайлырақ етейік.

    ASA VPN Load-Balancing кластерін қолдану

    Біз профильді ыңғайлы түрде атаймыз және онымен топтық саясатымызды байланыстырамыз:

    ASA VPN Load-Balancing кластерін қолдану

    Клиенттің келесі қосылымынан кейін бұл профиль автоматты түрде жүктеледі және AnyConnect клиентіне орнатылады, сондықтан қосылу қажет болса, оны тізімнен таңдау керек:

    ASA VPN Load-Balancing кластерін қолдану

    Біз бұл профильді ASDM көмегімен тек бір ASA-да жасағандықтан, кластердегі басқа ASA-дағы қадамдарды қайталауды ұмытпаңыз.

Қорытынды: Осылайша, біз жүктемені автоматты түрде теңестіретін бірнеше VPN шлюздерінің кластерін жылдам орналастырдық. Кластерге жаңа түйіндерді қосу оңай, жаңа ASAv виртуалды машиналарын қолдану немесе аппараттық ASA пайдалану арқылы қарапайым көлденең масштабтау. Мүмкіндіктерге бай AnyConnect клиенті пайдалану арқылы қауіпсіз қашықтағы қосылымды айтарлықтай жақсарта алады Поза (мемлекеттік бағалау), орталықтандырылған бақылау жүйесімен және қол жеткізуді есепке алумен бірге ең тиімді қолданылады Identity Services Engine.

Ақпарат көзі: www.habr.com

пікір қалдыру