کسی اتصالی در مک را «VPN دفتر» می‌نامد، این برچسب از دو مهاجرت سرور جان سالم به در می‌برد و همه مدت‌ها پس از تغییر پروتکل همچنان آن را VPN دفتر می‌نامند. نام یک لقب ذخیره‌شده در کنار پیکربندی است؛ شاهدی بر آنچه مک بر سرش مذاکره می‌کند نیست. خواندن نوع اعلام‌شده یک فیلد می‌خواهد، و جدا کردن آن نوع ذخیره‌شده از یک نشست زنده یک گام دیگر. این ترتیبی است که از حدس زدن پرهیز می‌کند.

برچسب یک لقب است، بار نوع را اعلام می‌کند

یک سرویس VPN در macOS یک ورودی پیکربندی سیستم با یک نام نمایشی، یک کلاینت مالک و مجموعه‌ای از تنظیمات نوع‌دار است. نام نمایشی متن آزاد است، هر کسی که ورودی را ساخته می‌تواند آن را ویرایش کند، و همان بخشی است که کاربران در نوار منو می‌بینند. تنظیمات واقعیت‌ها را حمل می‌کنند: کدام نوع اتصال، کدام دروازه، کدام ترتیب احراز هویت. هیچ چیز این دو را هم‌زمان نگه نمی‌دارد، از این رو پروفایلی با نام «دفتر L2TP» می‌تواند سرویس IKEv2 باشد.

برای اتصالی که شخصاً ساخته شده، برنامهٔ مالک یا پنل VPN خود سیستم آن تنظیمات را نشان می‌دهد. روی مک مدیریت‌شده، پروفایل از آنِ مدیر است و کار درست درخواست یک خلاصهٔ غیرمحرمانه است، نه ویرایش یک بار مدیریت‌شده. دو حالت در نوار منو شبیه هم به نظر می‌رسند و در زیر کاملاً متفاوت رفتار می‌کنند. یکی از آنِ شماست برای بررسی و تغییر؛ دیگری استقرار یافته و در بررسی بعدی بازگردانده می‌شود.

این تفاوت مهم است چون پیکربندی‌های مدیریت‌شده و شخصی به شکل‌های متفاوتی اداره می‌شوند. پروفایلی که مدیریت نصب می‌کند جایگزین یا دوباره اعمال می‌شود، پس ویرایش محلی یا شکست می‌خورد یا بی‌صدا بازمی‌گردد. به جای مهندسی معکوس فایلی که کنترلش نمی‌کنید، از مالک نوع، هویت دروازه و روش احراز هویت را بخواهید.

پیش از هر چیز دیگری در بار، VPNType را بخوانید

بر پایهٔ شمای بار VPN مدیریت‌شده اپل، نوع اتصال در کلید VPNType اعلام می‌شود، درون واژه‌نامه‌ای که PayloadType آن com.apple.vpn.managed است. مقدار یک نشانهٔ کوتاه مانند IKEv2، IPsec، L2TP یا VPN است و هر چیز دیگری در بار بر اساس همان نشانه تفسیر می‌شود.

<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>VPNType</key>
<string>IKEv2</string>
<key>IKEv2</key>
<dict>
  <key>RemoteAddress</key>
  <string>vpn.head-office.example</string>
  <key>RemoteIdentifier</key>
  <string>ikev2.head-office.example</string>
</dict>

این قطعه نمونه‌وار است و نصب‌شدنی نیست: یک ورودی از آرایهٔ بار است که از فرادادهٔ پروفایل و اعتبارنامه‌هایی که استقرار واقعی نیاز دارد برهنه شده. آن را برای شکل بخوانید، نه برای محتوا. همچنین توجه کنید که RemoteAddress و RemoteIdentifier فیلدهای متفاوتی با وظایف متفاوت‌اند، حتی وقتی استقرار همان رشته را به آن‌ها می‌دهد.

مقداری قدیمی مانند PPTP ممکن است هنوز در فایلی قدیمی دیده شود بی‌آنکه گزینه‌ای باشد که macOS کنونی برای پیکربندی تازه پیشنهاد می‌کند. یافتن یک نشانه در پروفایل ذخیره‌شده اثبات می‌کند چه نوشته شده، نه اینکه سیستم‌عامل هنوز چه چیزی را می‌پذیرد.

انواع سفارشی به VPNSubType و برنامهٔ مالک نیاز دارند

