عبور IPsec در روتر خانگی: واقعاً چه کاری انجام میدهد
کلید عبور یک پروتکل را از ترجمه آدرس رد میکند؛ روتر را به عنوان کلاینت ثبت نمیکند. تبادل را ضبط کنید، ارتباطها را بخوانید، سپس تصمیم بگیرید.
کلیدهای عبور روتر امتیازهای ارسال برای دستگاهی هستند که پشت آن قرار دارد، نه سرویسهای VPN. آنها روتر را به عنوان کلاینت ثبت نمیکنند، اعتبارنامه نگه نمیدارند و هر وسیله خانه را از خروجی راه دور عبور نمیدهند. کاری که میکنند این است که شکل عبور یک پروتکل از ترجمه آدرس و فیلترها را تعیین میکنند. وقتی این روشن شد، آزمایش کلید آسان و خاموش گذاشتنش هم آسان میشود.
روتر واقعاً چه کاری میکند
روتر بین یک کلاینت و یک همتای IPsec قرار دارد و بستههایی را ارسال میکند که هرگز برای فهمیدنشان طراحی نشده بود. سازندگان این ویژگی را دستکم به سه روش پیاده میکنند: یک کمککننده پروتکل که وضعیت را دنبال یا بازنویسی میکند، یک استثنای فیلتر که دور انداختن ESP را متوقف میکند، یا یک حالت سازگاری برای کلاینتهای قدیمیتر. برچسب در رابط وب بهندرت میگوید کدام یک از این سه را دارید. فقط یادداشتهای سیستمعامل یا یک ضبط بسته آن را میگوید.
کمککننده میتواند اوضاع را بدتر هم بکند. کمکی که برای جریانی قدیمیتر نوشته شده گاهی با کلاینتی که ترجمه را از قبل درست مدیریت میکند تداخل میکند. وقتی کلاینت مدرن با گزینه خاموش کار میکند، خاموش نگه داشتن آن پیکربندی بهتری است.
عبور هرگز کلیدهای همتاها را به روتر نمیدهد. هنوز آدرسها و درگاههای بیرونی را میبیند و هنوز سیاست ارسال خودش را بر آنها اعمال میکند.
NAT و NAT-T مسیر را تعیین میکنند
IPsec برای زنده ماندن از ترجمه آدرس ساخته نشده بود، بنابراین استانداردها یک پوشش اضافه کردند. عبور NAT بسته ESP را درون UDP جای میدهد و به یک جدول NAT معمولی اجازه میدهد جریان را حمل کند، و مذاکره در طول IKE بر این تغییر توافق میکند (RFC 3948). خود IKE از درگاه UDP 500 استفاده میکند، در حالی که مسیر پوششدار معمولاً از درگاه UDP 4500 استفاده میکند.
به همین دلیل یک قاعده فایروال که فقط پروتکل 50 را مجاز میکند روی مسیر ترجمهشده کافی نیست. مسدود کردن 4500 همان حالتی را که پوشش برای آن وجود دارد میشکند، و مسدود کردن 500 مذاکره را پیش از شکلگیری هر تونلی متوقف میکند. هر دو جهت مهماند، چون روتر حالتدار معمولاً پاسخ را فقط پس از دیدن درخواست مجاز میکند. رسیدن به یک درگاه همان پایان احراز هویت نیست، و همان ارسال ترافیک محافظتشده هم نیست.
ترتیبات قدیمیتر آنقدر تفاوت دارند که راهنمایی که برایشان نوشته شده میتواند گمراهکننده باشد. وقتی کلاینت هر دو حالت را پیشنهاد میکند، حالتی را آزمایش کنید که همتای شما مستند کرده است، نه حالتی که نتایج جستجوی بیشتری دارد.
مرحله ناکام را پیدا کنید
مسئله را به مذاکره، احراز هویت، حفاظت فرزند و ارسال درونی تقسیم کنید، سپس برای یک مرحله در هر نوبت شواهد جمع کنید. راهاندازی مجددی که نتیجه را موقتاً عوض میکند فقط ثابت میکند که نوعی وضعیت در میان بوده است.
sudo tcpdump -ni any 'udp port 500 or udp port 4500'
ip xfrm state list
ip xfrm policy list
ضبط نشان میدهد آیا تبادل به همتا میرسد و آیا پاسخها برمیگردند، که مسئله فیلتر را از مسئله اعتبارنامه جدا میکند. فهرست وضعیت ارتباطهای امنیتی برقرارشده را نشان میدهد، بنابراین فهرست خالی پس از یک تلاش به مذاکره اشاره میکند نه به مسیریابی. فهرست سیاست نشان میدهد کدام انتخابگرها نصب شدهاند و همانجا مقصدی بیرون از زیرشبکه کنار گذاشته میشود. پیش از دست زدن به روتر هر دو خروجی xfrm را بخوانید، چون آنها آنچه میزبان باور دارد را توصیف میکنند نه آنچه روتر مجاز میکند.
اگر بستهها خارج شوند و چیزی برنگردد، ضبط را به سمت WAN روتر منتقل کنید. مقایسه دو ضبط جای افتادن را بدون حدس مشخص میکند.
آنچه لازم نیست را خاموش کنید
یک لپتاپ کارکن ثابت نمیکند که روتر چند کلاینت را همزمان مدیریت میکند. هر کلاینت وضعیت ترجمه و مذاکره خودش را میسازد و برخی کمککنندهها فقط یک جریان را دنبال میکنند. تعداد نشستهای همزمانی را که واقعاً لازم دارید، از شبکههایی که واقعاً استفاده میکنید آزمایش کنید. اگر کلاینت دوم شکست بخورد در حالی که اولی خوب کار میکند، همان یافته است نه یک تونل لرزان.
گزینه را فقط وقتی روشن نگه دارید که ضبط نشان دهد لازم است. نسخه سیستمعامل را کنار نتیجه بنویسید، چون این رفتارها بین انتشارها تغییر میکنند. هدف تونل کلاینتی است که تأیید کردهاید، نه کلیدی که با امید روشن کردهاید.