Fail2ban روی دروازه VPN: چه چیزی را درست میکند و چه چیزی را نه
Fail2ban منابعی را که در گزارشهای شما شکست میخورند مسدود میکند و همین. اینکه به دروازه VPN کمک کند به سطح ورود و اینکه چه کسی یک نشانی را شریک است بستگی دارد.
هر سرویس در معرض همان توصیه را میگیرد: fail2ban را روی آن بگذارید. برای دروازه VPN این توصیه نه نادرست است و نه کافی، و برخورد با آن بهعنوان یک تیک سختسازی همان چیزی است که مردم را با زندان (jail)ی رها میکند که هیچ چیز مفیدی را مسدود نمیکند. Fail2ban رکوردهای شکست را که به آن نشان میدهید میخواند و از یک بکاند اجرا میخواهد منابع منطبق را مسدود کند. تمام ارزش آن به این بستگی دارد که کدام سطح احراز هویت رکورد را تولید کرده، آیا نشانی داخل آن مشتری واقعی است، و برای همه کسانی که پشت آن نشانی هستند چه اتفاقی میافتد.
fail2ban از نظر مکانیکی چیست
یک فیلتر خطوط یک گزارش را تطبیق میدهد، یک زندان تطبیقها را به تفکیک منبع میشمارد و یک کنش مسدودسازی را از طریق بکاند دیوار آتش اعمال میکند. سه جزء متحرک که هر یک میتواند مستقلاً اشتباه باشد.
هیچیک از این سه به مسیر احراز هویت دست نمیزند: fail2ban پس از رویداد به شواهد واکنش میدهد و هرگز خودش اعتبارنامهای را اعتبارسنجی نمیکند. بنابراین یک زندان میتواند بیعیب کار کند در حالی که سطحی که نام میبرد دقیقاً به همان اندازه قبل در معرض میماند.
شنونده تونل یک فرم ورود نیست
شنونده OpenVPN که با tls-auth یا tls-crypt محافظت میشود، بستههای فاقد حفاظت کانال کنترل را پیش از آغاز پردازش عادی TLS دور میریزد. اسکنری که هرگز کلید را ندارد چیزی تولید نمیکند که فیلتر شما بتواند بشمارد. احراز هویت با گواهی دروازه دیگری اضافه میکند، زیرا رمزی برای حدس زدن وجود ندارد. پروژه Fail2ban یک مدل عمومی مبتنی بر گزارش را مستند میکند و یک فیلتر عمومی VPN بسته تأییدنشده را به رویداد شکست معنادار تبدیل نمیکند.
اگر دروازه فقط گواهی بپذیرد، داستان حمله جستجوی فراگیر که از آن دفاع میکنید ممکن است اصلاً روی آن پورت وجود نداشته باشد.
پس از کدام سطح محافظت میکنید؟
یک میزبان اغلب سه چیز متفاوت را در معرض میگذارد: شنونده تونل، درگاهی برای نمایه مشتری یا سلفسرویس، و یک صفحه مدیریت. درگاه و صفحه مدیریت فرمهای رمز دارند و خطوط گزارشی تولید میکنند که فیلتر میتواند بشمارد. تونل ممکن است فقط خطاهای دستدادن تولید کند که معنای کاملاً دیگری دارند. زندان را با سطح تطبیق دهید نه با نام محصول.
یک زندان که گزارش اشتباه را میپاید از هیچ بدتر است، زیرا اعتماد بدون پوشش ایجاد میکند. یک فیلتر ورود را به خطاهای دستدادن تونل نشانه بگیرید تا شمارنده روی اسکنرهایی فعال شود که هرگز کلیدی نداشتند، در حالی که حمله رمز علیه درگاه شمرده نمیشود. پیش از اعتماد به عدد زندان، خط گزارشی را که فیلتر تطبیق میدهد بخوانید.
انتساب منبع حلقه ضعیف است
یک مسدودسازی فقط به اندازه نشانیای که هدف میگیرد خوب است. وقتی سرویس پشت یک پروکسی معکوس محلی قرار دارد، نشانی مشتری در گزارش ممکن است خود پروکسی باشد و مسدود کردن آن همه را حذف میکند. اعتماد به سرآیند ارسالشده از منبعی نامطمئن به مهاجم توانایی مسدود کردن نشانیهای دلخواه را میدهد. در UDP نشانیهای منبع را میتوان جعل کرد، بنابراین شمردن آنها بیش از شمردن یک ورود TCP کاملشده دقت میخواهد.
روش انتساب منبع را در README زندان ثبت کنید، زیرا سرآیند ارسالشده از یک گام نامطمئن مسدودسازی را به سلاح تبدیل میکند.
هزینه جانبی دیگران هستند
چند کارمند پشت یک NAT اداری یک نشانی را شریکاند، بنابراین یک رمز ذخیرهشده کهنه میتواند با عبور از آستانه کل دفتر را قفل کند. گزارش یک منبع و یک حساب شکستخورده را نشان میدهد، نه قطعی در کل دفتر.
مسدودسازیهای کوتاه و آستانههای معتدل این را کم میکنند، و مسیر مستند رفع مسدودسازی بار پشتیبانی را وقتی باز هم رخ میدهد کاهش میدهد. نشانی نشانهای خام است، نه هویت، و کسی که تیکت باز میکند قطعی را توصیف میکند نه آستانه را.
چه زمانی آن را بپذیریم و چه زمانی چیز دیگری را درست کنیم
آن را بپذیرید وقتی روی سطحی که کنترل میکنید شکست واقعی، قابل انتساب و تکرارشونده ورود آنلاین وجود دارد و وقتی بکاند اجرا واقعاً آن سطح را پوشش میدهد. چیز دیگری را درست کنید وقتی مشکل سیاست ضعیف اعتبارنامه، صفحه مدیریت در معرض اینترنت، یا حسابی است که چون به خطر افتاده با موفقیت وارد میشود. مسدودسازی هیچیک از اینها را ترمیم نمیکند و نمیتواند ترافیکی را که پیشتر پیوند بالاسوی شما را اشباع کرده جذب کند. آن مشکل آخر به بالادست تعلق دارد، به کسی که میتواند پیش از رسیدن بستهها به شما فیلتر کند.
هر زندان را به یک سطح گره بزنید، مثبتهای کاذب را بازبینی کنید و کار احراز هویت اجتنابشده را بسنجید نه تعداد نشانیهای مسدودشده را.