انتخابگرهای ترافیک IPsec: چه چیزی را پوشش میدهند و چه چیزی را نه
انتخابگرها سیاست مذاکرهشدهاند، نه مسیر و نه مجوز. آنها را از دو سر بخوانید، ببینید پاسخدهنده چگونه آنها را باریک میکند و سپس یک مقصد را دنبال کنید.
انتخابگرهای ترافیک، ترافیک درونیای را که یک توافق IPsec محافظت میکند نامگذاری میکنند و این جفت مذاکره میشود، نه فرض. دو سر میتوانند یکدیگر را کاملاً احراز هویت کنند و باز هم درباره اینکه کدام بستهها داخل تونل هستند اختلاف داشته باشند. این اختلاف در وضعیت اتصال نامرئی است، وضعیتی که معمولاً تونلی سالم را گزارش میکند. خواندن انتخابگرها از دو سر و سپس دنبال کردن یک مقصد، آن را سریعتر از هر میزان ویرایش سیاست پیدا میکند.
آنها را از دو سر بخوانید
هر سر، سمت خود را محلی و سمت دیگر را دوردست توصیف میکند. بنابراین همان جفت پیشوند در دو پیکربندی جابهجا شده به نظر میرسد و این درست است، نه متناقض. وارونه کردن دیدگاه نخستین کاری است که باید کرد وقتی توافقی کارکننده روی کاغذ غلط به نظر میرسد. مقایسه دو فایل در کنار هم بدون جابهجا کردن آنها ناسازگاریای میسازد که وجود ندارد.
مقادیر همیشه زیرشبکههای تکی نیستند. انتخابگرهای IKEv2 میتوانند بازههای نشانی، شمارههای پروتکل و بازههای درگاه را حمل کنند و اینگونه است که یک سیاست یک سرویس را به جای یک شبکه کامل محافظت میکند. انتخابگری باریکتر از ترافیک موردنظر تونلی میسازد که برخی مقاصد را حمل میکند و بقیه را بیصدا کنار میگذارد.
پیش از تغییر هر چیزی، هر دو طرف را در یک جدول بنویسید. این تمرین معمولاً بدون دست زدن به فایل پیکربندی پرسش را حل میکند.
باریک کردن تصمیم پاسخدهنده است
آغازگر پیشنهاد میدهد و پاسخدهنده ممکن است فقط زیرمجموعهای را بپذیرد. IKEv2 به پاسخدهنده اجازه میدهد انتخابگرهای ترافیک پیشنهادی را باریک کند و نتیجه باریکشده همان چیزی است که واقعاً نصب میشود. پس خواندن پیکربندی آغازگر یک پیشنهاد را توصیف میکند، نه توافق را.
برای همین است که زیرشبکهای که به کارخواه افزوده میشود میتواند تونلی کارکننده بسازد که باز هم مقصد جدید را رد میکند. کارساز پیشنهاد را تا آنجا که سیاستش اجازه میدهد باریک کرد، در حالی که فایل کارخواه هنوز بازه گستردهتر را فهرست میکند. تنها وضعیت مذاکرهشده حقیقت را نشان میدهد: در Linux، ip xfrm policy و فهرست child SA در مستندات IKEv2 در strongSwan آنچه نصب شده را گزارش میکنند، نه آنچه خواسته شده. وقتی این دو اختلاف دارند، سیاست پاسخدهنده است که باید تغییر کند.
پیشنهاد ردشده نشانهای متفاوت از پیشنهاد باریکشده است. رد شدن در گزارش مذاکره پدیدار میشود و هیچ ارتباط child باقی نمیگذارد.
یک مقصد را سرتاسر دنبال کنید
یک مقصد واقعی به همراه نشانی مبدأیی که کارخواه برای آن به کار میبرد انتخاب کنید و سپس آن جفت را از سه تصمیم مستقل بگذرانید. مسیر یک راه را برمیگزیند، انتخابگر تصمیم میگیرد که آن راه محافظت میشود یا نه، و دیوار آتش تصمیم میگیرد که بسته مجاز است یا نه. هرکدام میتوانند بهتنهایی شکست بخورند و یک انتخابگر گسترده هیچیک از بقیه را درست نمیکند.
ip route get 10.20.30.41
ip xfrm policy list
swanctl --list-sas
پرسوجوی مسیر نام واسط و نشانی مبدأیی را میآورد که بسته را حمل میکنند. فهرست سیاستها نشان میدهد آیا سیاست تونل منطبقی برای آن جفت وجود دارد، از جمله جهت و سطح آن. فهرست SA انتخابگرهای child مذاکرهشده را همراه با شمارندهها نشان میدهد، پس ارتباط child با صفر بسته پس از تلاش برای ترافیک، امضای انتخابگرهایی است که آنچه فرستاده میشود را کنار میگذارند. سه فرمان، سه پاسخ متفاوت، و تنها یکی از آنها افتادن بیصدا را توضیح میدهد.
اگر شمارندههای child حرکت میکنند در حالی که برنامه باز هم شکست میخورد، مشکل آنسوی تونل است. این پژوهش را به شنونده یا دیوار آتش میزبان دور میبرد، نه به انتخابگرها.
دو هدف را جدا نگه دارید
محافظت از یک زیرشبکه اداری و فرستادن همه مرور از یک خروجی دور، دو نیاز متفاوت با انتخابگرهای متفاوتاند. نمایه ساختهشده برای یکی بهندرت به دیگری میخورد و آمیختن آنها یا نشتی میدهد یا شکافی خراب. گستردن بازه محافظتشده یعنی تغییر هر دو سر و سیاست ارسالشان، زیرا تغییر یکطرفه به پیشنهاد ردشده تبدیل میشود. این رایجترین شیوهای است که یک تونل کارکننده پس از ویرایشی کوچک از کار میافتد.
انتخابگرها پوشش رمزنگاری را توصیف میکنند، مسیرها راهها را برمیگزینند و برنامهها مجوزهای خودشان را اعمال میکنند. تونلی که همه چیز را پوشش میدهد باز هم به سرویسی که به loopback گره خورده نمیرسد و مسیری به داخل تونل باز هم انتخابگری نیاز دارد که مقصد را در بر بگیرد. هر سه را در برابر همان درخواست آزمایشی بررسی کنید و ناسازگاری خودش را نام میبرد.