استمرار سلسلة المقالات حول موضوع التنظيم الوصول عن بعد VPN الوصول لا يسعني إلا مشاركة تجربة نشر مثيرة للاهتمام تكوين VPN آمن للغاية. تم طرح مهمة غير تافهة من قبل عميل واحد (يوجد مخترعون في القرى الروسية) ، ولكن تم قبول التحدي بشكل خلاق. والنتيجة هي مفهوم مثير للاهتمام بالخصائص التالية:
عدة عوامل للحماية من استبدال الجهاز الطرفي (بربط صارم للمستخدم) ؛
تقييم امتثال جهاز الكمبيوتر الخاص بالمستخدم مع UDID المخصص لجهاز الكمبيوتر المسموح به في قاعدة المصادقة ؛
مع MFA باستخدام PC UDID من الشهادة للمصادقة الثانوية عبر Cisco DUO (يمكنك برغي أي متوافق مع SAML / Radius);
مصادقة متعددة العوامل:
شهادة المستخدم مع التحقق من صحة المجال والمصادقة الثانوية لأحدهم ؛
تسجيل الدخول (غير قابل للتغيير ، مأخوذ من الشهادة) وكلمة المرور ؛
تقدير حالة المضيف المتصل (الموقف)
مكونات الحل المستخدمة:
Cisco ASA (بوابة VPN) ؛
Cisco ISE (المصادقة / التفويض / المحاسبة ، تقدير الحالة ، كاليفورنيا) ؛
Cisco DUO (مصادقة متعددة العوامل) (يمكنك برغي أي متوافق مع SAML / Radius);
Cisco AnyConnect (وكيل متعدد الأغراض لمحطات العمل ونظام التشغيل المحمول) ؛
لنبدأ بمتطلبات العميل:
يجب أن يكون المستخدم قادرًا على تنزيل عميل AnyConnect من بوابة VPN من خلال مصادقة تسجيل الدخول / كلمة المرور الخاصة به ، ويجب تثبيت جميع وحدات AnyConnect الضرورية تلقائيًا وفقًا لسياسة المستخدم ؛
يجب أن يكون المستخدم قادرًا على إصدار شهادة تلقائيًا (بالنسبة لأحد السيناريوهات ، يكون السيناريو الرئيسي هو إصدار يدوي وملء على جهاز كمبيوتر شخصي) ، لكنني قمت بتنفيذ الإصدار التلقائي للعرض التوضيحي (لم يفت الأوان على إزالته أبدًا).
يجب أن تتم المصادقة الأساسية على عدة مراحل ، أولاً يتم توثيق الشهادة مع تحليل الحقول المطلوبة وقيمها ، ثم تسجيل الدخول / كلمة المرور ، هذه المرة فقط يجب استبدال اسم المستخدم المحدد في حقل الشهادة في نافذة تسجيل الدخول اسم الموضوع (CN) بدون امكانية التحرير.
تحتاج إلى التأكد من أن الجهاز الذي تقوم بتسجيل الدخول منه هو كمبيوتر محمول مشترك تم إصداره للمستخدم للوصول عن بُعد ، ولا شيء آخر. (تم إجراء العديد من الاختلافات لتلبية هذا المطلب)
يجب تقييم حالة الجهاز المتصل (في هذه المرحلة ، جهاز الكمبيوتر) مع فحص الجدول الضخم الكامل لمتطلبات العملاء (التلخيص):
الملفات وخصائصها ؛
إدخالات التسجيل ؛
تصحيحات نظام التشغيل من القائمة المتوفرة (مزيد من تكامل SCCM) ؛
توافر برنامج مكافحة الفيروسات الخاص بشركة مصنعة معينة ومدى ملاءمة التوقيعات ؛
نشاط بعض الخدمات ؛
وجود بعض البرامج المثبتة ؛
بادئ ذي بدء ، أقترح أن تنظر بالتأكيد إلى عرض الفيديو للتنفيذ الناتج في يوتيوب (5 دقائق).
أقترح الآن النظر في تفاصيل التنفيذ التي لم يتم تناولها في مقطع الفيديو.
لنعد ملف تعريف AnyConnect:
مثال على إنشاء ملف تعريف (من حيث عنصر القائمة في ASDM) الذي قدمته سابقًا في مقالتي حول الإعداد مجموعة موازنة تحميل VPN. الآن أريد أن أشير بشكل منفصل إلى الخيارات التي نحتاجها:
في ملف التعريف ، حدد بوابة VPN واسم ملف التعريف للاتصال على العميل النهائي:
لنقم بإعداد الإصدار التلقائي للشهادة من جانب الملف الشخصي ، مع تحديد ، على وجه الخصوص ، معلمات الشهادة ، وهو أمر نموذجي ، انتبه إلى المجال الأحرف الأولى (I)، حيث يتم إدخال قيمة محددة يدويًا أنت فعلت جهاز الاختبار (معرّف الجهاز الفريد الذي تم إنشاؤه بواسطة عميل Cisco AnyConnect).
هنا أريد إجراء استطراد غنائي ، نظرًا لأن هذه المقالة تصف المفهوم ، لأغراض العرض التوضيحي ، إليك UDID لإصدار شهادة في حقل الأحرف الأولى من ملف تعريف AnyConnect. بالطبع ، في الحياة الواقعية ، إذا قمت بذلك ، فسيحصل جميع العملاء على شهادة بنفس UDID في هذا المجال ولن يعمل شيء معهم ، لأنهم يحتاجون إلى UDID الخاص بجهاز الكمبيوتر الخاص بهم. لا يقوم AnyConnect ، للأسف ، بتنفيذ استبدال حقل UDID في ملف تعريف طلب الشهادة من خلال متغير البيئة ، كما هو الحال ، على سبيل المثال ، مع المتغير ٪مستخدم٪.
وتجدر الإشارة إلى أن العميل (في هذا السيناريو) يخطط مبدئيًا لإصدار الشهادات يدويًا باستخدام UDID المحدد إلى أجهزة الكمبيوتر الشخصية المحمية من تلقاء نفسه ، وهو ما لا يمثل مشكلة بالنسبة له. ومع ذلك ، بالنسبة لمعظمنا ، نريد الأتمتة (حسنًا ، بالنسبة لي ، هذا مؤكد =)).
وهذا ما يمكنني تقديمه من حيث الأتمتة. إذا لم يكن من الممكن إصدار شهادة تلقائيًا بعد ، فإن AnyConnect تحل محل UDID ديناميكيًا ، فهناك طريقة أخرى تتطلب القليل من التفكير الإبداعي والأيدي الماهرة - سأخبرك بالمفهوم. أولاً ، دعنا نلقي نظرة على كيفية تكوين UDID على أنظمة تشغيل مختلفة بواسطة وكيل AnyConnect:
Windows - تجزئة SHA-256 لتركيبة مفتاح التسجيل DigitalProductID و Machine SID
وفقًا لذلك ، نقوم بعمل برنامج نصي لنظام التشغيل Windows الخاص بشركتنا ، باستخدام هذا البرنامج النصي ، نحسب UDID محليًا من المدخلات المعروفة ونشكل طلبًا لإصدار شهادة عن طريق إدخال UDID هذا في الحقل المطلوب ، بالمناسبة ، يمكنك أيضًا استخدام جهاز شهادة صادرة عن AD (إضافة مصادقة مزدوجة بشهادة إلى النظام شهادة متعددة).
دعنا نجهز الإعدادات من جانب Cisco ASA:
لنقم بإنشاء TrustPoint لخادم ISE CA ، وسوف يصدر شهادات للعملاء. لن أفكر في إجراء استيراد Key-Chain ، هناك مثال موصوف في مقالة الإعداد الخاصة بي مجموعة موازنة تحميل VPN.
crypto ca trustpoint ISE-CA
enrollment terminal
crl configure
قمنا بإعداد التوزيع عبر Tunnel-Group استنادًا إلى القواعد وفقًا للحقول الموجودة في الشهادة المستخدمة للمصادقة. أيضًا ، تم هنا تكوين ملف تعريف AnyConnect ، الذي قمنا به في المرحلة الأخيرة. يرجى ملاحظة أنني أستخدم القيمة سيكيوريبانك-RA، لنقل المستخدمين بشهادة صادرة إلى مجموعة أنفاق البنك الآمن-VPN، يرجى ملاحظة أن لدي هذا الحقل في عمود طلب شهادة ملف تعريف AnyConnect.
قم بإعداد خادم المصادقة. في حالتي ، هذا هو ISE للمرحلة الأولى من المصادقة و DUO (Radius Proxy) باعتباره MFA.
! CISCO ISE
aaa-server ISE protocol radius
authorize-only
interim-accounting-update periodic 24
dynamic-authorization
aaa-server ISE (inside) host 192.168.99.134
key *****
!
! DUO RADIUS PROXY
aaa-server DUO protocol radius
aaa-server DUO (inside) host 192.168.99.136
timeout 60
key *****
authentication-port 1812
accounting-port 1813
no mschapv2-capable
!
نقوم بإنشاء سياسات المجموعة ومجموعات الأنفاق ومكوناتها المساعدة:
مجموعة النفق DefaultWEBVPNG المجموعة سيتم استخدامه بشكل أساسي لتنزيل عميل AnyConnect VPN وإصدار شهادة مستخدم باستخدام وظيفة SCEP-Proxy لـ ASA ، ولهذا قمنا بتنشيط الخيارات المناسبة على كل من مجموعة النفق نفسها وعلى سياسة المجموعة المرتبطة تحميل AC، وعلى ملف تعريف AnyConnect المحمل (حقول إصدار الشهادة ، إلخ). نشير أيضًا في سياسة المجموعة هذه إلى الحاجة إلى التنزيل وحدة وضعية ISE.
مجموعة النفق البنك الآمن-VPN سيتم استخدامه تلقائيًا بواسطة العميل عند المصادقة باستخدام الشهادة الصادرة في الخطوة السابقة ، حيث أنه وفقًا لخريطة الشهادة ، سيقع الاتصال في مجموعة النفق هذه. سأخبرك عن الخيارات الشيقة هنا:
مصادقة ثانوية خادم مجموعة DUO # تعيين المصادقة الثانوية على خادم DUO (Radius Proxy)
اسم المستخدم من شهادة CN # استخدم حقل CN للشهادة للمصادقة الأولية لوراثة تسجيل دخول المستخدم
اسم المستخدم الثانوي من الشهادة أنا # للمصادقة الثانوية على خادم DUO ، استخدم اسم المستخدم المستخرج والحقول الأولى (I) للشهادة.
عميل اسم المستخدم الملء المسبق # جعل اسم المستخدم مملوءًا مسبقًا في نافذة المصادقة دون إمكانية التغيير
عميل اسم المستخدم الثانوي - ما قبل الملء - إخفاء دفع كلمة المرور الشائعة # إخفاء نافذة إدخال تسجيل الدخول / كلمة المرور لمصادقة DUO الثانوية واستخدم طريقة الإخطار (sms / push / phone) بدلاً من حقل كلمة المرور لطلب المصادقة - doc هنا
!
access-list posture-redirect extended permit tcp any host 72.163.1.80
access-list posture-redirect extended deny ip any any
!
access-list VPN-Filter extended permit ip any any
!
ip local pool vpn-pool 192.168.100.33-192.168.100.63 mask 255.255.255.224
!
group-policy SECURE-BANK-VPN internal
group-policy SECURE-BANK-VPN attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
group-policy AC-DOWNLOAD internal
group-policy AC-DOWNLOAD attributes
dns-server value 192.168.99.155 192.168.99.130
vpn-filter value VPN-Filter
vpn-tunnel-protocol ssl-client
split-tunnel-policy tunnelall
default-domain value ashes.cc
address-pools value vpn-pool
scep-forwarding-url value http://ise.ashes.cc:9090/auth/caservice/pkiclient.exe
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1300
anyconnect keep-installer installed
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method ssl
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression lzs
anyconnect dtls compression lzs
anyconnect modules value iseposture
anyconnect profiles value SECUREBANK type user
!
tunnel-group DefaultWEBVPNGroup general-attributes
address-pool vpn-pool
authentication-server-group ISE
accounting-server-group ISE
default-group-policy AC-DOWNLOAD
scep-enrollment enable
tunnel-group DefaultWEBVPNGroup webvpn-attributes
authentication aaa certificate
!
tunnel-group SECURE-BANK-VPN type remote-access
tunnel-group SECURE-BANK-VPN general-attributes
address-pool vpn-pool
authentication-server-group ISE
secondary-authentication-server-group DUO
accounting-server-group ISE
default-group-policy SECURE-BANK-VPN
username-from-certificate CN
secondary-username-from-certificate I
tunnel-group SECURE-BANK-VPN webvpn-attributes
authentication aaa certificate
pre-fill-username client
secondary-pre-fill-username client hide use-common-password push
group-alias SECURE-BANK-VPN enable
dns-group ASHES-DNS
!
بعد ذلك ، دعنا ننتقل إلى ISE:
قمنا بإعداد مستخدم محلي (يمكنك أيضًا استخدام AD / LDAP / ODBC ، وما إلى ذلك) ، من أجل التبسيط ، قمت بإنشاء مستخدم محلي في ISE نفسه وقمت بتعيينه إلى الحقل وصفUDID للكمبيوتر الشخصي التي يُسمح له بتسجيل الدخول منها عبر VPN. في حالة استخدام المصادقة المحلية على ISE ، سأقتصر على جهاز واحد فقط ، نظرًا لعدم وجود العديد من الحقول ، ولكن في قواعد بيانات المصادقة الخاصة بطرف ثالث ، لن يكون لدي مثل هذه القيود.
لنلقِ نظرة على سياسة التفويض ، وهي مقسمة إلى أربع مراحل من الاتصال:
المرحلة 1 - سياسة تنزيل وكيل AnyConnect وإصدار شهادة
المرحلة 2 - سياسة المصادقة الأساسية تسجيل الدخول (من الشهادة) / كلمة المرور + الشهادة مع التحقق من صحة UDID
المرحلة 3 - المصادقة الثانوية عبر Cisco DUO (MFA) بواسطة UDID كاسم مستخدم + تقييم الحالة
المرحلة 4 - التفويض النهائي بالدولة:
متوافق
التحقق من صحة UDID (من الشهادة + الربط بتسجيل الدخول) ،
سيسكو DUO MFA
مصادقة تسجيل الدخول ؛
مصادقة الشهادة ؛
دعونا نلقي نظرة على حالة مثيرة للاهتمام UUID_VALIDATED، يبدو فقط أن المستخدم المصادق عليه جاء بالفعل من جهاز كمبيوتر مع UDID مرتبط مسموح به في هذا المجال الوصف الحساب ، تبدو الشروط كما يلي:
يبدو ملف تعريف التفويض المستخدم في المراحل 1,2,3،XNUMX،XNUMX كما يلي:
يمكنك التحقق بالضبط من كيفية وصول UDID من عميل AnyConnect من خلال النظر في تفاصيل جلسة العميل في ISE. سنرى بالتفصيل أن AnyConnect من خلال الآلية أسيدكس لا يرسل بيانات حول النظام الأساسي فحسب ، بل يرسل أيضًا UDID للجهاز كـ سيسكو-AV-PAIR:
انتبه للشهادة الصادرة للمستخدم والميدان الأحرف الأولى (I)، والذي يتم استخدامه لتسجيل الدخول لمصادقة MFA الثانوية على Cisco DUO:
على جانب DUO Radius Proxy ، يمكننا أن نرى بوضوح في السجل كيف يسير طلب المصادقة ، يتم استخدام UDID كاسم مستخدم:
من بوابة DUO ، نرى حدث مصادقة ناجح:
وفي خصائص المستخدم التي قمت بتعيينها ALIAS، والذي كنت أستخدمه لتسجيل الدخول ، بدوره ، هذا هو UDID للكمبيوتر المسموح به لتسجيل الدخول:
نتيجة لذلك ، حصلنا على:
المصادقة متعددة العوامل للمستخدم والجهاز ؛
الحماية من استبدال جهاز المستخدم ؛
تقييم حالة الجهاز.
إمكانية زيادة التحكم بشهادة آلة المجال ، وما إلى ذلك ؛
حماية شاملة لمكان العمل البعيد مع وحدات الأمان المنتشرة تلقائيًا ؛