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

پروفایل گواهی نیست

سه شیء متفاوت در یک راه‌اندازی VPN 'گواهی' نامیده می‌شوند. هویت کلاینت یک گواهی برگ با کلید خصوصی است و دروازه از آن برای تشخیص اینکه شما کی هستید استفاده می‌کند. گواهی برگ خود سرور و گواهی میانی آن چیزی است که کلاینت شما هنگام اتصال بررسی می‌کند. لنگر اعتماد، که معمولاً یک گواهی ریشه یا CA خصوصی است، همان چیزی است که زنجیره را اصلاً قابل بررسی می‌کند. RFC 5280 این‌ها را لنگر اعتماد، گواهی میانی و موجودیت نهایی می‌نامد، و زنجیره تنها تا زمانی معتبر است که هر حلقه حلقه زیرین خود را امضا کند.

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

مالکیت تعیین می‌کند که آیا حذف، حذف‌شده می‌ماند. روی لپ‌تاپی که مالک آن هستید، تنها شما می‌توانید گواهی را بازگردانید. روی دستگاهی مدیریت‌شده، یک پروفایل پیکربندی یا بار MDM می‌تواند آن را در بررسی بعدی دوباره نصب کند، به همین دلیل 'برمی‌گردد' و به همین دلیل حذف شدیدتر کمکی نمی‌کند.

پیدا کنید کدام مخزن هنوز آن را نگه داشته است

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

StoreWhat deleting from it affects
Windows CurrentUser\Myyour login session only
Windows LocalMachine Rootevery user and service on the machine
macOS login or System keychainone account, or all of them with sudo
Linux ca-certificates bundlecurl, git, Python, anything using the system bundle
Firefox cert9.dbFirefox only; it does not read the OS store

با شماره سریال یا اثر انگشت تطبیق دهید، هرگز با نام نمایشی. نام‌های نمایشی را صادرکننده گواهی تعیین می‌کند و دوباره استفاده می‌شوند: 'Example VPN' می‌تواند سه گواهی با سه کلید متفاوت باشد که یکی هنوز در استفاده روزانه است.

certutil -user -store My
certutil -store Root
openssl x509 -in vpn-client.pem -noout -subject -issuer -serial -fingerprint -sha256

در macOS ابزار security همان واقعیت‌ها را می‌دهد، و find-identity نشان می‌دهد کدام گواهی‌ها هنوز کلید خصوصی متصل دارند:

security find-certificate -a -c "Example VPN" -Z /Library/Keychains/System.keychain
security find-identity -v -p ssl-client

شیء باریک را حذف کنید، صادرکننده مشترک را نگه دارید

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

certutil -user -exportPFX -p backup My <serial> C:\temp\vpn-id.pfx
certutil -user -delstore My <serial>
Remove-Item Cert:\CurrentUser\My<thumbprint>

پرچم -user همان چیزی است که مردم به‌طور تصادفی جا می‌اندازند. بدون آن certutil روی مخزن ماشین کار می‌کند، که یعنی پوسته ارتقایافته، مجموعه گواهی متفاوت و شعاع تأثیری که اکنون هر حساب دیگری روی ماشین را دربر می‌گیرد.

در macOS و Linux شکل یکسان است: شناسایی کنید، صادر کنید، سپس از باریک‌ترین مخزنی که علامت را توضیح می‌دهد حذف کنید. حذف فایل زیر /usr/local/share/ca-certificates و اجرای دوباره update-ca-certificates کافی است؛ --fresh تنها زمانی کمک می‌کند که پیوندهای نمادین در /etc/ssl/certs از قبل ناسازگار باشند. سیستم‌های خانواده RHEL لنگرها را در /etc/pki/ca-trust/source/anchors نگه می‌دارند، جایی که trust anchor --remove همان کار را انجام می‌دهد.

sudo security delete-certificate -Z <sha1> /Library/Keychains/System.keychain
sudo rm /usr/local/share/ca-certificates/example-vpn.crt
sudo update-ca-certificates
sudo trust anchor --remove /etc/pki/ca-trust/source/anchors/example-vpn.crt

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

openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt \
  | openssl pkcs7 -print_certs -noout | grep -i example

حذف فایل به معنای ابطال هویت نیست

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

برای یک OpenVPN PKI این یعنی ابطال گواهی و اطمینان از اینکه CRL که crl-verify به آن ارجاع می‌دهد به‌روز است؛ easyrsa revoke سپس easyrsa gen-crl نسخه کوتاه است. برای دروازه‌ای که به یک ارائه‌دهنده هویت متصل است، کاربر را غیرفعال کنید یا دستگاه را از آنجا حذف کنید، چون گواهی تنها یکی از اعتبارنامه‌های در بازی است. حذف نسخه محلی در حالی که حساب فعال است شبیه پاک‌سازی به نظر می‌رسد و نیست.

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

با دست‌دادن و یک برنامه دوم بررسی کنید

زنجیره را از بیرون بررسی کنید، نه از فهرست مخزنی که همین حالا ویرایش کردید. مخزن ویرایش شما را نشان می‌دهد؛ دست‌دادن نتیجه را نشان می‌دهد.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com \
  -CAfile /etc/ssl/certs/ca-certificates.crt -verify_return_error < /dev/null
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt vpn-gateway.pem

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

سپس چیزی بی‌ربط را آزمایش کنید: یک سایت داخلی، یک کلاینت ایمیل، یک آیینه بسته. این شعاع تأثیر را ارزان اندازه می‌گیرد، پیش از آنکه پنجره تغییر بسته شود.

  • نقش به‌عنوان هویت، گواهی میانی یا لنگر اعتماد شناسایی شد
  • شماره سریال و اثر انگشت ثبت شد و نسخه به مکان تأییدشده صادر شد
  • حذف در باریک‌ترین دامنه‌ای انجام شد که علامت را توضیح می‌دهد
  • مجوز سمت سرور هنگام خروج یک شخص یا دستگاه ابطال شد
  • دست‌دادن توضیح داده شد و یک برنامه بی‌ربط دوباره آزمایش شد
  • بار MDM یا پروفایل مدیریت به‌روز شد، وگرنه گواهی برمی‌گردد

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

مقالات مرتبط