ادامه سلسله مقالات با موضوع سازماندهی VPN دسترسی از راه دور دسترسی من نمی توانم تجربه جالب استقرار خود را به اشتراک بگذارم پیکربندی VPN بسیار امن. یک کار غیر پیش پا افتاده توسط یک مشتری ارائه شد (مخترعانی در روستاهای روسیه وجود دارند)، اما چالش پذیرفته شد و خلاقانه اجرا شد. نتیجه یک مفهوم جالب با ویژگی های زیر است:
چندین عامل محافظت در برابر جایگزینی دستگاه ترمینال (با اتصال دقیق به کاربر)؛
ارزیابی انطباق رایانه کاربر با UDID اختصاص داده شده رایانه شخصی مجاز در پایگاه داده احراز هویت.
با استفاده از MFA از PC UDID از گواهی برای احراز هویت ثانویه از طریق Cisco DUO (شما می توانید هر SAML/Radius سازگار را ضمیمه کنید);
احراز هویت چند عاملی:
گواهی کاربر با تأیید میدانی و احراز هویت ثانویه در برابر یکی از آنها؛
ورود (غیر قابل تغییر، برگرفته از گواهی) و رمز عبور؛
تخمین وضعیت میزبان اتصال (Posture)
اجزای محلول مورد استفاده:
Cisco ASA (VPN Gateway)؛
Cisco ISE (Authentication / Authorization / Accounting, State Evaluation, CA)؛
Cisco DUO (احراز هویت چند عاملی) (شما می توانید هر SAML/Radius سازگار را ضمیمه کنید);
Cisco AnyConnect (نماینده چند منظوره برای ایستگاه های کاری و سیستم عامل موبایل)؛
بیایید با نیازهای مشتری شروع کنیم:
کاربر باید از طریق احراز هویت Login/Password خود بتواند کلاینت AnyConnect را از دروازه VPN دانلود کند؛ همه ماژول های ضروری AnyConnect باید به طور خودکار مطابق با خط مشی کاربر نصب شوند.
کاربر باید بتواند به طور خودکار گواهی صادر کند (برای یکی از سناریوها، سناریوی اصلی صدور دستی و آپلود در رایانه شخصی است)، اما من مشکل خودکار را برای نمایش پیادهسازی کردم (هیچ وقت برای حذف آن دیر نیست).
احراز هویت اولیه باید در چند مرحله انجام شود، ابتدا احراز هویت گواهی با تجزیه و تحلیل فیلدهای لازم و مقادیر آنها، سپس ورود به سیستم / رمز عبور، فقط این بار نام کاربری مشخص شده در قسمت گواهی باید در پنجره ورود وارد شود. نام موضوع (CN) بدون امکان ویرایش
باید مطمئن شوید که دستگاهی که از آن وارد میشوید، لپتاپ شرکتی است که برای دسترسی از راه دور به کاربر صادر شده است، نه چیز دیگری. (گزینه های متعددی برای برآورده کردن این نیاز ایجاد شده است)
وضعیت دستگاه اتصال (در این مرحله رایانه شخصی) باید با بررسی یک جدول کامل از نیازهای مشتری (به طور خلاصه):
فایل ها و ویژگی های آنها؛
ورودی های رجیستری؛
وصله های سیستم عامل از لیست ارائه شده (یکپارچه سازی بعدی 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
بر این اساس، ما یک اسکریپت برای سیستم عامل ویندوز شرکت خود ایجاد می کنیم، با این اسکریپت 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 دارم.
راه اندازی سرورهای احراز هویت در مورد من، این 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 رایانه شخصی مجاز برای ورود است:
در نتیجه گرفتیم:
احراز هویت چند عاملی کاربر و دستگاه؛
محافظت در برابر جعل دستگاه کاربر؛
ارزیابی وضعیت دستگاه؛
پتانسیل افزایش کنترل با گواهی ماشین دامنه و غیره.
حفاظت جامع از راه دور محل کار با ماژول های امنیتی مستقر به طور خودکار.