فایلهای OVPN ناآشنا: ریسک محلی و اعتماد از راه دور
یک پروفایل میتواند کلاینت روی دستگاه شما را تحت تأثیر بگذارد و اپراتوری را انتخاب کند که ترافیک شما را میبیند. پیش از وارد کردن فایل، هر دو تصمیم را بررسی کنید.
فایل OVPN را ورودی یک برنامه بدانید، نه گواهی اینکه محتوای آن بیخطر است. بررسی نشانی سرور فقط به این پرسش پاسخ میدهد که پروفایل میخواهد به کجا وصل شود و هیچ چیز دیگر. دو تصمیم جداگانه اعتماد درون آن فایل است: کلاینت روی دستگاه شما چه میتواند بکند، و کدام اپراتور ترافیک را دریافت میکند. یک نام پروتکل آشنا هیچکدام را روشن نمیکند.
دو تصمیم در یک فایل پنهان است
تصمیم نخست محلی است. پروفایل یک زبان پیکربندی است و کلاینتی که آن را میخواند ممکن است دستورهایی را پشتیبانی کند که یک افزونه بارگذاری میکنند، اسکریپت اجرا میکنند یا نحوه اعمال مسیریابی و DNS را تغییر میدهند. تصمیم دوم از راه دور است. هر چه فایل داشته باشد، اپراتور خروج ترافیکی را که به آن میرسد میبیند.
اشتباه گرفتن این دو، در هر دو جهت توصیه بدی میدهد: پروفایلی ظاهراً پاک از اپراتور ناشناس، یا پروفایل اپراتور شناختهشده با قلابی که کسی نخوانده است. پروفایلی که محلی ایمن است همچنان میتواند ترافیک شما را به کسی بدهد که انتخابش نمیکردید.
پروفایل را پیش از هر کلاینتی بخوانید
فایل را پیش از آنکه هر کلاینتی پردازش کند، بهصورت متن بخوانید. دستورهایی را بجویید که به بیرون فایل اشاره میکنند، به فایلهای اجرایی ارجاع میدهند یا امتیازها را تغییر میدهند، و آن فهرست را با پشتیبانی مستند کلاینت مقایسه کنید. یک جستجوی کوتاه بازبینی امنیتی نیست، اما میگوید پروفایل یک فهرست سرور است یا چیزی بیشتر.
grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn
نتیجه خالی آرامشبخش است و قطعی نیست، چون گزینهها میتوانند بر هم اثر بگذارند یا از فایلی درجشده بیایند. فهرست پالایششده را دلیلی برای ادامه خواندن بدانید، نه حکم نهایی.
دستورهایی که همراه پروفایل میرسند همان اندازه بررسی میخواهند که خود پروفایل. چهار درخواست باید شما را متوقف کند: فعال کردن اسکریپتها، نصب یک کمککننده یا کتابخانه، اجرای کلاینت بهعنوان مدیر، یا تضعیف یک محدودیت ورود. هر یک از آنها مرز اعتماد را به بیرون میراند و هیچیک بخش عادی وارد کردن یک فهرست سرور نیست.
کل فایل را هم یک بار بخوانید، چون یک خط ناآشنا در بافت آسانتر داوری میشود تا در یک فهرست پالایششده. اگر خطی ناآشنا بود، بهجای حدس زدن آن را در راهنمای کلاینت خود بجویید.
کلاینت در واقع چه چیزی را اجرا خواهد کرد
راهنمای 2.6 از Community OpenVPN نردبان script-security را مستند میکند: سطح 1 پیشفرض است و اسکریپتهای تعریفشده کاربر را مسدود میکند، در حالی که سطح 2 آنها را مجاز میداند. بارگذاری افزونه امکانی جداگانه با دستور خودش است. به همین دلیل همان فایل در کلاینتهای مختلف میتواند معنای متفاوتی داشته باشد. کلاینتهای موبایل و سازنده ممکن است مجموعه محدودتری از دستورها را بپذیرند، یا هیچیک از قلابها را.
روش راهاندازی هم به اندازه کلاینت اهمیت دارد. پروفایلی که یک کمککننده دارای امتیاز اجرا میکند میتواند بیش از پروفایلی که در فضای کاربر اجرا میشود انجام دهد، و این تفاوت دلیلی است برای خواندن پیام ورود بهجای نادیده گرفتن آن.
نسخه هم مهم است، چون این سطوح برای هر انتشار تعریف میشوند و کلاینتی که چند نسخه عقب است ممکن است همان سیاست را پیاده نکند. راهنمای متناسب با نسخهای را بخوانید که اجرا میکنید، نه تازهترین نسخهای که پیدا میکنید. اگر کلاینت هیچجا رشته نسخه را نشان ندهد، همین دلیلی برای کندتر رفتن است.
اپراتور را مقایسه کنید، نه فقط نشانی را
اپراتورها را همانگونه مقایسه کنید که هر واسطه دیگر را. بپرسید چه کسی خروج را اداره میکند، چه چیزی ثبت میکنند، و پروفایل چگونه به شما رسیده است. صفحه دانلود تأییدشده و اثر انگشت مطابق بیش از یک نام میزبان آشنا میگویند. سرور در دسترس فقط ثابت میکند که چیزی پاسخ داده است.
اعتبارنامهها همان بخشی است که مردم زیر فشار اشتباه میکنند. رمز عبور یک حساب بیربط را در پروفایل دانلودشده تایپ نکنید چون نام سرور آن آشنا به نظر میرسد. پروفایل میتواند کلید خصوصی را هم آشکار حمل کند، پس انتشار کل فایل در یک رشته بازبینی آن کلید را به رشته میدهد.
یک نشست HTTPS که درست اعتبارسنجی شده همچنان محتوای صفحه را از هر کسی که فقط بستهها را جلو میفرستد پنهان میکند، بنابراین خروج بهطور خودکار هر رمز عبوری را نمیبیند. اما میبیند به کدام سایتها میرسید، و این مرز را باید دقیق گفت نه اغراقآمیز.
جایی که منشأ فایل نامشخص میماند، یا امتیازی که میخواهد توضیحی ندارد که بتوانید بپذیرید، پروفایل را با یکی از منبعی جایگزین کنید که بتوان از آن حساب خواست. در یک اتصال کاری مدیریتشده، مدیر باید کلاینت و پیکربندی را بهعنوان یک تصمیم تأیید کند، نه دو تصمیم. هیچچیز در اینجا از شما نمیخواهد نخست بدخواهی را ثابت کنید؛ رد کردن دسترسی پاسخ مشروعی است.