کدام گواهی ماشین را VPN ویندوز ارائه میدهد؟
چند گواهی ماشین، یکی ارائه میشود و دروازه آن را رد میکند. بهجای حذف هر چیز، مجموعه را با فیلترهای صادرکننده و EKU محدود کنید.
گواهیها نصب شدهاند، کلیدهای خصوصی وجود دارند و تونل هنوز در احراز هویت شکست میخورد. ماشینی که چند گواهی دارد میتواند نامزد ناخواستهای را به VPN بدهد و کلاینت هیچ راهی ندارد بداند دروازه کدام را میپذیرد. حذف بقیه یک سیاست انتخاب با پیامدهایی برای هر سرویس روی ماشین است. در عوض مجموعه واجد شرایط را محدود کنید و سپس تأیید کنید کدام گواهی واقعاً ارائه شده است.
چند گواهی، یکی ارائهشده
پروفایلهای بومی VPN ویندوز با احراز هویت گواهی ماشین دو فیلتر ارائه میدهند که نامزدها را محدود میکنند: فیلتر صادرکننده و فیلتر استفاده گسترده از کلید. آنها مجموعهای را که کلاینت میتواند از آن انتخاب کند کوچکتر میکنند. گواهی نامناسب را درست نمیکنند و تضمین نمیکنند که سرور آنچه میماند را بپذیرد. این مرز ارزش ثبت در دفتر تغییرات را دارد، چون خواننده بعدی فرض میکند فیلتر بیش از آنچه واقعاً تصمیم گرفته، تصمیم گرفته است.
خطایی که به آن میپردازند باریک و مشخص است. گواهی معتبر از مرجع اشتباه، یا گواهی صادرشده برای هدفی که دروازه نمیپذیرد، پیش از گواهی موردنظر انتخاب میشود و همین در کنار یک مخزن سالم، شکست احراز هویت میسازد. دو فیلتر آن را به مجموعهای بهقدر کافی کوچک برای استدلال تبدیل میکنند و ادامه این صفحه آنها را به ترتیب اعمال میکند.
پیش از ویرایش پروفایل، مخزن را بررسی کنید
نامزدها و ویژگیهایشان را در مخزنی فهرست کنید که پروفایل واقعاً استفاده میکند. هیچچیز اینجا کلید خصوصی صادر نمیکند و هیچ گواهی لازم نیست ماشین را ترک کند:
Get-VpnConnection -Name 'Office' | Select-Object Name, TunnelType, AuthenticationMethod
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Issuer, Thumbprint, NotAfter, HasPrivateKey, EnhancedKeyUsageList
خروجی را برای ویژگیهایی بخوانید که تصمیم به آنها وابسته است: کلید خصوصی قابل استفاده، بازه اعتبار قابل قبول، صادرکننده موردنظر و اهداف موجود در افزونه. یک گواهی میتواند همزمان حاضر، درست ثبتشده و برای این اتصال بیفایده باشد. ستون اثر انگشت همان چیزی است که بعداً با آن مقایسه میکنید، پس خروجی را نگه دارید.
پیش از ویرایش، پروفایل و دامنه آن را تأیید کنید، چون گواهی ماشین در LocalMachine، گواهی EAP-TLS کاربر و مخزن کلید خصوصی یک برنامه سه زمینه متفاوتاند. وقتی پروفایل مدیریتشده همانجاست از دامنه همه کاربران و زمینه مدیریتی استفاده کنید. ساختن پروفایل دومی با نام مشابه پنهان میکند که اتصال واقعاً از کدام پیکربندی استفاده میکند.
فیلتر صادرکننده یک شیء میخواهد
پارامتر صادرکننده یک شیء گواهی انتظار دارد، نه نام نمایشی و نه رشته خالی اثر انگشت. گواهی مرجع تأییدشده را از مسیری که بررسی کردهاید، در مخزنی که به آن تعلق دارد ارائه دهید:
$issuerPath = Read-Host 'Certificate-provider path for the approved issuer CA'
$issuer = Get-Item -LiteralPath $issuerPath
Set-VpnConnection -Name 'Office' -MachineCertificateIssuerFilter $issuer
گواهی برگ خود کلاینت، مرجع دیگری با موضوع مشابه، یا ریشه تازهساختهشده را فقط به این دلیل که نوع پارامتر آن را میپذیرد جایگزین نکنید. دو مرجع میتوانند یک رشته موضوع را شریک باشند، و به همین دلیل شیء از متن مهمتر است. مرجع cmdlet مایکروسافت هر دو نوع ورودی را مستند میکند و ارزش خواندن پیش از نخستین ویرایش را دارد، نه پس از تلاش ناموفق.
فیلتر استفاده یک رشته OID میخواهد
پارامتر استفاده گسترده از کلید رشتههای OID میگیرد و هدف احراز هویت کلاینت 1.3.6.1.5.5.7.3.2. اعمال آن نامزدها را به گواهیهایی محدود میکند که این هدف را دارند، و این همان چیزی است که یک استقرار با احراز هویت کلاینت میخواهد:
Set-VpnConnection -Name 'Office' -MachineCertificateEKUFilter '1.3.6.1.5.5.7.3.2'
مقدار یک آرایه است، پس استقراری که چند هدف لازم دارد آنها را بهصورت فهرست میفرستد. کاری که فیلتر نمیتواند بکند افزودن هدف به گواهی است: این یک عبارت انتخاب است که در برابر افزونههای امضاشده ارزیابی میشود و هیچ فیلتری آنها را بازنویسی نمیکند، پس گواهیای که هدف را ندارد باید دوباره از ثبت عبور کند.
پیکربندی EAP گواهی کاربران را از فیلتر کردن گواهی ماشین جدا نگه دارید، چون در جاهای مختلفی زندگی میکنند و تغییری در یکی بهندرت شکست در دیگری را توضیح میدهد. همچنین بررسی کنید که دامنه یا مدیریت دستگاه مالک پروفایل است یا نه، چون ویرایش محلی میتواند در تازهسازی بعدی خطمشی جایگزین شود بیآنکه کسی به ماشین دست بزند.
ثابت کنید کلاینت کدام گواهی را ارائه کرد
اتصال تازهای برقرار کنید و شواهد احراز هویت کلاینت و سرور را برای هویتی که در نظر داشتید بخوانید. وقتی بیش از یک گواهی فیلترها را برآورده میکند، نتیجه مجموعهای کوچکتر است نه یک برگ سنجاقشده، پس تلاش بعدی میتواند عضو دیگری را انتخاب کند. اثر انگشتی را که در آن شواهد میآید یادداشت کنید و با آنچه از مخزن ثبت کردهاید مقایسه کنید.
یک فرمان موفق احراز هویت موفق نیست. نتیجهای که ارزش ثبت دارد این است که گواهی موردنظر زیر خطمشی مدیریتشده احراز هویت کند و در همان حال هر گواهی نامرتبط برای سرویسهایی که به آن وابستهاند در دسترس بماند. اگر شکست از هر دو فیلتر جان سالم به در برد، جای بعدی برای بررسی نامزدهای باقیمانده است نه کل پروفایل.