روشن کردن VPN قاعدتاً باید به این معنا باشد که وبسایتها بهجای آدرس شما، آدرس سرور VPN را ببینند. در بیشتر مواقع دقیقاً همین اتفاق میافتد. اما ارزش بررسی کردن را دارد، چون مرورگرها یک قابلیت مشخص به نام WebRTC دارند که ممکن است آدرسهای شبکه را به شکلی غیرمنتظره آشکار کند.
این راهنما توضیح میدهد که آدرس IP چیست، چه چیزی درباره شما میگوید، نشت WebRTC چگونه رخ میدهد و چطور میتوانید تنظیمات خودتان را گامبهگام آزمایش کنید.
آدرس IP شما چه چیزهایی را آشکار میکند
آدرس IP عددی است که اتصال شما را در اینترنت شناسایی میکند. با دو نوع آن سروکار خواهید داشت:
- آدرس IP عمومی. آدرسی که بقیه اینترنت میبیند. در خانه معمولاً متعلق به مودم یا روتر شماست و ارائهدهنده اینترنت آن را اختصاص میدهد. روی اینترنت همراه، این آدرس متعلق به شبکه اپراتور تلفن همراه شماست.
- آدرس IP محلی (خصوصی). آدرسی که دستگاه شما درون شبکه خانه یا محل کار دارد، مثلاً آدرسی که با 192.168 یا 10 شروع میشود. این آدرس از طریق اینترنت در دسترس نیست، اما همچنان میتواند به ساختن «اثر انگشت» دستگاه کمک کند.
IP عمومی شما نام یا نشانی خانهتان را به وبسایت نمیدهد، اما معمولاً ارائهدهنده اینترنت و موقعیت تقریبی شما را، اغلب در حد شهر یا منطقه، نشان میدهد. وبسایتها میتوانند از آن برای تخمین محل شما استفاده کنند و این آدرس، در کنار کوکیها و نشانههای دیگر، به بخشی از یک پروفایل تبدیل میشود.
گام 1: IP عمومی خود را بررسی کنید
ابزار IP من چیست را باز کنید. این ابزار آدرس IP عمومیای را که مرورگر شما از آن متصل شده، به همراه موقعیت تقریبی و مالک شبکه مرتبط با آن نشان میدهد. یک وضعیت ساده هم نمایش میدهد:
- امن یعنی ترافیک شما از یک سرور VPNRice میرسد.
- در معرض دید یعنی سایت آدرسی را میبیند که متعلق به سرور VPNRice نیست و معمولاً همان اتصال واقعی شماست.
این کار را دو بار انجام دهید: یک بار با VPN خاموش و یک بار با VPN روشن. آدرس اول را یادداشت کنید یا به خاطر بسپارید. وقتی VPN روشن است، آدرس و موقعیت باید به آدرس و موقعیت سرور VPN تغییر کنند.
اگر درباره هر آدرس دیگری، مثلاً آدرسی که در یک فایل لاگ پیدا کردهاید، اطلاعات میخواهید، از ابزار جستوجوی IP استفاده کنید. این ابزار کشور، منطقه و شبکه ثبتشده برای آن آدرس را نشان میدهد. دادههای موقعیت از DB-IP میآیند و ذاتاً تقریبی هستند.
گام 2: WebRTC را بشناسید
WebRTC فناوری مرورگر است که پشت تماسهای تصویری، گفتوگوی صوتی و برخی اشتراکگذاریهای فایل قرار دارد که مستقیماً درون یک صفحه وب انجام میشوند. برای اینکه دو نفر به شکلی کارآمد به هم وصل شوند، WebRTC تلاش میکند کوتاهترین مسیر شبکه بین آنها را پیدا کند. فرایندی که برای این کار به کار میرود ICE نام دارد و در RFC 8445 تعریف شده است.
ICE «کاندیدهایی» را جمعآوری میکند؛ یعنی آدرسهای احتمالیای که دستگاه شما از طریق آنها در دسترس است. مستندات MDN درباره رابط RTCIceCandidate انواع اصلی آن را اینطور فهرست میکند:
- کاندیدهای میزبان (host) آدرسهای خود دستگاه روی رابطهای شبکهاش هستند.
- کاندیدهای بازتابی سرور (server reflexive) آدرس عمومی شما از دید یک سرور STUN هستند. STUN که در RFC 8489 شرح داده شده، پروتکل سادهای است که به دستگاه میگوید از بیرون با چه آدرسی دیده میشود.
- کاندیدهای رله (relay) آدرسهایی روی یک سرور رله هستند که وقتی مسیر مستقیم ممکن نباشد، ترافیک را جابهجا میکند.
یک صفحه وب میتواند از مرورگر بخواهد این کاندیدها را جمع کند و کد JavaScript همان صفحه میتواند آنها را بخواند. ریشه مسئله همین است: اگر مرورگر آدرسی را در فهرست بگذارد که از VPN شما عبور نمیکند، صفحه میتواند از آن باخبر شود.
نشت WebRTC چه شکلی دارد
نشت زمانی رخ میدهد که یک کاندید WebRTC آدرسی را نشان دهد که انتظار داشتید پنهان باشد. موارد رایج:
- IP عمومی واقعی شما در حالی که VPN روشن است بهعنوان کاندید ظاهر میشود. این ممکن است وقتی رخ دهد که مرورگر درخواست STUN را از مسیری بیرون از تونل بفرستد، یا وقتی ترافیک IPv4 پوشش داده شود اما ترافیک IPv6 نه.
- آدرس IP محلی شما فاش میشود. این مورد کماهمیتتر است، اما همچنان اطلاعاتی برای ساختن اثر انگشت دستگاه اضافه میکند.
IETF رفتار درست مرورگرها را مکتوب کرده است. RFC 8828 چهار حالت برای مدیریت آدرسهای IP در WebRTC تعریف میکند، از فهرست کردن همه آدرسها (حالت 1) تا اجبار تمام ترافیک به عبور از یک پراکسی (حالت 4). طبق این سند، حالت 1 نباید بدون رضایت کاربر استفاده شود و مرورگرها در نبود رضایت باید از حالت 2 استفاده کنند که فقط آدرسهای مسیر پیشفرض را آشکار میکند. بسیاری از مرورگرهای امروزی هم آدرسهای محلی را با نامهای تصادفی که به ".local" ختم میشوند جایگزین میکنند، تا صفحه بهجای آدرس خصوصی، یک نام جایگزین ببیند.
در عمل این یعنی یک VPN سراسری که درست کار میکند معمولاً از نشت جلوگیری میکند، چون مسیر پیشفرض از تونل میگذرد. مشکلات معمولاً از پیکربندیهای تفکیکی (split)، پراکسیهایی که فقط روی مرورگر کار میکنند، یا مدیریت نشدن IPv6 ناشی میشوند.
گام 3: آزمون نشت WebRTC را اجرا کنید
آزمون نشت WebRTC ما را باز کنید. این آزمون در مرورگر شما اجرا میشود، چند ثانیه از مرورگر میخواهد کاندیدهای ICE را جمع کند و تمام آدرسهایی را که پیدا کرده به شما نشان میدهد. سپس آنها را با آدرس عمومیای که اتصال شما از آن استفاده میکند مقایسه میکند. این آزمون با هیچ سرور STUN شخص ثالثی تماس نمیگیرد، بنابراین فقط کاندیدهای میزبان را نشان میدهد (که اغلب پشت نامهای .local پنهان شدهاند). یعنی میتواند فاش شدن آدرس محلی را نشان دهد، اما نمیتواند نشت IP عمومی از طریق درخواست STUN را تشخیص دهد.
آزمون را با VPN روشن اجرا کنید و نتایج را اینطور بخوانید:
- فقط آدرس سرور VPN ظاهر میشود، یا اصلاً هیچ آدرس عمومیای ظاهر نمیشود. نشتی وجود ندارد.
- یک نام ".local" ظاهر میشود. این یعنی مرورگر آدرس محلی شما را پنهان کرده است. نشت نیست.
- یک آدرس عمومی که متعلق به سرور VPN نیست ظاهر میشود. این را فاش شدن آدرس در نظر بگیرید.
- یک آدرس خصوصی مثل 192.168.x.x ظاهر میشود. فاش شدن جزئی است. تنظیمات مرورگر را که در ادامه آمده در نظر بگیرید.
چطور نشت را برطرف کنیم
این راهها را به ترتیب امتحان کنید و بعد از هرکدام دوباره آزمایش کنید:
- بهجای پراکسی مخصوص مرورگر، از یک اپ VPN سراسری استفاده کنید. افزونههای مرورگر که نقش پراکسی دارند درخواستهای وب را از طریق سرور دیگری میفرستند، اما ترافیک WebRTC همیشه از تنظیمات پراکسی پیروی نمیکند. یک اپ VPN کامل، مسیر پیشفرض را از تونل عبور میدهد. اپهای VPNRice روی Android، iPhone و iPad و همچنین Windows به همین شکل کار میکنند؛ افزونههای Chrome و Firefox پراکسیهای مرورگر هستند که ترافیک مرورگر شما را از طریق سرورهای VPNRice عبور میدهند (این افزونهها خودشان رمزنگاری اضافه نمیکنند؛ سایتهایی که با HTTPS باز میکنید همچنان بهصورت سرتاسری رمزنگاریشده میمانند).
- VPN را دوباره وصل کنید و صفحه را از نو بارگذاری کنید. کاندیدها وقتی جمع میشوند که صفحه آنها را درخواست کند، بنابراین صفحهای که پیش از اتصال VPN باز شده ممکن است نتایج قدیمی نشان دهد.
- IPv6 را بررسی کنید. اگر شبکه شما IPv6 دارد و نشت یک آدرس IPv6 را نشان میدهد، مطمئن شوید VPN شما آن را پوشش میدهد، یا برای اطمینان از علت، روی شبکهای بدون IPv6 آزمایش کنید.
- کلید قطع اضطراری (kill switch) را روشن کنید. این قابلیت جلوی خروج ترافیک از دستگاه شما را بدون تونل میگیرد. در Android، قابلیت kill switch در VPNRice به تنظیم «VPN همیشه روشن» (Always-on VPN) خود Android به همراه گزینه مسدود کردن اتصالهای بدون VPN متکی است.
- WebRTC را در مرورگر محدود کنید. برخی مرورگرها تنظیمات یا سیاستهایی دارند که مشخص میکنند WebRTC از کدام رابطهای شبکه استفاده کند. کاربران Firefox میتوانند گزینههای WebRTC را در about:config تغییر دهند. غیرفعال کردن کامل WebRTC تماسهای تصویری درون مرورگر را از کار میاندازد، پس آن را آخرین راهحل بدانید.
یک چکلیست سریع
- IP خود را یک بار با VPN خاموش و بعد با VPN روشن بررسی کنید. آدرس باید تغییر کند.
- در صفحه IP من چیست دنبال وضعیت «امن» بگردید.
- آزمون نشت WebRTC را با VPN روشن اجرا کنید.
- پس از بهروزرسانی مرورگر یا وقتی شبکه را عوض میکنید، آزمونها را تکرار کنید.
- هر وقت خواستید یک آدرس ناآشنا را بشناسید، از ابزار جستوجوی IP استفاده کنید.
این آزمونها کمتر از یک دقیقه طول میکشند و مهمترین چیزهایی را که اتصال شما آشکار میکند نشانتان میدهند. ابزارهای VPNRice در مرورگر شما یا روی سرویس خود VPNRice اجرا میشوند و هیچ ردیاب یا کوکی شخص ثالثی ندارند.
اگر VPNای میخواهید که از کل دستگاه شما محافظت کند و نه فقط از مرورگر، VPNRice را دانلود کنید و آزمونها را با روشن بودن آن دوباره اجرا کنید.