پیاده سازی مفهوم دسترسی از راه دور بسیار امن

ادامه سلسله مقالات با موضوع سازماندهی VPN دسترسی از راه دور دسترسی من نمی توانم تجربه جالب استقرار خود را به اشتراک بگذارم پیکربندی VPN بسیار امن. یک کار غیر پیش پا افتاده توسط یک مشتری ارائه شد (مخترعانی در روستاهای روسیه وجود دارند)، اما چالش پذیرفته شد و خلاقانه اجرا شد. نتیجه یک مفهوم جالب با ویژگی های زیر است:

  1. چندین عامل محافظت در برابر جایگزینی دستگاه ترمینال (با اتصال دقیق به کاربر)؛
    • ارزیابی انطباق رایانه کاربر با UDID اختصاص داده شده رایانه شخصی مجاز در پایگاه داده احراز هویت.
    • با استفاده از MFA از PC UDID از گواهی برای احراز هویت ثانویه از طریق Cisco DUO (شما می توانید هر SAML/Radius سازگار را ضمیمه کنید);
  2. احراز هویت چند عاملی:
    • گواهی کاربر با تأیید میدانی و احراز هویت ثانویه در برابر یکی از آنها؛
    • ورود (غیر قابل تغییر، برگرفته از گواهی) و رمز عبور؛
  3. تخمین وضعیت میزبان اتصال (Posture)

اجزای محلول مورد استفاده:

  • Cisco ASA (VPN Gateway)؛
  • Cisco ISE (Authentication / Authorization / Accounting, State Evaluation, CA)؛
  • Cisco DUO (احراز هویت چند عاملی) (شما می توانید هر SAML/Radius سازگار را ضمیمه کنید);
  • Cisco AnyConnect (نماینده چند منظوره برای ایستگاه های کاری و سیستم عامل موبایل)؛

بیایید با نیازهای مشتری شروع کنیم:

  1. کاربر باید از طریق احراز هویت Login/Password خود بتواند کلاینت AnyConnect را از دروازه VPN دانلود کند؛ همه ماژول های ضروری AnyConnect باید به طور خودکار مطابق با خط مشی کاربر نصب شوند.
  2. کاربر باید بتواند به طور خودکار گواهی صادر کند (برای یکی از سناریوها، سناریوی اصلی صدور دستی و آپلود در رایانه شخصی است)، اما من مشکل خودکار را برای نمایش پیاده‌سازی کردم (هیچ وقت برای حذف آن دیر نیست).
  3. احراز هویت اولیه باید در چند مرحله انجام شود، ابتدا احراز هویت گواهی با تجزیه و تحلیل فیلدهای لازم و مقادیر آنها، سپس ورود به سیستم / رمز عبور، فقط این بار نام کاربری مشخص شده در قسمت گواهی باید در پنجره ورود وارد شود. نام موضوع (CN) بدون امکان ویرایش
  4. باید مطمئن شوید که دستگاهی که از آن وارد می‌شوید، لپ‌تاپ شرکتی است که برای دسترسی از راه دور به کاربر صادر شده است، نه چیز دیگری. (گزینه های متعددی برای برآورده کردن این نیاز ایجاد شده است)
  5. وضعیت دستگاه اتصال (در این مرحله رایانه شخصی) باید با بررسی یک جدول کامل از نیازهای مشتری (به طور خلاصه):
    • فایل ها و ویژگی های آنها؛
    • ورودی های رجیستری؛
    • وصله های سیستم عامل از لیست ارائه شده (یکپارچه سازی بعدی SCCM)؛
    • در دسترس بودن آنتی ویروس از یک سازنده خاص و ارتباط امضاها.
    • فعالیت برخی خدمات؛
    • در دسترس بودن برخی برنامه های نصب شده؛

برای شروع، من به شما پیشنهاد می کنم که حتماً به نمایش ویدیویی اجرای حاصل در آن نگاه کنید یوتیوب (5 دقیقه).

اکنون پیشنهاد می کنم جزئیات اجرایی را در نظر بگیرید که در کلیپ ویدیویی پوشش داده نشده است.

بیایید نمایه AnyConnect را آماده کنیم:

من قبلاً در مقاله خود در مورد تنظیمات مثالی از ایجاد نمایه (از نظر یک آیتم منو در ASDM) ارائه کردم. خوشه تعادل بار VPN. اکنون می خواهم به طور جداگانه به گزینه هایی که نیاز داریم اشاره کنم:

در نمایه، دروازه VPN و نام نمایه را برای اتصال به مشتری نهایی نشان خواهیم داد:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

