نشر مجموعة موازنة التحميل ASA VPN

في هذه المقالة ، أود تقديم إرشادات خطوة بخطوة حول كيفية نشر النظام الأكثر قابلية للتوسع بسرعة في الوقت الحالي. الوصول عن بعد VPN الوصول القائم AnyConnect و Cisco ASA - مجموعة موازنة تحميل VPN.

مقدمة: تبذل العديد من الشركات حول العالم ، في ضوء الوضع الحالي مع COVID-19 ، جهودًا لنقل موظفيها إلى العمل عن بُعد. نظرًا للانتقال الجماعي إلى العمل عن بُعد ، فإن العبء على بوابات VPN الحالية للشركات يتزايد بشكل كبير ويتطلب قدرة سريعة جدًا على توسيع نطاقها. من ناحية أخرى ، تضطر العديد من الشركات إلى إتقان مفهوم العمل عن بُعد على عجل من نقطة الصفر.

لمساعدة الشركات على الوصول إلى VPN مناسب وآمن وقابل للتطوير للموظفين في أقصر وقت ممكن ، تقوم Cisco بترخيص عميل SSL-VPN الغني بميزات AnyConnect لمدة تصل إلى 13 أسبوعًا. يمكنك أيضًا إجراء اختبار ASAv (Virtual ASA for VMWare / Hyper-V / KVM hypervisors وأنظمة AWS / Azure السحابية) من شركاء معتمدين أو عن طريق الاتصال بممثلي Cisco الذين يعملون معك.

تم وصف إجراء إصدار تراخيص AnyConnect COVID-19 هنا.

لقد أعددت دليلاً مفصلاً خطوة بخطوة لنشر بسيط لـ VPN Load-Balancing Cluster باعتبارها تقنية VPN الأكثر قابلية للتوسع.

سيكون المثال أدناه بسيطًا للغاية من حيث خوارزميات المصادقة والتفويض المستخدمة ، ولكنه سيكون خيارًا جيدًا لبداية سريعة (وهو غير كافٍ حاليًا للكثيرين) مع إمكانية التكيف المتعمق لاحتياجاتك أثناء النشر عملية.

معلومات مختصرة: تقنية مجموعة موازنة تحميل VPN ليست تجاوزًا للفشل وليست وظيفة تجميع بمعناها الأصلي ، يمكن لهذه التقنية أن تجمع بين نماذج ASA مختلفة تمامًا (مع قيود معينة) من أجل موازنة تحميل اتصالات VPN للوصول عن بُعد. لا توجد مزامنة للجلسات والتكوينات بين عقد مثل هذه المجموعة ، ولكن من الممكن تلقائيًا تحميل موازنة اتصالات VPN وضمان التسامح مع أخطاء اتصالات VPN حتى تبقى عقدة نشطة واحدة على الأقل في المجموعة. تتم موازنة الحمل في المجموعة تلقائيًا اعتمادًا على حجم عمل العقد بعدد جلسات VPN.

لتجاوز فشل عقد معينة من الكتلة (إذا لزم الأمر) ، يمكن استخدام ملف ، لذلك سيتم التعامل مع الاتصال النشط بواسطة العقدة الأساسية للملف. إن تجاوز الملفات ليس شرطًا ضروريًا لضمان التسامح مع الخطأ داخل كتلة موازنة التحميل ، فإن الكتلة نفسها ، في حالة فشل العقدة ، ستنقل جلسة المستخدم إلى عقدة مباشرة أخرى ، ولكن دون حفظ حالة الاتصال ، والتي هي على وجه التحديد المقدمة من الملف. وفقًا لذلك ، من الممكن ، إذا لزم الأمر ، الجمع بين هاتين التقنيتين.

يمكن أن تحتوي مجموعة موازنة تحميل VPN على أكثر من عقدتين.

يتم دعم VPN Load-Balancing Cluster على ASA 5512-X وما فوق.

نظرًا لأن كل ASA داخل مجموعة VPN Load-Balancing هي وحدة مستقلة من حيث الإعدادات ، فإننا نقوم بتنفيذ جميع خطوات التكوين بشكل فردي على كل جهاز على حدة.

تفاصيل التكنولوجيا هنا

الهيكل المنطقي للمثال المعطى:

