استقرار یک خوشه تعادل بار ASA VPN

در این مقاله، من می‌خواهم دستورالعمل‌های گام به گام در مورد اینکه چگونه می‌توانید به سرعت مقیاس‌پذیرترین طرح را در حال حاضر اجرا کنید، ارائه کنم. VPN دسترسی از راه دور مبتنی بر دسترسی AnyConnect و Cisco ASA - خوشه تعادل بار VPN.

مقدمه: بسیاری از شرکت‌ها در سراسر جهان، با توجه به وضعیت کنونی COVID-19، تلاش می‌کنند تا کارمندان خود را به کار از راه دور منتقل کنند. با توجه به انتقال انبوه به کار از راه دور، بار روی دروازه های VPN موجود شرکت ها به شدت در حال افزایش است و توانایی بسیار سریع برای مقیاس بندی آنها مورد نیاز است. از سوی دیگر، بسیاری از شرکت ها مجبور هستند با عجله بر مفهوم کار از راه دور از ابتدا مسلط شوند.

برای کمک به کسب‌وکارها در دستیابی به دسترسی راحت، ایمن و مقیاس‌پذیر VPN برای کارمندان در کوتاه‌ترین زمان ممکن، سیسکو به مشتری SSL VPN با ویژگی‌های غنی AnyConnect تا 13 هفته مجوز می‌دهد. همچنین می‌توانید از شرکای مجاز یا با تماس با نمایندگان سیسکو که با شما کار می‌کنند، ASAv را برای آزمایش (ASA مجازی برای هایپروایزرهای VMWare/Hyper-V/KVM و پلت‌فرم‌های ابری AWS/Azure) امتحان کنید..

روش صدور مجوزهای AnyConnect COVID-19 در اینجا توضیح داده شده است.

من یک راهنمای گام به گام برای استقرار ساده خوشه تعادل بار VPN به عنوان مقیاس پذیرترین فناوری VPN آماده کرده ام.

مثال زیر از نظر الگوریتم های احراز هویت و مجوز استفاده شده بسیار ساده خواهد بود، اما گزینه خوبی برای شروع سریع (که در حال حاضر برای بسیاری کافی نیست) با امکان تطبیق عمیق با نیازهای شما در حین استقرار خواهد بود. روند.

اطلاعات مختصر: فن آوری خوشه متعادل بار VPN به معنای اصلی خود یک فایل اور نیست و یک تابع خوشه بندی نیست، این فناوری می تواند مدل های کاملاً متفاوت ASA (با محدودیت های خاص) را به منظور بارگیری اتصالات VPN با دسترسی از راه دور ترکیب کند. هیچ هماهنگی جلسات و پیکربندی‌ها بین گره‌های چنین خوشه‌ای وجود ندارد، اما می‌توان به طور خودکار اتصالات VPN را بارگذاری کرد و از تحمل خطا در اتصالات VPN تا زمانی که حداقل یک گره فعال در خوشه باقی بماند، اطمینان حاصل کرد. بار در خوشه به طور خودکار بسته به حجم کاری گره ها با تعداد جلسات VPN متعادل می شود.

برای خرابی گره‌های خاص خوشه (در صورت نیاز)، می‌توان از یک فایل‌کننده استفاده کرد، بنابراین اتصال فعال توسط گره اصلی فایل‌کننده کنترل می‌شود. انتقال فایل شرط لازم برای اطمینان از تحمل خطا در خوشه Load-Balancing نیست، خود خوشه، در صورت خرابی گره، جلسه کاربر را به گره زنده دیگری منتقل می کند، اما بدون ذخیره وضعیت اتصال، که دقیقاً همین است. ارائه شده توسط فایل کننده بر این اساس، در صورت لزوم، امکان ترکیب این دو فناوری وجود دارد.

یک خوشه بار تعادل VPN می تواند بیش از دو گره داشته باشد.

VPN Load-Balancing Cluster در ASA 5512-X و بالاتر پشتیبانی می شود.

از آنجایی که هر ASA در کلاستر بارگذاری تعادل VPN یک واحد مستقل از نظر تنظیمات است، ما تمام مراحل پیکربندی را به صورت جداگانه در هر دستگاه جداگانه انجام می دهیم.

جزئیات فناوری در اینجا

توپولوژی منطقی مثال داده شده:

استقرار یک خوشه تعادل بار ASA VPN

