پورت 443 پاسخ میدهد، SSTP هنوز شکست میخورد: کدام مرحله شکسته است؟
چیزی اتصال را پذیرفته و تونل هنوز ساخته نمیشود. انتقال، گواهی، مذاکره SSTP و احراز هویت PPP را جدا کنید.
تکمیل دستدهی TCP به پورت 443 در حالی که تونل هرگز ساخته نمیشود یک چیز را اثبات میکند، و چیز کوچکی است. چیزی در آن نشانی گوش میدهد و آماده پذیرش اتصال است. این موضوع سرویس، گواهیای که ارائه خواهد شد، یا آنچه پس از نخستین بایتها رخ میدهد را مشخص نمیکند.
چهار مرحله میان آن دستدهی و یک تونل کارآمد قرار دارد، و هر یک خطای متفاوتی تولید میکند.
پورت باز فقط یک لایه را توصیف میکند
پذیرش یک اتصال TCP یعنی فرایندی مالک سوکت است و مسیر دستدهی را مجاز میکند. این هیچ چیزی درباره اینکه آن فرایند سرور SSTP است، گواهی معتبر برای نام در نمایه شما دارد، یا حساب شما را مجاز خواهد کرد نمیگوید. یک وبسرور روی همان نشانی به دستدهی کامل پاسخ میدهد و سپس به درخواست SSTP شما با خطای HTTP پاسخ میدهد. هر چیزی بالاتر از آن دستدهی آزمایشنشده میماند.
آزمون پورت را ارزانترین صافی ممکن بدانید، نه حکم نهایی. ارزش آن در حذف یک دسته کامل از خطاهاست، نه در تأیید هر چیزی که بالاتر از آن است.
اشتباه گرفتن این دو دلیل آن است که مردم پس از آزمونی که هرگز مشکل واقعی کلاینت را بررسی نکرده، کلاینتها را دوباره نصب میکنند.
چهار مرحله را با شواهد جدا کنید
مراحل عبارتاند از دسترسیپذیری انتقال، اعتبارسنجی TLS، تبادل SSTP روی HTTPS و احراز هویت PPP درون تونل. مسیری که مرحله اول را بگذراند و در چهارم شکست بخورد به اصلاح اعتبارنامه نیاز دارد؛ مسیری که در دوم شکست بخورد به اصلاح گواهی یا نام نیاز دارد. این تعمیرها هیچ اشتراکی ندارند، و انتخاب اشتباه قطعی را هدر میدهد.
nc -vz vpn.example.net 443
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief
curl -sS -o /dev/null -w '%{http_code}\n' https://vpn.example.net/
دستور سوم ارزش خواندن دقیق را دارد. پاسخ 200 از یک صفحه وب معمولی به شما میگوید یک سرویس وب وجود دارد؛ نمیگوید درخواست SSTP فهمیده خواهد شد. پاسخ 404 از همان نشانی به همان اندازه درباره VPN بیاطلاع است. تنها گزارش کلاینت به شما میگوید به کدام یک از چهار مرحله رسیده است.
توجه کنید هر دستور از کدام نام استفاده کرد. گواهی با نامی که میفرستید انتخاب میشود، پس ناسازگاری میان نمایه و آزمون ناسازگاریای است که خودتان وارد کردهاید. نوشتن آن نام کنار نتیجه از سردرگمی بعدی جلوگیری میکند.
موفقیت جزئی را در جهت درست بخوانید
یک واسطه میتواند مرور عادی را مجاز کند و تبادل بعدی را رد کند، به همین دلیل پراکسیای که برای وبسایتها کار میکند ممکن است برای تونل شکست بخورد. همان الگو زمانی ظاهر میشود که گواهی برای نام مرورگر معتبر است اما برای نام پیکربندیشده در نمایه نه: مرورگر راضی است و کلاینت نه، و هر دو درباره آنچه بررسی کردهاند درست میگویند.
در حین عیبیابی، اعتبارسنجی سرور را فعال نگه دارید. خاموش کردن آن ناسازگاری گواهی را به یک دستدهی موفق تبدیل میکند و تنها شواهدی را که میتوانست شکست را توضیح دهد پنهان میکند.
اگر همان نمایه از شبکه دیگری کار کند، تفاوت به مسیر وابسته است. این جستجو را به واسطهها محدود میکند بدون اینکه بگوید کدام، و هنوز گام مفیدی به جلوست. شبکهای را که استفاده کردید ثبت کنید، زیرا مقایسه بدون آن بیارزش است.
سپس برنامه را بیازمایید، نه فقط نشست را
وقتی نشستی وجود دارد، مسیر موردنظر، حل نام و مجوز سرویس را از کلاینتی که به آنها نیاز دارد بررسی کنید. یک تونل متصل میتواند در سمت دور ارسالنشدن داشته باشد یا مسیر بازگشتی که هرگز وجود نداشت، و این شکستها برای فردی که منتظر است دقیقاً مثل مشکل برنامه به نظر میرسد.
هر نتیجه را به مرحلهای که آن را تولید کرده گره بزنید. نامیدن یک پورت باز بهعنوان VPN کارآمد همان راهی است که بررسی گواهی پنجدقیقهای به یک روز نصب دوباره نرمافزار تبدیل میشود.