Бұл мақалада мен қазіргі уақытта ең ауқымды схеманы қалай жылдам орналастыруға болатыны туралы қадамдық нұсқауларды ұсынғым келеді. Қашықтан қол жеткізу VPN қол жеткізуге негізделген AnyConnect және Cisco ASA - VPN жүктемені теңестіру кластері.
Кіріспе: Дүние жүзіндегі көптеген компаниялар COVID-19-ға қатысты ағымдағы жағдайды ескере отырып, өз қызметкерлерін қашықтан жұмысқа ауыстыруға күш салуда. Қашықтан жұмыс істеуге жаппай көшуге байланысты компаниялардың қолданыстағы VPN шлюздеріндегі жүктеме сыни өсуде және оларды масштабтаудың өте жылдам мүмкіндігі қажет. Екінші жағынан, көптеген компаниялар қашықтан жұмыс істеу тұжырымдамасын нөлден бастап асығыс меңгеруге мәжбүр.
Мен ең ауқымды 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 параметрлер бойынша тәуелсіз бірлік болғандықтан, біз әрбір жеке құрылғыда барлық конфигурация қадамдарын жеке орындаймыз.
Біз кескіннен қажетті үлгілердің (ASAv5/10/30/50) ASAv даналарын орналастырамыз.
Біз INSIDE / OUTSIDE интерфейстерін бірдей VLAN-ға тағайындаймыз (сыртында өз VLAN-да, INSIDE өз ішінде, бірақ жалпы кластер ішінде топологияны қараңыз), бір типтегі интерфейстердің бір L2 сегментінде болуы маңызды.
Лицензиялар:
Қазіргі уақытта ASAv орнатуында ешқандай лицензия болмайды және 100 кбит/с шектеледі.
Лицензияны орнату үшін Smart-есептік жазбаңызда белгіні жасау керек: https://software.cisco.com/ -> Smart бағдарламалық құралды лицензиялау
Ашылған терезеде түймені басыңыз Жаңа токен
Ашылған терезеде белсенді өріс бар екеніне және құсбелгі қойылғанына көз жеткізіңіз Экспортпен басқарылатын функцияға рұқсат беріңіз… Бұл өріс белсенді болмаса, күшті шифрлау және сәйкесінше VPN функцияларын пайдалана алмайсыз. Бұл өріс белсенді емес болса, белсендіру сұрауы арқылы тіркелгі тобына хабарласыңыз.
Түймені басқаннан кейін Токен жасау, біз ASAv лицензиясын алу үшін қолданатын белгі жасалады, оны көшіріңіз:
Әрбір орналастырылған 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>
Құрылғының лицензияны сәтті тіркегенін және шифрлау опцияларының қолжетімді екенін тексереміз:
Әрбір шлюзде негізгі 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 веб-сайтынан жүктеп алуыңыз керек, менің жағдайда бұл келесі файл:
AnyConnect клиенті жұмыс істеуі үшін пайдаланылған әрбір жұмыс үстелі клиентінің ОЖ үшін (Linux / Windows / MAC пайдалану жоспарланған) әр ASA-ға суретті жүктеп салу керек, сізге файл қажет болады. Headend орналастыру пакеті Тақырыпта:
Жүктелген файлдарды, мысалы, FTP серверіне жүктеп салуға және әрбір жеке ASA-ға жүктеп салуға болады:
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 жұмыс істеп тұрғанын тексеру үшін портты көрсетуді ұмытпаңыз, мысалы:
Туннельдің негізгі параметрлерін орындаймыз:
Корпоративтік желіні туннель арқылы қолжетімді етейік және Интернетті тікелей жіберейік (егер қосылатын хостта қорғаныс болмаса, ең қауіпсіз әдіс емес, вирус жұққан хост арқылы еніп, корпоративтік деректерді көрсетуге болады, опция бөлінген туннель-политика туннелл барлық хост трафикті туннельге жібереді. Дегенмен бөлінген туннель VPN шлюзін жүктеп алуға және хост интернет-трафикін өңдемеуге мүмкіндік береді)
192.168.20.0/24 ішкі желісінен туннельдегі хосттарға мекенжайларды шығарайық (10-нан 30-ға дейінгі пул (№1 түйін үшін)). VPN кластерінің әрбір түйінінің өз пулы болуы керек.
Біз ASA жүйесінде жергілікті түрде құрылған пайдаланушымен негізгі аутентификацияны жүргіземіз (бұл ұсынылмайды, бұл ең оңай әдіс), аутентификацияны арқылы жасаған дұрыс. LDAP/RADIUS, немесе жақсырақ, галстук Көп факторлы аутентификация (MFA), мысалы Cisco DUO.
(Қосымша): Жоғарыда келтірілген мысалда біз қашықтағы пайдаланушыларды аутентификациялау үшін ITU-дағы жергілікті пайдаланушыны қолдандық, бұл, әрине, зертханадан басқа, нашар қолданылады. Мен аутентификация үшін параметрді қалай жылдам бейімдеуге болатынын мысал келтіремін RADIUS сервер, мысалы пайдаланылады Cisco Identity Services Engine:
Бұл біріктіру аутентификация процедурасын AD каталог қызметімен жылдам біріктіруге ғана емес, сонымен қатар қосылған компьютердің AD-ге тиесілілігін анықтауға, бұл құрылғының корпоративтік немесе жеке екенін түсінуге және қосылған құрылғының күйін бағалауға мүмкіндік берді. .
Клиент пен корпоративтік желі ресурстары арасындағы трафик сызылып кетпеуі үшін 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 арқылы, сондай-ақ олар қосылған сыртқы интерфейс арқылы шығу үшін келесі параметрлерді жасау керек.
Кластерді пайдаланған кезде ішкі желіні қай ASA пайдаланушыларға қайтарылатын трафикті бағыттайтынын түсіну үшін қосу өте маңызды, ол үшін маршруттарды / клиенттерге берілген 32 мекенжайды қайта бөлу қажет.
Қазіргі уақытта біз әлі кластерді конфигурациялаған жоқпыз, бірақ бізде FQDN немесе IP арқылы жеке қосылуға болатын VPN шлюздері бар.
Біз бірінші ASA маршруттау кестесінде қосылған клиентті көреміз:
Бүкіл VPN кластері және бүкіл корпоративтік желі клиентімізге бағытты білуі үшін біз клиент префиксін динамикалық маршруттау протоколына қайта таратамыз, мысалы, OSPF:
Енді бізде екінші ASA-2 шлюзінен клиентке маршрут бар және кластер ішіндегі әртүрлі VPN шлюздеріне қосылған пайдаланушылар, мысалы, корпоративтік бағдарламалық телефон арқылы тікелей байланыса алады, сонымен қатар пайдаланушы сұраған ресурстардан трафикті қайтара алады. қалаған VPN шлюзіне келіңіз:
192.168.31.40 мекенжайы Виртуалды IP ретінде пайдаланылады (VIP - барлық VPN клиенттері бастапқыда оған қосылады), осы мекенжайдан Басты кластер аз жүктелген кластер түйініне REDIRECT жасайды. Жазуды ұмытпаңыз тура және кері DNS жазбасы кластердің әрбір түйінінің әрбір сыртқы мекенжайы / FQDN үшін де, VIP үшін де.
Қосылған екі клиентпен кластердің жұмысын тексереміз:
ASDM арқылы автоматты түрде жүктелетін AnyConnect профилімен тұтынушы тәжірибесін ыңғайлырақ етейік.
Біз профильді ыңғайлы түрде атаймыз және онымен топтық саясатымызды байланыстырамыз:
Клиенттің келесі қосылымынан кейін бұл профиль автоматты түрде жүктеледі және AnyConnect клиентіне орнатылады, сондықтан қосылу қажет болса, оны тізімнен таңдау керек:
Біз бұл профильді ASDM көмегімен тек бір ASA-да жасағандықтан, кластердегі басқа ASA-дағы қадамдарды қайталауды ұмытпаңыз.
Қорытынды: Осылайша, біз жүктемені автоматты түрде теңестіретін бірнеше VPN шлюздерінің кластерін жылдам орналастырдық. Кластерге жаңа түйіндерді қосу оңай, жаңа ASAv виртуалды машиналарын қолдану немесе аппараттық ASA пайдалану арқылы қарапайым көлденең масштабтау. Мүмкіндіктерге бай AnyConnect клиенті пайдалану арқылы қауіпсіз қашықтағы қосылымды айтарлықтай жақсарта алады Поза (мемлекеттік бағалау), орталықтандырылған бақылау жүйесімен және қол жеткізуді есепке алумен бірге ең тиімді қолданылады Identity Services Engine.