کلاینت VPN قابلحمل بدون حقوق مدیر: چه چیزی هنوز میشکند
کلاینت VPN قابلحمل میتواند نصبکننده را دور بزند و باز هم به دستگاه تونل، مسیر و نوشتن در حلکننده نیاز داشته باشد. این بررسیها را پیش از اعتماد به آن اجرا کنید.
قابلحمل نصبکننده را توصیف میکند، نه هسته را. کلاینت میتواند بهصورت یک فایل اجرایی روی حافظه USB برسد و باز هم پیش از حرکت نخستین بسته به دستگاه تونل، یک ورودی در جدول مسیرها و نوشتن در حلکننده نیاز داشته باشد. اینکه ماشین هدف کدام یک از این سه را به شما اجازه لمس بدهد تعیین میکند که آن ساخت اصلاً آنجا کار میکند یا نه. بررسیهای زیر به ترتیبی که کلاینت به آنها برمیخورد به پرسش پاسخ میدهند.
قابلحمل سه وعده متفاوت را پوشش میدهد و فقط یکی رایگان است
نبودِ نصبکننده یعنی فروشنده سرویسی ثبت نکرده، حذفکنندهای نفرستاده و ورودی منو اضافه نکرده است. نبودِ مدیر یعنی یک حساب معمولی میتواند کلاینت را اجرا کند و اتصال را کامل کند. نبودِ تغییر در میزبان یعنی ماشین پس از خروج شما یکسان به نظر میرسد. صفحههای دانلودی که میگویند قابلحمل معمولاً فقط نخستین مورد را وعده میدهند و دو مورد دیگر همان جایی است که استقرارها شکست میخورند. یک ساخت میتواند به معنای محدود هم قابلحمل باشد: از رسانهای فقطخواندنی بدون هیچ نوشتن فایل نقطهای اجرا میشود، که هنوز درباره پشته شبکه چیزی نمیگوید.
وعدههای گران دوم و سوم هستند. یک فایل اجرایی که به مبدل، مسیر یا نوشتن در حلکننده نیاز دارد، از سیستم عامل اختیاری میخواهد که برچسب قابلحمل هرگز آن را پوشش نداد.
کمکیار دارای اختیار را پیدا کنید که کلاینت آن را فرا میخواند
تقریباً هیچ کلاینت VPN خودش بستهها را جابهجا نمیکند. در Windows مسیر داده از فیلترهای WFP و Base Filtering Engine میگذرد، در macOS از ارائهدهنده NetworkExtension که کاربر در تنظیمات سیستم تأیید میکند، و در Linux از دستگاه tun بههمراه پشته مسیریابی. فایل دودویی که کپی کردهاید سطح کنترل برای آن اجزا است، نه جایگزین آنها. بپرسید کلاینت کدام جزء را انتظار دارد، سپس تأیید کنید که نصب شده، در حال اجراست و حساب شما میتواند از آن استفاده کند.
Linux آسانترین جا برای اثبات این نکته است، چون بررسی یک فراخوان سیستمی است. باز کردن /dev/net/tun و درخواست دستگاه از هسته به CAP_NET_ADMIN نیاز دارد، و مستندات هسته درباره TUN/TAP هم قاعده مالکیت و هم توانایی را بیان میکند. بررسی را با حسابی اجرا کنید که کلاینت را اجرا خواهد کرد، نه با root.
ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest
خطای مجوز در خط میانی همان پاسخی است که دنبالش بودید: این حساب نمیتواند رابط تونل بسازد، پس هر کلاینت فضای کاربر که به آن نیاز دارد هنگام اتصال شکست میخورد، نه هنگام دانلود. خط آخر دستگاه آزمایشی را برمیدارد و وقتی کار میکند چیزی چاپ نمیکند. اگر هر دو خط موفق شوند، میزبان چیز ماندگاری تغییر نداده است.
تغییرات مسیر و حلکننده را پیش از نخستین اتصال بیازمایید
تونل تقسیمشده اتصال را به تصمیم مسیریابی تبدیل میکند، در حالی که تونل کامل آن را به جایگزینی مسیر پیشفرض تبدیل میکند. هر دو نوشتن در پشته شبکه میزبان هستند و هر دو برای حساب بدون اختیار شکست میخورند، حتی وقتی خود کلاینت تمیز شروع میکند. حلکننده سومین نوشتن است و در میزبانهای systemd معمولاً همان است که آخر از همه میشکند. این ترتیب وقتی مهم میشود که تصمیم میگیرید نصب با اختیار بالا را کجا خرج کنید.
آزمایش مسیر به مقصدی نیاز دارد که واقعاً برایتان مهم باشد، پس بهجای جاینگهدار زیر یک زیرشبکه از پروفایل خودتان بگذارید. نام دستگاه باید وجود داشته باشد تا مسیر بتواند به چیزی بچسبد.
ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal
اگر خط اول RTNETLINK answers: Operation not permitted برگرداند یعنی حساب نمیتواند مسیر خصوصی را که پروفایل میخواهد نصب کند. خط دوم همان حق را برعکس اثبات میکند، و این مهم است چون کلاینتی که میتواند مسیر اضافه کند ولی نمیتواند بردارد جدولی خراب باقی میگذارد. سپس پرسوجو از حلکننده نشان میدهد نامهای خصوصی از تونل حل میشوند یا به هر حلکنندهای که میزبان از قبل به آن اعتماد دارد نشت میکنند.
هر سه را تا وقتی دستگاه آزمایشی هنوز وجود دارد اجرا کنید، سپس آن را حذف کنید. مسیری که به دستگاهی اشاره میکند که رفته است شایعترین دلیل از دست رفتن اتصال لپتاپ پس از یک اتصال ناموفق است.
تصمیم بگیرید چه چیزی باید از نشست جان سالم به در ببرد
حذف پوشه برنامه پاکسازی نیست. مبدلها، مسیرها، تنظیمات حلکننده، گواهیهای مورد اعتماد و اعتبارنامههای ذخیرهشده هر یک میتوانند از فرایند بیشتر عمر کنند، و سرویس هنگام راهاندازی ممکن است برخی را بدون پرسیدن بازگرداند. پیش از اجرا بنویسید کلاینت اجازه دارد چه چیزی پشت سر بگذارد، نه پس از نخستین قطع اتصال ناموفق.
قاعده عملی این است که از سه سطحی که در آستانه تغییرشان هستید تصویر تهیه کنید و بعد آنها را مقایسه کنید. پیش از نخستین اتصال رابطها، جدول مسیریابی اصلی و وضعیت حلکننده را ثبت کنید، سپس پس از خروج کلاینت همان سه خواندن را تکرار کنید.
ip -brief addr show
ip route show table main
resolvectl status
هر چیزی که در برداشت دوم هست و در اولی نیست به مالک نیاز دارد. یا کلاینت آن را هنگام خروج برمیدارد، یا شما آن را با همان دستورهایی که آن را ساختند برمیدارید، و این برداشتن به یادداشتهای استقرار تعلق دارد نه به حافظه کسی از آنچه رخ داد. در Windows خواندنهای معادل Get-NetAdapter، Get-NetRoute و Get-DnsClientServerAddress هستند که به ارتقا نیاز ندارند اما همان بازماندهها را نشان میدهند.