استقرار اولیه:

  1. نمونه‌های ASAv از الگوهای مورد نیاز (ASAv5/10/30/50) را از تصویر مستقر می‌کنیم.

  2. ما رابط‌های INSIDE / OUTSIDE را به همان VLAN‌ها اختصاص می‌دهیم (Outside در VLAN خودش، INSIDE در خودش، اما به طور کلی در داخل خوشه، توپولوژی را ببینید)، مهم است که رابط‌های یک نوع در همان بخش L2 باشند.

  3. مجوزها:

    • در حال حاضر نصب ASAv هیچ مجوزی نخواهد داشت و به 100 کیلوبیت بر ثانیه محدود می شود.
    • برای نصب مجوز، باید یک توکن در حساب هوشمند خود ایجاد کنید: https://software.cisco.com/ -> مجوز نرم افزار هوشمند
    • در پنجره باز شده روی دکمه کلیک کنید توکن جدید

    استقرار یک خوشه تعادل بار ASA VPN

    • اطمینان حاصل کنید که در پنجره باز شده یک فیلد فعال وجود دارد و یک علامت تیک زده شده است قابلیت صادرات کنترل شده مجاز است... بدون فعال بودن این فیلد، نمی توانید از عملکردهای رمزگذاری قوی و بر این اساس، VPN استفاده کنید. اگر این فیلد فعال نیست، لطفاً با تیم حساب خود تماس بگیرید و درخواست فعالسازی کنید.

    استقرار یک خوشه تعادل بار ASA VPN

    • پس از فشار دادن دکمه ایجاد توکن، یک توکن ایجاد می شود که از آن برای دریافت مجوز برای ASAv استفاده می کنیم، آن را کپی کنید:

    استقرار یک خوشه تعادل بار ASA VPN

    • مراحل C,D,E را برای هر ASAv مستقر شده تکرار کنید.
    • برای سهولت در کپی کردن توکن، اجازه دهید موقتاً به 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

    استقرار یک خوشه تعادل بار ASA VPN

  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

    • برای اینکه کلاینت AnyConnect کار کند، باید برای هر سیستم عامل دسکتاپ مشتری استفاده شده (برنامه ریزی شده برای استفاده از Linux / Windows / MAC) یک تصویر در هر ASA آپلود کنید، به یک فایل با بسته استقرار Headend در عنوان:

    استقرار یک خوشه تعادل بار ASA VPN

    • فایل های دانلود شده را می توان به عنوان مثال در یک سرور FTP بارگذاری کرد و در هر ASA جداگانه آپلود کرد:

    استقرار یک خوشه تعادل بار ASA VPN

    • ما گواهینامه ASDM و Self-Signed را برای SSL-VPN پیکربندی می کنیم (توصیه می شود از یک گواهی قابل اعتماد در تولید استفاده کنید). مجموعه FQDN آدرس خوشه مجازی (vpn-demo.ashes.cc)، و همچنین هر FQDN مرتبط با آدرس خارجی هر گره از خوشه، باید در منطقه DNS خارجی به آدرس IP رابط OUTSIDE حل شود. (یا به آدرس نگاشت شده در صورت استفاده از پورت فوروارد 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

    • بیایید تنظیمات اولیه تونل را انجام دهیم:
    • بیایید شبکه شرکتی را از طریق تونل در دسترس قرار دهیم و اجازه دهیم اینترنت مستقیماً راه برود (ایمن‌ترین روش نیست اگر هیچ حفاظتی در میزبان متصل وجود نداشته باشد، امکان نفوذ از طریق میزبان آلوده و نمایش داده‌های شرکت وجود دارد، گزینه تونل تقسیم تونل-سیاست به تمام ترافیک میزبان اجازه ورود به تونل را می دهد. با این اوصاف تقسیم تونل این امکان را فراهم می کند که دروازه 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 برای احراز هویت کاربران از راه دور استفاده کردیم که البته به جز در آزمایشگاه، کاربرد ضعیفی دارد. من مثالی از نحوه تطبیق سریع تنظیمات برای احراز هویت را ارائه خواهم داد شعاع سرور، به عنوان مثال استفاده می شود موتور خدمات هویت سیسکو:

    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

    استقرار یک خوشه تعادل بار ASA VPN

    • بیایید 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، و همچنین خروج از همان رابط OUTSIDE که از آن متصل هستند، باید تنظیمات زیر را انجام دهید

    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 آدرس صادر شده برای مشتریان را دوباره توزیع کنید.
      در حال حاضر، ما هنوز خوشه را پیکربندی نکرده‌ایم، اما از قبل دروازه‌های VPN در حال کار داریم که می‌توانند به صورت جداگانه از طریق FQDN یا IP متصل شوند.

    استقرار یک خوشه تعادل بار ASA VPN

    ما مشتری متصل را در جدول مسیریابی اولین ASA می بینیم:

    استقرار یک خوشه تعادل بار ASA VPN

    برای اینکه کل خوشه 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

  5. بیایید به پیکربندی خوشه Load-Balancing ادامه دهیم.

    آدرس 192.168.31.40 به عنوان یک IP مجازی استفاده خواهد شد (VIP - همه مشتریان VPN در ابتدا به آن متصل می شوند)، از این آدرس خوشه Master یک 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

    • بیایید با نمایه AnyConnect که به طور خودکار از طریق ASDM بارگیری می شود، تجربه مشتری را راحت تر کنیم.

    استقرار یک خوشه تعادل بار ASA VPN

    ما نمایه را به روشی مناسب نام گذاری می کنیم و خط مشی گروه خود را با آن مرتبط می کنیم:

    استقرار یک خوشه تعادل بار ASA VPN

    پس از اتصال بعدی کلاینت، این نمایه به طور خودکار در کلاینت AnyConnect دانلود و نصب می شود، بنابراین در صورت نیاز به اتصال، کافی است آن را از لیست انتخاب کنید:

    استقرار یک خوشه تعادل بار ASA VPN

    از آنجایی که ما این نمایه را تنها بر روی یک ASA با استفاده از ASDM ایجاد کردیم، فراموش نکنید که مراحل را در سایر ASA های خوشه تکرار کنید.

نتیجه گیری: بنابراین، ما به سرعت مجموعه ای از چندین دروازه VPN را با تعادل بار خودکار مستقر کردیم. افزودن گره های جدید به خوشه آسان است، با مقیاس افقی ساده با استقرار ماشین های مجازی ASAv جدید یا استفاده از ASA های سخت افزاری. سرویس گیرنده AnyConnect غنی از ویژگی ها می تواند اتصال از راه دور ایمن را با استفاده از وضعیت بدن (تخمین وضعیت)، به طور مؤثر در ارتباط با سیستم کنترل متمرکز و حسابداری دسترسی استفاده می شود موتور خدمات هویت.

منبع: www.habr.com

اضافه کردن نظر