اجازه دهید صدور خودکار گواهی را از سمت نمایه پیکربندی کنیم، به ویژه پارامترهای گواهی را نشان می دهد و به طور مشخص، به فیلد توجه می کنیم حروف اول (I)، جایی که مقدار خاصی به صورت دستی وارد می شود انجامش دادی دستگاه تست (شناسه دستگاه منحصر به فرد که توسط مشتری Cisco AnyConnect تولید می شود).

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

در اینجا می‌خواهم یک انحراف غزلی انجام دهم، زیرا این مقاله مفهوم را توصیف می‌کند؛ برای اهداف نمایشی، UDID برای صدور گواهی در قسمت Initials نمایه AnyConnect وارد می‌شود. البته، در زندگی واقعی، اگر این کار را انجام دهید، همه مشتریان گواهی با همان UDID در این زمینه دریافت خواهند کرد و هیچ چیز برای آنها کار نخواهد کرد، زیرا آنها به UDID رایانه شخصی خود نیاز دارند. متأسفانه AnyConnect هنوز جایگزینی فیلد UDID را در نمایه درخواست گواهی از طریق یک متغیر محیطی اجرا نمی کند، همانطور که برای مثال با یک متغیر انجام می دهد. ٪کاربر٪.

شایان ذکر است که مشتری (این سناریو) در ابتدا قصد دارد به طور مستقل گواهینامه هایی با یک UDID داده شده در حالت دستی برای چنین رایانه های شخصی محافظت شده صادر کند که برای او مشکلی ایجاد نمی کند. با این حال، برای اکثر ما ما اتوماسیون می خواهیم (خوب، برای من درست است =)).

و این چیزی است که من می توانم از نظر اتوماسیون ارائه دهم. اگر AnyConnect هنوز قادر به صدور گواهی به طور خودکار با جایگزینی پویا UDID نیست، راه دیگری وجود دارد که به کمی تفکر خلاق و دستان ماهر نیاز دارد - من مفهوم را به شما می گویم. ابتدا، بیایید نحوه تولید UDID در سیستم عامل های مختلف توسط عامل AnyConnect را بررسی کنیم:

  • ویندوز - هش SHA-256 از ترکیب کلید رجیستری DigitalProductID و Machine SID
  • OSX - SHA-256 هش PlatformUUID
  • لینـوکــس - هش SHA-256 UUID پارتیشن ریشه.
  • اپل در iOS - SHA-256 هش PlatformUUID
  • آندروید - مشاهده سند در پیوند

بر این اساس، ما یک اسکریپت برای سیستم عامل ویندوز شرکت خود ایجاد می کنیم، با این اسکریپت UDID را به صورت محلی با استفاده از ورودی های شناخته شده محاسبه می کنیم و با وارد کردن این UDID در فیلد مورد نیاز، درخواست صدور گواهی را تشکیل می دهیم، ضمناً می توانید از یک ماشین نیز استفاده کنید. گواهی صادر شده توسط AD (با افزودن احراز هویت مضاعف با استفاده از یک گواهی به طرح گواهی چندگانه).

بیایید تنظیمات را در سمت Cisco ASA آماده کنیم:

بیایید یک TrustPoint برای سرور ISE CA ایجاد کنیم، این سرور خواهد بود که گواهینامه ها را برای مشتریان صادر می کند. من روش واردات Key-Chain را در نظر نمی گیرم؛ یک مثال در مقاله راه اندازی من توضیح داده شده است خوشه تعادل بار VPN.

crypto ca trustpoint ISE-CA
 enrollment terminal
 crl configure

ما توزیع توسط Tunnel-Group را بر اساس قوانین مطابق با فیلدهای موجود در گواهی که برای احراز هویت استفاده می شود پیکربندی می کنیم. نمایه AnyConnect که در مرحله قبل ساختیم نیز در اینجا پیکربندی شده است. لطفا توجه داشته باشید که من از مقدار استفاده می کنم SECUREBANK-RA، برای انتقال کاربران دارای گواهینامه صادر شده به یک گروه تونل SECURE-BANK-VPN، لطفاً توجه داشته باشید که من این فیلد را در ستون درخواست گواهی نمایه AnyConnect دارم.

tunnel-group-map enable rules
!
crypto ca certificate map OU-Map 6
 subject-name attr ou eq securebank-ra
!
webvpn
 anyconnect profiles SECUREBANK disk0:/securebank.xml
 certificate-group-map OU-Map 6 SECURE-BANK-VPN
!