وقتی VPNType برابر VPN است، بار باید VPNSubType را نیز حمل کند که افزونه یا ارائه‌دهندهٔ Network Extension پیاده‌ساز اتصال را مشخص می‌کند. همین شناسه اتصال را به کلاینت مشخصی هدایت می‌کند، پس زیرنوعی نادرست پروفایلی می‌سازد که نصب می‌شود و سپس از شروع سرباز می‌زند.

در ارائه‌دهندگان مبتنی بر افزونهٔ برنامه، شناسه از آنِ برنامهٔ دربرگیرنده است نه نام افزونهٔ حدس‌زده‌شده، و همین جزئیاتی است که مردم معمولاً هنگام ویرایش دستی پروفایل اشتباه می‌کنند. حتی زیرنوع درست هم کلاینت را توصیف می‌کند، نه پروتکل سیم، روش احراز هویت یا سیاست دسترسی از راه دوری را که آن کلاینت به کار می‌برد.

پس یک بار سفارشی به شما می‌گوید کدام نرم‌افزار مالک اتصال است و کمی بیشتر نه. برای دانستن اینکه بر سر چه چیزی مذاکره می‌کند، مستندات خود آن ارائه‌دهنده و تنظیمات پیکربندی‌شده‌اش را بخوانید. کپی کردن زیرنوعی از پروفایل سازمانی دیگر یک تکنیک پیکربندی نیست؛ حدسی است که تصادفاً تجزیه می‌شود.

فهرست کنید که مک واقعاً چه چیزی را پیکربندی کرده

پیش از خواندن هر فایلی، از سیستم بپرسید چه سرویس‌هایی وجود دارند و در چه وضعیتی‌اند. نمای خط فرمان از کلیک کردن در پنل‌ها سریع‌تر است و نوع را کنار هر ورودی چاپ می‌کند.

scutil --nc list
scutil --nc show "Office VPN"

فرمان نخست سرویس‌های VPN پیکربندی‌شده را با وضعیت کنونی‌شان فهرست می‌کند و فرمان دوم تنظیمات سرویس انتخاب‌شده را چاپ می‌کند، از جمله نوع و نشانی سروری که با آن تماس می‌گیرد. آن نشانی را با دروازه‌ای که به شما گفتند انتظار داشته باشید مقایسه کنید، چون ورودی کهنه‌ای که به میزبان بازنشسته اشاره می‌کند یک مشکل ارثی رایج است.

این فرمان‌ها پیکربندی و وضعیت را نشان می‌دهند؛ اثبات نمی‌کنند که تونلی ترافیک حمل می‌کند. اگر سرویس قطع باشد، خروجی قصد را توصیف می‌کند نه نشستی کارآمد. سرویس متصل بدون ترافیک هم مشکل دیگری است، معمولاً مسیریابی یا DNS نه نوع پروتکل. این سه مشاهده را جدا نگه دارید وگرنه تشخیص به حدس بازمی‌گردد.

تنظیمات ذخیره‌شده را از نشست زنده جدا نگه دارید

پروفایل ذخیره‌شده بیانیهٔ قصد است. نشان نمی‌دهد که دروازه هنوز آن سرویس را ارائه می‌دهد، که این پروفایل فعال است، یا اینکه نشستی با موفقیت مذاکره کرده. این‌ها سه پرسش جداگانه‌اند و هر یک شاهد خودش را دارد.

از نمای وضعیت مالک یا ابزارهای تشخیصی برای شناسایی اتصال فعال و هویتی که دروازه ارائه کرده استفاده کنید. اسکن پورت یا گواهی‌نامه‌ای که در سایتی بی‌ربط دیده شده به هیچ‌یک از دو پرسش پاسخ نمی‌دهد، و نام متداول گواهی‌نامه همان شناسهٔ راه دور مورد انتظار نیست.

وقتی نوع ذخیره‌شده دیگر با آنچه دروازه پشتیبانی می‌کند نمی‌خواند، پروفایل جایگزینی از مالکش بگیرید. تغییر رشتهٔ نوع، اعتبارنامه‌ها را میان پروتکل‌ها ترجمه نمی‌کند و یک ترتیب احراز هویت را به دیگری تبدیل نمی‌کند. خلاصه را از کانال پشتیبانی تأییدشده هم به اشتراک بگذارید، چون پیکربندی‌های صادرشده می‌توانند اعتبارنامه‌ها و کلیدهای خصوصی‌ای را حمل کنند که درخواست پشتیبانی هرگز به آن‌ها نیاز نداشت.

مقالات مرتبط