آیا مسیرهای DHCP میتوانند ترافیک شما را از کنار تونل VPN بیرون ببرند؟
رمزنگاری فقط زمانی بستهها را محافظت میکند که وارد تونل شوند. انتخاب مسیر تعیین میکند کدامها وارد شوند. مسیرهای DHCP، قواعد و مسیری که برنامهها طی میکنند را بررسی کنید.
رمزنگاری در یک مرز آغاز میشود، و آن مرز تصمیمی دربارهٔ مسیریابی است که نقطهٔ پایانی پیش از کپسوله شدن هر بسته میگیرد. شبکهای که هرگز کلیدهای شما را نمیبیند باز هم میتواند مسیری به دستگاه شما بدهد که آن را بر مسیر خود تونل ترجیح میدهد. اینجا دو شکست با هم اشتباه گرفته میشوند: خواندن بستهای که از قبل داخل تونل است، و هدایت بستهای که هرگز در آنجا قرار داده نشده است.
این تفاوت مهم است چون شکست دوم ارزانتر ترتیب داده میشود و بسیار آسانتر از چشم میافتد. به شکل درخواستی ظاهر میشود که از رابط اشتباه خارج شده، در حالی که کارخواه هنوز اتصال سالمی گزارش میکند.
دو راهی که یک شبکه میتواند بر شما اثر بگذارد
بستهای که به تونل میرسد بار خود را از هر گامی که میگذراند پنهان دارد، و این محافظت حتی وقتی مسیر شما را غافلگیر کند برقرار میماند. بستهای که هرگز به تونل نمیرسد درخواستی معمولی از نشانی شماست که به هر جا جدول مسیرها اشاره کرده بود فرستاده میشود. شکست اول به رمز شکسته یا همتایی سازشیافته نیاز دارد، در حالی که شکست دوم فقط به پیام پیکربندی نیاز دارد که دستگاه شما تصمیم گرفته به آن اعتماد کند. همین عدم تقارن دلیل آن است که نیمهٔ مسیریابی سزاوار بررسی جداگانه است.
تجهیزات روی مسیر برای اثر گذاشتن بر حالت دوم به کلیدهای شما نیاز ندارند. فقط لازم است نقطهٔ پایانی شما مسیر، حلکننده یا قاعدهٔ سیاستی را بپذیرد که یکی از آنها را پدید میآورد.
expected: app -> tunnel device -> encapsulation -> internet
observed: app -> wlan0 -> plaintext -> internet
مسیر پیش از وجود تونل از کجا میتواند بیاید
DHCP بیش از یک اجارهٔ نشانی توزیع میکند. گزینهٔ مسیر ایستای بیکلاس میتواند پیشوندهای مقصد و گامهای بعدی را حمل کند، و RFC 3442 پیامدهای امنیتی نشانی مسیریاب نادرست را بررسی میکند: ترافیک گمراهشده، انکار سرویس، یا ناظری که روی مسیر مستقر شده است. کارخواهی که این مسیرها را پیش از بالا آمدن تونل بپذیرد ممکن است با مسیری ترجیحی روبهرو شود که هیچ ارتباطی با ارائهدهندهٔ شما ندارد.
هیچیک از اینها تزریق مسیر را همهگیر نمیکند. کارخواه باید گزینه را بپذیرد، پیشوند باید ترافیکی را که برایتان مهم است بپوشاند، گام بعدی انتخابشده باید قابل دسترس باشد، و سیاست اجرا باید اجازه دهد بسته از آن راه خارج شود. هر یک از اینها را بردارید و همان پاسخ بیزیان میشود. به همین دلیل هم دو دستگاه در یک شبکه میتوانند رفتار متفاوتی داشته باشند، چون کارخواه یکسان، سیاست یکسان یا حتی خانوادهٔ نشانی یکسان را اجرا نمیکنند.
IPv6 شایستهٔ گذر جداگانه است، چون اعلانهای مسیریاب مسیر پیشفرض را با کدی متفاوت از گزینهٔ DHCPv4 حمل میکنند. آزمونی که فقط جدول v4 را بررسی کند آن را پوشش نداده است.
مسیری را که هسته واقعاً انتخاب میکند بررسی کنید
جستوجوهای مسیر پاسخپذیرند، پس از خودشان بپرسید نه اینکه از چراغ وضعیت نتیجه بگیرید. فرمانهای زیر مسیر و منبع انتخابشده برای یک مقصد را نشان میدهند، همراه با قواعدی که میتوانند جدول اصلی را کنار بزنند. آنها را هنگام اتصال و دوباره پس از اتصال مجدد اجرا کنید، چون تمدید اجاره میتواند پاسخ را تغییر دهد.
ip route get 203.0.113.10
ip route show table all | grep -E '^(default|203\.0\.113)'
ip rule show
resolvectl query example.com
خروجی را برای دو چیز بخوانید: رابطی که در مسیر نام برده شده و نشانی منبع انتخابشده. مسیر تونل دستگاه تونل را نام میبرد، مسیر نشتکرده دستگاه فیزیکی را، و تفاوت بدون رمزگشایی چیزی دیده میشود. اگر پاسخ میان اجراها تغییر کند، هر دو خروجی را نگه دارید و قواعدی را که آنها را ساختند مقایسه کنید.
در مسیر پیشفرض متوقف نشوید. استثنای یک برنامه، پیشوند تونل تقسیمشده یا قاعدهٔ سیاست دوم میتواند مقصدی مشخص را از کنار تونل ببرد در حالی که پیشفرض هنوز به داخل اشاره میکند.
تصمیم بگیرید اجرا باید کجا زندگی کند
سه شرط تعیین میکند که آیا اجرا در سمت کارخواه کافی است یا به چیزی بیرون از آن نیاز دارید. اگر کارخواه برای هر خانوادهٔ نشانی که استفاده میکنید مسیرها را نصب و دفاع کند، تونلی که مسیر پیشفرض را در اختیار دارد معمولاً کافی است. اگر دستگاه باید به منابع محلی برسد در حالی که بقیه چیزها داخل تونل میمانند، آن استثناها باید برشمرده و در اختیار گرفته شوند، نه اینکه به آنچه شبکهٔ دسترسی اعلام کرده واگذار شوند. و اگر سکو بتواند ترافیک را برای هر برنامه به یک رابط گره بزند، آن گرهزدن تضمینی قویتر از مسیری است که هر چیزی میتواند کنارش بزند.
هر چه را انتخاب کنید، تصمیم را جایی بنویسید که پیکربندی زندگی میکند. قاعدهای که وجود دارد چون کسی آن را هنگام یک رخداد تایپ کرده، از راهاندازی بعدی جان سالم به در نمیبرد، پس استثناهای محلی و استثناهای راهاندازی را باریک نگه دارید و ثبت کنید چرا هر یک وجود دارد.
پس از هر بهروزرسانی کارخواه و هر تغییر شبکه فرمانهای جستوجو را دوباره اجرا کنید و با آخرین خروجی ثبتشده مقایسه کنید. جدول مسیرها مرز اجرا است، پس با آن همانگونه رفتار کنید.