راه اندازی سرورهای احراز هویت در مورد من، این 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
!

ما خط مشی های گروهی و گروه های تونل و اجزای کمکی آنها را ایجاد می کنیم:

گروه تونل پیش فرضWEBVPNGgroup اساساً برای دانلود مشتری AnyConnect VPN و صدور گواهی کاربر با استفاده از تابع SCEP-Proxy ASA استفاده می شود؛ برای این کار، گزینه های مربوطه را هم در خود گروه تونل و هم در خط مشی گروه مرتبط فعال داریم. AC-دانلود، و در نمایه AnyConnect بارگذاری شده (فیلدهای صدور گواهی و غیره). همچنین در این خط مشی گروه ما نیاز به دانلود را نشان می دهیم ماژول وضعیت بدن ISE.

گروه تونل SECURE-BANK-VPN هنگام احراز هویت با گواهی صادر شده در مرحله قبل، به طور خودکار توسط مشتری استفاده می شود، زیرا مطابق با نقشه گواهی، اتصال به طور خاص بر روی این گروه تونل قرار می گیرد. من در اینجا در مورد گزینه های جالب به شما خواهم گفت:

  • secondary-authentication-server-group DUO # تنظیم احراز هویت ثانویه در سرور DUO (پراکسی Radius)
  • username-from-certificateCN # برای احراز هویت اولیه، از فیلد CN گواهی برای به ارث بردن ورود کاربر استفاده می کنیم
  • ثانویه-نام کاربری-از-گواهینامه I # برای احراز هویت ثانویه در سرور DUO، از نام کاربری استخراج شده و فیلدهای Initials (I) گواهی استفاده می کنیم.
  • مشتری نام کاربری پیش پر # نام کاربری را بدون امکان تغییر در پنجره احراز هویت از قبل پر کنید
  • سرویس گیرنده ثانویه-پیش-پر-نام کاربری پنهان کردن استفاده-معمول-کلمه عبور # ما پنجره ورود به سیستم/رمز عبور را برای احراز هویت ثانویه DUO پنهان می کنیم و از روش اعلان (sms/push/phone) استفاده می کنیم - داک برای درخواست احراز هویت به جای فیلد رمز عبور اینجا

!
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 (از گواهی + اتصال ورود به سیستم)،
    • Cisco DUO MFA;
    • احراز هویت با ورود؛
    • احراز هویت گواهی؛

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

بیایید به یک شرایط جالب توجه کنیم UUID_VALIDATED، به نظر می رسد که کاربر احراز هویت در واقع از یک رایانه شخصی با UDID مجاز مرتبط در فیلد آمده است. توضیحات: حساب، شرایط به این صورت است:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

نمایه مجوز استفاده شده در مراحل 1,2,3،XNUMX،XNUMX به شرح زیر است:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

با مشاهده جزئیات جلسه مشتری در ISE، می‌توانید دقیقاً نحوه رسیدن UDID از مشتری AnyConnect به ما را بررسی کنید. در جزئیات، AnyConnect را از طریق مکانیسم مشاهده خواهیم کرد اسید نه تنها اطلاعات مربوط به پلتفرم، بلکه UDID دستگاه را نیز ارسال می کند Cisco-AV-PAIR:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

بیایید به گواهی صادر شده برای کاربر و فیلد توجه کنیم حروف اول (I)، که برای دریافت آن به عنوان یک ورود برای احراز هویت ثانویه MFA در Cisco DUO استفاده می شود:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

در سمت پراکسی DUO Radius در گزارش، ما به وضوح می‌توانیم نحوه درخواست احراز هویت را ببینیم، این درخواست از UDID به عنوان نام کاربری استفاده می‌کند:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

از پورتال DUO شاهد یک رویداد احراز هویت موفق هستیم:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

و در ویژگی های کاربر آن را تنظیم کرده ام آلیاس، که من برای ورود استفاده کردم، به نوبه خود، این UDID رایانه شخصی مجاز برای ورود است:

پیاده سازی مفهوم دسترسی از راه دور بسیار امن

در نتیجه گرفتیم:

  • احراز هویت چند عاملی کاربر و دستگاه؛
  • محافظت در برابر جعل دستگاه کاربر؛
  • ارزیابی وضعیت دستگاه؛
  • پتانسیل افزایش کنترل با گواهی ماشین دامنه و غیره.
  • حفاظت جامع از راه دور محل کار با ماژول های امنیتی مستقر به طور خودکار.

پیوند به مقالات سری Cisco VPN:

منبع: www.habr.com

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