چگونه کلید قطع VPN را بدون حسابهای واقعی خود آزمایش کنید
یک آزمون کلید قطع با صفحه طعمه و نمایه یدکی انجام دهید: هر نوع قطع را پوشش دهید، کدهای خروج curl را بخوانید و بلوک واقعی را از خطای DNS جدا کنید.
برای فهمیدن اینکه آیا کلید قطع دوام میآورد به حساب واقعی نیاز ندارید؛ دقیقاً همین چیزی است که یک آزمون به خطر میاندازد. بررسی یک پنجره کوتاه میسازد که در آن ترافیک ممکن است بیرون از تونل برود یا نرود، پس بار مفید باید چیزی باشد که میتوانید از دست بدهید. اکنون این کار را با یک صفحه طعمه و یک نمایه یدکی مرورگر انجام میدهم و پاسخ روشنتری از روال مرورگر و وبمیل که پیشتر استفاده میکردم میدهد. آنچه در ادامه میآید همان ترتیبی را طی میکند که کلاینت ارائه میدهد: تنظیم، مقصد، گذار و سپس شواهد.
آزمون به یک پرسش باریک پاسخ میدهد: در این گذار، آیا این برنامه میتواند به شبکه بیرون از تونل برسد؟ هیچ نمیگوید که آیا بقیه سیاست معقول است یا نه. دامنه را اینقدر کوچک نگه دارید و نتیجه ارزش نوشتن دارد.
کلید و دامنهاش را در کلاینت پیدا کنید
کلاینت را باز کنید و پیش از تغییر هر وضعیت شبکه، تنظیم مسدودسازی را پیدا کنید. فروشندگان آن را متفاوت مینامند: کلید قطع، حالت قفل، قفل شبکه، مسدودسازی ترافیک بیرون تونل. برچسب کمتر از گزینههای درونش میگوید. آنچه مهم است این است که آیا مسدودسازی همیشه اعمال میشود یا فقط وقتی برنامه تشخیص میدهد تونلی همین حالا شکست خورده، و آیا همه برنامهها را پوشش میدهد یا فهرستی برگزیده را.
سپس گذارهایی را فهرست کنید که کلاینت شما واقعاً میتواند انجام دهد. قطع اتصالی که کاربر آغاز میکند، خروج از برنامه و از دست دادن ارتباط با سرور سه مسیر کد متفاوت در بیشتر کلاینتها هستند و یک سیاست مسدودسازی مشترک ندارند. برخی با خروج برنامه مسدودسازی را رها میکنند. برخی دیگر قواعد پالایش را نصبشده باقی میگذارند تا چیزی آنها را بردارد. برای نسخهای که اجرا میکنید بهجای حدس زدن، مرجع تنظیمات فروشنده را بخوانید و سپس بنویسید کدام یک از سه مورد را آزمون میکنید.
نمایه را هم ثبت کنید: پروتکل، خانوادههای نشانی و اینکه تونل تقسیمشده فعال است یا نه. ادعای کل دستگاه اگر نمایه آگاهانه چند برنامه را کنار بگذارد بیمعناست، و استثنایی که خودتان پیکربندی کردهاید نشت نیست. مرجع تنظیمات OpenVPN Connect از آن نوع صفحهای است که میگوید کدام کلید کدام رفتار را تغییر میدهد، هرچند برچسبها در هر کلاینت فرق میکنند.
مقصد طعمهای برگزینید که بدون تونل هم کار کند
طعمه دو ویژگی لازم دارد و حذف هر یک از آنها نتیجهای ناخوانا میدهد. باید وقتی تونل قطع و مسدودسازی خاموش است مستقیماً در دسترس باشد، وگرنه «از پاسخ دادن ایستاد» میتواند فقط یعنی میزبان رفته است. و نباید به ورود، کوکی یا پرداخت نیاز داشته باشد تا یک نشت برایتان یک خط گزارش هزینه کند نه یک نشست.
صفحهای ایستا روی میزبانی که کنترل میکنید انتخاب پاکیزه است. یک ماشین مجازی یدکی با سرور HTTP ساده تقریباً به همان خوبی است، و یک صفحه عمومی بررسی اتصال اگر بپذیرید که دسترسپذیریاش بیرون از کنترل شماست کار میکند. نشانی، درگاه، خانواده نشانی و اینکه درخواست به جستوجوی نام نیاز دارد را یادداشت کنید، چون هر یک از اینها متغیری میشود که شاید بعداً ناچار شوید جدا کنید.
پیش از دست زدن به کلید، خط پایه را برقرار کنید. با تونل برپا، طعمه باید از طریق تونل پاسخ دهد، که ثابت میکند مسیر سیاست کار میکند. با تونل قطع و مسدودسازی خاموش، باید مستقیماً پاسخ دهد، که ثابت میکند مقصد زنده است. تنها آنگاه شکست در وضعیت مسدود به شما چیزی میگوید.
گذارها را به ترتیبی ثابت اجرا کنید
گذارها را یکییکی بردارید و به هرکدام چند ثانیه فرصت جاافتادن بدهید، چون کلاینتها اغلب در آن فاصله قواعد را فرو میریزند و از نو میسازند. اجرای همان بررسی کوتاه در هر بار مشاهدات را قابل مقایسه نگه میدارد:
curl -sS -o /dev/null -w 'http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_exit=$?"
dig +short decoy.example
curl -6 -sS -o /dev/null -w 'v6_http=%{http_code}\n' --max-time 5 http://decoy.example/
echo "curl_v6_exit=$?"
| Transition | Expected with the block on | Failure signature |
|---|---|---|
| Manual disconnect | Decoy stops answering within seconds | Decoy still returns 200 |
| Server or path failure | Blocked, with no exemption for the old endpoint | Direct access during the gap |
| Quit the app | Client-dependent; record what happens | Block disappears with the process |
| Wi-Fi to Ethernet | Block holds until the tunnel returns | Traffic flows mid-change |
ردیف خروج از برنامه حتی اگر هرگز کلاینت را در استفاده معمول نبندید، اجرای جداگانه خود را میارزد. اگر مسدودسازی هنگام خروج رها شود، یک فروپاشی یا بهروزرسانی اجباری همان مواجهه را به شما میدهد، و این واقعیتی درباره استقرار است نه درباره شکیبایی شما. در Windows بررسیهای همارز اینها هستند: Resolve-DnsName decoy.example و curl.exe -s -o NUL -w "%{http_code}" http://decoy.example/.
مسدودسازی را از یک حلکننده خراب جدا کنید
صفحهای که بارگذاری نمیشود چند علت دارد و تنها یکی از آنها کار کردن کلید است. اگر نام حل نشود، آموختهاید که DNS مسدود یا خراب است، نه اینکه مسیر داده مسدود باشد. نشانی تحتاللفظی را هم بیازمایید تا پاسخ هیچ به حلشدن وابسته نباشد.
کدهای خروج curl این موارد را جدا میکنند: 6 شکست حل نام است، 7 یعنی اتصال رد شد، 28 مهلت زمانی است. مسیر مسدود معمولاً بهصورت مهلت زمانی یا رد در برابر نشانی تحتاللفظی ظاهر میشود. مسدودسازی فقط DNS عدد 6 را باقی میگذارد و بقیه را پنهان میکند. صفحه ذخیرهشده در حافظه نهان یا دروازه اسیر چشم را فریب میدهد، از اینرو شاهد کد خروج است نه صفحه.
بررسی را روی IPv6 با نشانی تحتاللفظی تکرار کنید. مسدودسازیای که IPv4 را پوشش میدهد و IPv6 را نادیده میگیرد بهقدری رایج است که سطر خودش را در یادداشتهایتان داشته باشد، و کلاینتی که IPv6 را بیرون تونل غیرفعال میکند باید روی هر دو خانواده پاک شکست بخورد.
دامنهای را که نتیجه پوشش میدهد ثبت کنید
وقتی تونل برگشت، بهبود را تأیید کنید: طعمه از طریق تونل پاسخ میدهد، حلکننده پاسخها را برمیگرداند و سیاست همانجا میماند که رهایش کردید. سپس آزمایشها را برگردانید. یک قاعده موقت دیوار آتش، یک مسیر اشکالزدایی یا یک نمایه آزمون که سر جایش بماند اجرای بعدی را گیج میکند و میتواند از برنامه عمر بیشتری کند.
یک گذر یک نسخه کلاینت، یک نمایه، یک گذار و یک خانواده نشانی را پوشش میدهد. آن چهار مورد را همراه نتیجه بنویسید:
- نسخه کلاینت و سکو، و اینکه تنظیم برای هر نمایه است یا سراسری.
- نمایه، پروتکل و هرگونه استثنای تونل تقسیمشده.
- گذار آزمونشده و اینکه چگونه آن را آغاز کردید.
- خانوادههای نشانی و DNS، همراه کدهای خروج curl برای وضعیت مسدود و مسدودنشده.
اگر هر سطری خالی باشد، آزمون تمام نشده است. گردش یعنی تکرار ردیف تغییر شبکه. راهاندازی دوباره بدون مراقبت یعنی بررسی اینکه قواعد برمیگردند، که پرسشی درباره ترتیب بازگردانی است نه درباره کلید. پس از بهروزرسانی کلاینت توالی را دوباره اجرا کنید، چون کلیدها بهندرت تغییر میکنند در حالی که رفتار پشت آنها تغییر میکند. طعمه را نزدیک نگه دارید: چیزی برای چرخاندن نیست و بررسی بعدی پنج دقیقه طول میکشد.