یک خطا، سه راز: کدام اعتبارنامهٔ VPN شکست خورد؟
کارخواه برای هر مرحله یک خطا نشان میدهد. پیش از بازنشانی گذرواژهای که کسی بررسی نکرده، انجمن، تبادل کاربر و روش را بخوانید.
«احراز هویت ناموفق بود» میتواند به گواهی سرور، کلید از پیش بهاشتراکگذاشتهٔ ماشین یا گذرواژهٔ کاربر اشاره کند. اینکه کدامیک مقصود است به پروتکل بستگی دارد، چون هر پروتکل مجموعهٔ متفاوتی از رازها را تعریف میکند. اگر مورد اشتباه را بازنشانی کنید، خطا بدون تغییر باقی میماند. راه بیرون آمدن این است که پیش از ویرایش هر چیزی روشن کنید پروتکل چند مدرک میخواهد.
دو مدرک در جهتهای مخالف
یک تونل باید پاسخ دهد که آیا به دروازهٔ درست رسیده و جدا از آن، کاربر چه کسی است. مدرک دروازه در سطح ماشین است: گواهی سرور، کلید از پیش بهاشتراکگذاشته یا کلید عمومی ثابت. مدرک کاربر در سطح شخص است: گذرواژه، توکن، گواهی کارخواه یا هیچ چیز. اینها جهتهای مخالف اعتمادند و مواد متفاوتی مصرف میکنند.
IKEv2 مدرک دروازه را داخل IKE_AUTH انجام میدهد و وقتی EAP به کار میرود، سپس مدرک کاربر را در تبادلی جدا اجرا میکند. در مشخصهٔ IKEv2 این دو بهصورت بخشهای مجزا میمانند و همین نشانهٔ محکمی است از اینکه وقتی یک پیام هر دو دور را پوشش میدهد کجا را ببینید.
مرحله را بخوانید، نه پیام را
کارخواه یک رشتهٔ خطای واحد نشان میدهد، هر مرحلهای که شکست خورده باشد، پس خود رشته تقریباً هیچ اطلاعاتی حمل نمیکند. آنچه اطلاعات را حمل میکند حالتی است که در هر مرحله میتوانید بازرسی کنید: آیا انجمنی وجود دارد، آیا تبادل کاربر آغاز شده و آیا کارخواه روشی را که دروازه میخواست پیشنهاد کرده است. جدول مراحل را همینطور مرتب میکند، نه بر اساس نام پروتکل.
| Stage that failed | Evidence you can inspect | What a password change cannot fix |
|---|---|---|
| The machine proof | no security association in the state list | a mismatched pre-shared key or an untrusted chain |
| The user proof | an association is up while PPP or EAP reports failure | an expired token, a locked account, a missing client key |
| The client's method support | the client offers no method the gateway accepts | a client without the required EAP or key material |
| The server's policy | the gateway rejects before any user exchange starts | a policy that requires a certificate the profile lacks |
تنها سطر دوم دربارهٔ اعتبارنامهای است که کاربر میتواند دوباره تایپ کند. سه مورد دیگر واقعیتهای پیکربندیاند، و همین ناهمخوانی دلیل آن است که بسیاری از این گزارشها با بازنشانی گذرواژهای پایان مییابند که هیچ چیز را تغییر نمیدهد. پیش از دست زدن به یک فیلد، سطری را بخوانید که با مدرک شما میخواند.
پروتکل دو رازی برگهایش را رو میکند
L2TP روی IPsec شمارش را آشکار میکند، چون دو بررسی در فرایندهای متفاوت رخ میدهند. لایهٔ IPsec باید نخست با کلید از پیش بهاشتراکگذاشته یا گواهی بالا بیاید، و تنها پس از آن PPP درونش تلاش برای ورود کاربر میکند.
وقتی راز ماشین نادرست است، هیچ انجمنی شکل نمیگیرد و اعتبارنامهٔ کاربر هرگز آزمایش نمیشود. وقتی راز ماشین درست و راز کاربر نادرست است، انجمن وجود دارد و PPP پس از بالا آمدن تونل ورود را رد میکند. هر دو همان پیام را روی صفحه تولید میکنند، از دو رویداد متفاوت.
sudo swanctl --list-sas
sudo ip xfrm state list
sudo journalctl -u xl2tpd -n 50 --no-pagerفهرست انجمن خالی لایهٔ کاربر را بیدرنگ حذف میکند، پس آن را پیش از گذرواژه بررسی کنید. انجمن برقرارشده با شکستهای مکرر PPP به جهت دیگر اشاره میکند، به لایهٔ کاربر یا به پروتکل احراز هویت درون آن. هیچیک از این دو نتیجه از متن خطای کارخواه در دسترس نیست.
دسترسی فقط با گذرواژه واقعاً به چه چیزی بستگی دارد
دسترسی فقط با گذرواژه برای L2TP، PPTP، SSTP و IKEv2 با EAP عادی است. WireGuard اصلاً چنین گزینهای ندارد، چون همتایانش کلیدند نه کاربر. برای OpenVPN پاسخ از الزام گواهی کارخواه در سرور میآید: دروازهای که هم گواهی و هم گذرواژه میخواهد، کارخواه فقط-گذرواژه را رد میکند، هر چه در فیلد تایپ شود.
اینکه به کدام مؤلفه نیاز دارید از همان پاسخ برمیآید. ورود با گذرواژه زیر IKEv2 کارخواهی میخواهد که EAP میفهمد، در حالی که ورود با گواهی به کلید خصوصی کارخواه و زنجیرهٔ سرور نیاز دارد. اگر مورد اشتباه را نصب کنید، شکست مانند خطای اعتبارنامه خوانده میشود، هرچند خود روش احراز هویت است که غایب است.
یک چیز را تغییر دهید، بعد دوباره آزمایش کنید
نخست سه واقعیت را روشن کنید: کدام پروتکل در حال اجراست، چند راز تعریف میکند و کدامیک از آنها به ماشین تعلق دارد نه کاربر. ماشینها در مرحلهٔ نخست شکست میخورند و آدمها در مرحلهٔ دوم، و اشتباه گرفتن این دو تمام این مسئله است.
سپس دقیقاً یک چیز را تغییر دهید و از همان کارخواه دوباره آزمایش کنید. این نظم یک شکست گیجکننده را به اصلاحی تبدیل میکند که میتوانید برای نفر بعدی توصیف کنید، و این از اتصالی که کار میکند ولی هیچکس نمیتواند توضیحش دهد سودمندتر است.