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

دو سیاست، یک دستگاه

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

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

پیش از قاعده، فهرست برنامه‌ها را بنویسید

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

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

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

کلاینت در هنگام قطعی چه می‌کند

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

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

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

سه لحظه: تونل بالا، تونل پایین، اتصال دوباره

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

curl -sS --max-time 8 https://api.ipify.org
curl -sS --max-time 8 --interface tun0 https://api.ipify.org
dig +short example.com

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

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

مقالات مرتبط