نشر مجموعة موازنة التحميل ASA VPN

النشر الأساسي:

  1. ننشر مثيلات ASAv للقوالب التي نحتاجها (ASAv5 / 10/30/50) من الصورة.

  2. نقوم بتعيين واجهات INSIDE / OUTSIDE لنفس شبكات VLAN (خارجية في شبكة VLAN الخاصة بها ، داخل نفسها ، ولكن بشكل عام داخل المجموعة ، راجع الهيكل) ، من المهم أن تكون واجهات من نفس النوع في نفس مقطع 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 الخاص بنا ونقوم بإعداد الإعدادات لتنشيط الترخيص من خلال الحساب الذكي.

    !
    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 ، تحتاج إلى تحميل صورة إلى كل ASA لكل نظام تشغيل سطح مكتب عميل مستخدم (مخطط لاستخدام Linux / Windows / MAC) ، ستحتاج إلى ملف به حزمة نشر العنوان في العنوان:

    نشر مجموعة موازنة التحميل ASA VPN

    • يمكن تحميل الملفات التي تم تنزيلها ، على سبيل المثال ، إلى خادم FTP وتحميلها إلى كل ASA فردي:

    نشر مجموعة موازنة التحميل ASA VPN

    • نقوم بتكوين ASDM والشهادة الموقعة ذاتيًا لـ SSL-VPN (يوصى باستخدام شهادة موثوقة في الإنتاج). يجب أن يتم حل FQDN المعين لعنوان الكتلة الظاهري (vpn-demo.ashes.cc) ، وكذلك كل 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

    • لننفذ الإعدادات الأساسية للنفق:
    • دعنا نجعل شبكة الشركة متاحة عبر النفق ، ونترك الإنترنت يذهب مباشرة (ليست الطريقة الأكثر أمانًا إذا لم تكن هناك حماية على المضيف المتصل ، فمن الممكن اختراق مضيف مصاب وعرض بيانات الشركة ، الخيار تقسيم النفق - سياسة النفق سيسمح لكل حركة مرور المضيف في النفق. مع ذلك انقسام النفق يجعل من الممكن إلغاء تحميل بوابة VPN وعدم معالجة حركة مرور الإنترنت المضيفة)
    • لنصدر عناوين من الشبكة الفرعية 192.168.20.0/24 إلى المضيفين في النفق (تجمع من 10 إلى 30 عنوانًا (للعقدة رقم 1)). يجب أن يكون لكل عقدة من مجموعة VPN تجمع خاص بها.
    • سنقوم بتنفيذ المصادقة الأساسية مع مستخدم تم إنشاؤه محليًا على ASA (هذا غير مستحسن ، هذه هي الطريقة الأسهل) ، فمن الأفضل إجراء المصادقة من خلال LDAP / RADIUS، أو الأفضل من ذلك ، التعادل المصادقة متعددة العوامل (MFA)على سبيل المثال سيسكو 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
    !

    • (خياري): في المثال أعلاه ، استخدمنا مستخدمًا محليًا في الاتحاد الدولي للاتصالات للمصادقة على المستخدمين البعيدين ، وهو أمر غير قابل للتطبيق بالطبع ، باستثناء المختبر. سأقدم مثالاً على كيفية تكييف إعداد المصادقة بسرعة مع نصف القطر الخادم ، على سبيل المثال المستخدمة محرك خدمات الهوية سيسكو:

    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

    • لنقم بتكوين شبكة 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 عنوانًا تم إصداره للعملاء.
      في الوقت الحالي ، لم نقم بتكوين المجموعة بعد ، ولكن لدينا بالفعل بوابات 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. دعنا ننتقل إلى تكوين مجموعة موازنة التحميل.

    سيتم استخدام العنوان 192.168.31.40 كعنوان IP افتراضي (VIP - سيتصل جميع عملاء VPN في البداية به) ، من هذا العنوان ، ستقوم الكتلة الرئيسية بإجراء REDIRECT إلى عقدة مجموعة أقل تحميلًا. لا تنس أن تكتب إلى الأمام وعكس سجل DNS على حد سواء لكل عنوان خارجي / FQDN لكل عقدة من الكتلة ، وكبار الشخصيات.

    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

إضافة تعليق