طوفان اتصال مجدد در شعبه: محدودیتهای پذیرش strongSwan
یک دفتر کامل پشت یک NAT میتواند از محدودیتهای IKE نیمهباز strongSwan عبور کند. وضعیت پذیرش را جدا از نشستهای برقرارشده بشمارید، پیش از آنکه مقداری را بالا ببرید.
ببینید شعبه پس از قطع لینک چگونه بازمیگردد و دروازه چیزهایی میبیند که در یک روز عادی هرگز دیده نمیشود: دهها لپتاپ همزمان از یک نشانی عمومی میرسند. هر یک دستگاهی مشروع است و هر یک تبادل IKE را آغاز میکند که هنوز تمام نشده است. موفقیت این هجوم به محدودیتهایی بستگی دارد که هیچ ارتباطی با تعداد کارمندانی که سرور میتواند حمل کند ندارد. هجوم کوتاه است و دقیقاً همان بار کاری است که مسیر پذیرش برای تحمل آن ساخته شده است.
یک لپتاپ را در بازگشت به شبکه دنبال کنید
کارخواه درخواست اولیه میفرستد و منتظر میماند، و تا وقتی تبادل کامل نشود دروازه وضعیت پذیرش آن تلاش را نگه میدارد. دستگاههای دیگر پشت همان نشانی میرسند در حالی که اولی هنوز منتظر است و پشت محدودیتی صف میکشند که نشانیها را میشمارد نه کاربران را. از بیرون، نشانه چند کاربر است که متصل میشوند و گروه بزرگتری که زمانشان تمام میشود.
هیچچیز در این توالی نقص نیست. این مسیر پذیرش است که کاری را میکند که برای آن پیکربندی شده است.
کار نیمهباز را منبعی جداگانه بشمارید
strongSwan دو جمعیت را از هم جدا میکند: انجمنهایی که کاملاً برقرار شدهاند و تلاشهایی که هنوز متصل میشوند یا در انتظار پردازشاند. آستانه مسدودسازی بر انجمنهای نیمهبازِ نسبتدادهشده به یک نشانی همتا اعمال میشود و آستانههای کوکی بهصورت سراسری و بهازای هر نشانی اعمال میشوند. این شمارندهها دیمن را از مصرفشدن با کار تأییدنشده محافظت میکنند، که دقیقاً شکل طوفان اتصال مجدد است. هیچیک از این وضعیت در فهرست تونلهای برقرارشده.
خواندن آنها بهعنوان سقفی برای نشستهای کارمندان همان اشتباهی است که به بالا بردن همهچیز با هم میانجامد. سروری که چهارصد تونل برقرارشده را حمل میکند بهطور خودکار قادر به جذب چهارصد بسته اول همزمان نیست، زیرا دو هزینه در جاهای متفاوتی فرود میآیند.
تأخیر احراز هویت تعیین میکند هر تلاش چه مدت در شمارش نیمهباز بماند. بکاندی که آهسته پاسخ میدهد هجوم کوتاه را به صفی طولانی تبدیل میکند، حتی وقتی نرخ ورود متعادل است.
swanctl --stats
swanctl --list-sas | grep -c ESTABLISHED
تنظیمات پذیرش را پیش از تغییر بخوانید
مقادیری را که دیمن در حال اجرا واقعاً بارگذاری کرده است بیابید، پیش از آنکه دربارهشان نظری بسازید. پیکربندی اغلب میان یک فایل اصلی و دایرکتوریای از قطعههای هر افزونه تقسیم میشود، پس مقداری که در یک جا تعیین میکنید ممکن است در جای دیگر بازنویسی شود. جستجوی زیر هر فایلی را که این تنظیمات را ذکر کرده است نشان میدهد.
سپس تصمیم بگیرید کدام عدد بیش از حد کوچک است. اگر یک نشانی بهطور مشروع نماینده یک دفتر کامل است، آستانه مسدودسازی بهازای نشانی همان مقداری است که باید این تمرکز را در خود جای دهد. آستانه کوکی سراسری دیمن را از سیل گستردهتر محافظت میکند و نباید به این دلیل که یک سایت دوباره متصل میشود شل شود. آن مقدار بهازای نشانی را با بزرگترین سایتی که واقعاً دارید مقایسه کنید.
سازوکار کوکی را فعال نگه دارید. کوکیها کارخواه را وادار میکنند ثابت کند میتواند در نشانی ادعاییاش دریافت کند، پیش از آنکه دیمن کار واقعی را صرف تبادل کند، و غیرفعال کردن آنها ارتقای ظرفیت بیطرفانه نیست. آستانه را تنها با نرخ ورود اندازهگیریشده و بودجه احراز هویت اعلامشده در پشت آن بالا ببرید.
grep -rn -E 'block_threshold|cookie_threshold' /etc/strongswan.conf /etc/strongswan.d/
swanctl --stats | grep -i half
برای بازگشت برنامهریزی کنید، نه فقط برای حالت پایدار
هدف دسترسپذیری که تنها نشستهای برقرارشده را میشمارد، یک بعدازظهر آرام را توصیف میکند نه یک بازیابی. بهجای آن بپرسید جمعیت موردنظر پس از یک رویداد شبکهای مشترک چگونه بازمیگردد و آیا مسیر پذیرش میتواند آن شکل را جذب کند.
پخش کردن اتصال مجدد در ناوگانی مدیریتشده اغلب از بزرگ کردن محدودیتها ارزانتر است، زیرا هجوم مصنوعی را حذف میکند بهجای آنکه همیشه برایش بپردازد. وضعیت نیمهباز و رویدادهای پذیرش را در کنار برقراریهای موفق پایش کنید و شمار نیمهبازِ روبهرشد با موفقیتهای ثابت را هشدار زودهنگام بدانید نه کنجکاوی.
مرجع فروشنده برای این تنظیمات مستندات strongswan.conf است، که شمارندهها و نسخهای را نام میبرد که آستانه کوکی بهازای نشانی را معرفی کرد. بخش مربوط به نسخه نصبشده خود را بخوانید نه جدیدترین صفحه را، زیرا پیشفرضها میان نسخهها جابهجا میشوند.