ساخت VPN با IKEv2 در PowerShell با گواهی ماشین
محل گواهی، پیشوندهای مسیر و اعتبارنامههای EAP جاهایی هستند که اسکریپت IKEv2 شکست میخورد. تونل را در PowerShell بسازید و هر مرحله را جداگانه بررسی کنید.
ویندوز یک کارخواه IKEv2 دارد که PowerShell آن را از ابتدا تا انتها کنترل میکند، پس یک تونل کارآمد به رابط گرافیکی و نرمافزار شخص ثالث نیازی ندارد. تقریباً هر شکستی از سه جا میآید: اینکه گواهی کجا قرار گرفت، پیشوندهای مسیر چگونه نوشته شدند و روش EAP انتخابشده چه انتظاری دارد. آنها را به همین ترتیب رسیدگی کنید، چون هر یک پیش از شروع بعدی قابل بررسی است و خطای بعدی خطای قبلی را میپوشاند.
تونلهای گواهی ماشین برای شروع پیش از ورود هر کاربر وجود دارند، از این رو هویت معمولاً باید در انبار رایانه زندگی کند نه در انبار کاربر.
نخست گواهی، سپس تونل
دو درونریزی اهمیت دارند. هویت کارخواه به Cert:\LocalMachine\My از راه Import-PfxCertificate میرود و CA صادرکننده به Cert:\LocalMachine\Root از راه Import-Certificate. یک برگ بهتنهایی هیچ زنجیرهای را اثبات نمیکند، پس رد کردن درونریزی دوم بررسی را بیپایه میگذارد. فراتر از وجود، کلید خصوصی باید متصل باشد و حساب رایانه اجازه خواندن آن را داشته باشد. Get-ChildItem Cert:\LocalMachine\My فهرست میکند چه رسیده است؛ اثر انگشتها را مقایسه کنید نه موضوعها را، چون موضوعهای تقریباً یکسان رایجاند.
پیش از استقرار، کاربرد گسترده کلید را بررسی کنید. احراز هویت کارخواه شرط معمول برای هویت ماشین IKEv2 است و طرف مقابل باید به CA امضاکننده اعتماد کند. هویتی که در انبار کاربر باشد برای اتصال در بافت رایانه وجود ندارد.
پروفایل و مسیرهایش را بسازید
Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection پروفایل را مینویسد. سوئیچ -AllUserConnection آن را در دفترچه تلفن سراسری منتشر میکند، مناسب جعبه مشترک یا مدیریتشده بهصورت سرویس؛ برای یک کاربر آن را کنار بگذارید. هر نشانی که بدهید باید با نام DNS در گواهی سرور مطابقت داشته باشد، وگرنه خطا پس از آنکه تونل برپا شد پدیدار میشود. سپس پیشوندها یکییکی با Add-VpnConnectionRoute افزوده میشوند و فقط آنهایی که طرح واقعاً نیاز دارد.
IPv6 یک ویژگی دارد: ویندوز ::/0 را بهعنوان مسیر VPN نمیپذیرد، پس ::/1 و 8000::/1 با هم همان فضای نشانی را میپوشانند. مسیریابی یک پیشوند هم در دیوار آتش دور چیزی نمیدهد، بنابراین فهرست پیشوندها و سیاست دیوار آتش دو سند جدا میمانند.
اعتبارنامهها به روش احراز هویت تعلق دارند
پروفایل گواهی ماشین به هیچ راز کاربر نیازی ندارد، اما پروفایل EAP-MSCHAPv2 دارد. برای حالت دوم ماژول VPNCredentialsHelper فرمان Set-VpnConnectionUsernamePassword را فراهم میکند و متن ساده میخواهد: $cred.Password از نوع SecureString است، پس نخست آن را با GetNetworkCredential().Password باز کنید. ماژول را هر جا که فرمان اجرا میشود نصب کنید، نه فقط روی ایستگاهی که در آن نوشته شد. EAP-TLS یا یک روش سفارشی اصلاً از این cmdlet استفاده نمیکند؛ بهجای آن یک XML پیکربندی EAP میگیرد.
rasdial "Office IKEv2" اتصال را از یک پوسته بالا میآورد و این سریعترین راه دیدن نتیجه در پیشزمینه است نه در گزارش رویداد.
آنچه یک تونل متصل اثبات نمیکند
وضعیت متصل تبادل IKE و گام احراز هویت را میپوشاند و نه چیزی فراتر. رفتار DNS، مسیر تا میزبان خصوصی و دیوار آتش دور همه همچنان اثباتنشدهاند. به سمت بیرون کار کنید: آداپتور تونل، سپس جستوجوی مسیر برای یک نشانی خصوصی، سپس یک سرویس که مجاز به استفاده از آن هستید. نخستین مشاهدهای که شکست بخورد لایهای را که باید بررسی شود مشخص میکند.
وقتی پروفایلی را تغییر میدهید، پیش از بازساختنش پروفایل قبلی را با Remove-VpnConnection -Name "Office IKEv2" -Force حذف کنید؛ وگرنه تنظیمات و مسیرهای کهنه از ویرایش باقی میمانند. اگر همچنان متصل نشد، اثر انگشت ثبتشده در پروفایل را با آنچه در انبار هست مقایسه کنید، چون ویندوز ممکن است ارجاعی به هویتی نگه دارد که در این میانه زیر موضوعی بدون تغییر جایگزین شده است.
اثر انگشت، روش EAP و فهرست مسیرها را کنار پروفایل نگه دارید. آنها با هم بیشتر آنچه بعداً اشتباه میشود را توضیح میدهند.