• ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
ایرانشل
  • ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری
ورود و ثبت نام

وبلاگ

وبلاگ > آموزش‌‌ راهکارهای امنیت شبکه > نحوه نصب و راه اندازی Fail2ban بر روری Ubuntu 20.04

نحوه نصب و راه اندازی Fail2ban بر روری Ubuntu 20.04

آموزش‌‌ راهکارهای امنیت شبکه
ارسال شده توسط ایرانشل
22 نوامبر 2020
997 بازدید

نصب و تنظیمات Fail2ban

هر سرویسی که در سیستم به طریقی با اینترنت در ارتباط باشد، در معرض حملات مختلف قرار دارد. برای مثال اگر سرویسی دارید که بر روی یک شبکه عمومی قابل دسترس است، مهاجم می‌تواند به سادگی و با استفاده از ابزارهایی مانند Ncrack بر روی آن حمله Brute-force کرده و از این طریق به اطلاعات کاربری سرویس شما دسترسی پیدا کند.

Fail2ban ابزاریست که به شما کمک می‌کند تا از طریق مانیتورینگ لاگ‌های مربوط به سرویس‌های سیستم لینوکس و پیدا کردن فعالیت‌های مشکوک در بین این لاگ‌ها از حمله Brute-force یا سایر حملات اتوماتیک جلوگیری نمایید. Fail2ban در اصل از عبارات منظم برای اسکن لاگ‌ها استفاده می‌کند. بنابراین همه ورودی‌هایی که با الگوی مورد نظر مطابقت داشته باشند به تعداد تلاش‌ها اضافه می‌شود و اگر این عدد از آستانه تعریف شده عبور کند، Fail2ban آدرس IP متخلف را از طریق فایروال سیستم برای مدت زمان مشخصی مسدود می‌کند. در صورت اتمام این زمان، آدرس IP مجددا از لیست مسدود شده‌ها خارج می‌شود.

نصب Fail2 ban بر روی Ubuntu

پکیچ مربوط به Fail2ban به صورت پیشفرض در Repositoryهای Ubuntu وجود دارد. بنابراین برای نصب آن از دستورات زیر استفاده کنید.

 [email protected]:~$ sudo apt update
 [email protected]:~$ sudo apt install fail2ban 

بعد از اتمام نصب نرم افزار Fail2ban، این نرم افزار به صورت اتوماتیک شروع به کار می‌کند. برای چک کردن وضعیت سرویس از دستور زیر استفاده می‌کنیم.

[email protected]:~$ systemctl status fail2ban

در صورت نصب صحیح برنانه، خروجی این دستور شبیه عکس زیر خواهد بود.

Fail2ban Service Status

تنظیمات Fail2ban

به صورت پیش فرض Fail2ban شامل دو فایل تنظیمات زیر می‌شود. این به هیچ وجه توصیه نمی‌شود که تنظمیات مد نظر در داخل این فایل‌ها ذخیره شود. زیرا ممکن است در هنگام بروزسانی این فایل‌ها بازنویسی شده و از بین بروند.

 [email protected]:~$ nano /etc/fail2ban/jail.conf
 [email protected]:~$ nano /etc/fail2ban/jail.d/default-debian.conf 

در هنگامی که سرویس Fail2ban شروع به کار می‌کند، تنظیمات موجود در مسیر نرم افزار را به ترتیب زیر می‌خواند. هر فایل با پسوند local تنظیمات موجود در فایل conf را بازنویسی می‌کند.

  /etc/fail2ban/jail.conf
  /etc/fail2ban/jail.d/*.conf
 /etc/fail2ban/jail.d/jail.local
 /etc/fail2ban/jail.d/*.local 

برای بیشتر کاربران ساده‌ترین راه کپی کردن فایل jail.conf داخل فایل jail.local و انجام تنظیمات مورد نیاز می‌باشد. اما کاربران حرفه‌ای به جای کپی کردن این فایل، از اول آن را ایجاد و تنظیم می‌کنند. نکته دیگر نیز در مورد این فایل این است که نیاز نیست همه تنظیمات داخل فایل conf داخل این فایل دقیقا باشد. فقط کافیست تنظیماتی که قرار است بازنویسی شود در داخل آن وارد شود.

برای شروع انجام تنظیمات، یک فایل با پسوند local از فایل تنظیمات پیشفرض fail2ban ایجاد می‌کنیم.

[email protected]:~$ cp /etc/fail2ban/jail.{conf ,local}

لیست آدرس‌های مجاز (Whitelist IP Addresses)

آدرس‌ها ونج IPها و آدرس ایستگاه‌هایی کاری که می‌خواهیم از قاعده مسدود شدن مستثنا باشند را می‌توانیم در بخش ignoreip اضافه کنیم. درواقع در این قسمت IP لوکال سیستم خودمان و سیستم‌هایی دیگری که می‌خواهیم جزء لیست سفید باشند را اضافه می‌کنیم.

برای اینکار خطی که با ignoreip شرورع می‌شود را از کامت در آورده و IPها را به شکل زیر اضافه می‌کنیم.

IP whitelist

تنظمات مسدود سازی (Ban settings)

مقادیر گزینه‌های findtime ،Bantime و maxretry برای تعریف بازه زمانی مسدودسازی و شرایط آن می‌باشد.

متغییر bantime بازه زمانی مربوط به مسدودسازی IP را مشخص می‌کند. زمانی که این مقدار بدون واحد تعریف شود به صورت پیشفرض واحد ثانیه برای آن در نظر گرفته می‌شود. همچنین در صورت عدم مشخص کردن مقدار برای آن، به صورت پیشفرض مقدار 10 دقیقه برای آن در نطر گرفته می‌شود که می‌توانیم ان را بر روی هر مقدداری تنظیم کنیم.

bantime = 1d

findtime نیز متغیری است که بازه زمانی بین تعداد تلاش‌های ناموفق قبل از انسداد IP را مشخص می‌کند. برای مثال اگر شما تنظیم کنید که Fail2ban بعد از 5 بار تلاش ناموفق IP مورد نظر را مسدود کند، این اتفاق بایستی در بازه زمانی findtime اتفاق بیافتد.

findtime = 10m

maxretry در واقع تعداد تلاش‌های ناموفق یک آدرس IP قبل انسداد می‌باشد. این عدد به صورت پیشفرض 5 در نظر گرفته شده است که به نظر برای بسیاری از کاربران مناسب باشد.

maxretry = 5

تنظیمات Email برای اطلاع رسانی

Fail2ban علاوه بر مسدودسازی IP متخلف می‌تواند از طریق Email این موضوع را به مدیر سیستم اطلاع دهد. برای ارسال ایمیل نیاز است که بر روی سرور سرویس SMTP را نصب کنیم و همچنین تنظیمات مربوط به مسدود کردن ادرس‌های متخلف را از مقدار پیشفرض به مقدار زیر تغییر دهیم.

 [email protected]:~$ nano /etc/fail2ban/jail.local
 action = %(action_mw)s 

با تنظیم این مقدار، Fail2ban علاوه بر مسدودسازی IP، ایمیلی شامل اطلاعات IP مسدود شده را نیز برای مدیر سیستم ارسال می‌کند. اگر بخواهیم لاگ‌های مرتبط با IP نیز به همراه ایمیل ارسال شود از مقدار زیر را برای action تنظیم می‌کنیم.

 [email protected]:~$ nano /etc/fail2ban/jail.local
 (action_mwl)s 

تنظیمات مربوط به ایمیل فرستنده و گیرنده.

 [email protected]:~$ nano /etc/fail2ban/jail.local
 destemail = [email protected]
 sender = [email protected] 

Fail2ban jails

Fail2ban از مفهوم محدودیت برای انجام کار خود استفاده می‌کند. یک محدودیت شامل تعریف یک سرویس، فیلترها مربوط به آن سرویس و اقدامات مد نظر می‌باشد. برای اعمال محدویت‌ها لاگ‌های تولید شده توسط سرویس با الگوی مورد جستجو تطابق داشته می‌شوند و در صورت تطابق، این لاگ‌ها در یک بازه زمانی خاص شمارش می‌شوند. در صورتی که وضعیت تعریف شده برآورده شود، اقدام مورد انتظار اتخاذ می شود.

در فایل تنظیمات Fail2ban تعدادی محدودیت پیشفرض برای سرویس‌های مختلف وجود دارد که می توانیم در کنار آنها تنظیمات مد نظر خودمان را نیز تعریف کنیم. در فایل تنظیمات به صورت پیشفرض فقط محدودیت مربوط به ssh فعال می‌باشد. برای فعال کردن یک محدودیت کافیست فقط بعد از عنوان محدودیت از عبارت enabled = true استفاده کنیم.

[sshd]
enabled = true
maxretry = 3
findtime = 1d
bantime = 4w
ignoreip = 127.0.0.1/8 192.168.3.0/24

Fail2ban-Client

به صورت پیشفرض fail2ban دارای یک ابزار خط فرمان به نام fail2ban-client می‌باشد که از طریق آن می‌توان به صورت مستقیم با سرویس fail2ban تعامل کرد.

برای مشاهده کلیه گزینه‌های قابل استفاده دستور زیر را به همراه فلگ h در ترمینال اجرا کنید.

fail2ban -h

این ابزار می‌تواند برای مسدود سازی و از مسدود خارج کردن آدرس‌های IP، تغییر تنظیمات، رستارت کردن سرویس و سایر موارد استفاده شود. در زیرسه دستور برای چک کردن وضعیت سرویس، مسدود کردن و از مسدود خارج کردن یک آدرس IP آورده شده است.

چک کردن وضعیت jail

[email protected]:~$ sudo fail2ban-client status sshd

از مسدود خارج کردن آدرس IP

[email protected]:~$ sudo fail2ban-client set sshd unbanip 192.168.3.10

مسدود کردن آدرس IP

[email protected]:~$ sudo fail2ban-client set sshd banip 192.168.3.10
اشتراک گذاری:
برچسب ها: endpoint securitysystem securityubuntu20.04

دیدگاهتان را بنویسید لغو پاسخ

درباره ایرانشل

تیم ایرانشل با این هدف تشکیل شده است‌ تا بتوانند با کمک شما همراهان عزیز اقدامات مثبتی در جهت شفاف‌سازی نیازمندی‌های امنیتی، معرفی سرویس‌ها و راهکارهای امنیتی انجام دهد.

عضویت در خبرنامه

اطلاعات تماس
  • تهران - خیابان شریعتی - بالاتر از پل سیدخندان
  • 09125162976
  • [email protected]
شبکه‌های اجتماعی
کلیه حقوق این وب سایت متعلق به ایرانشل می‌باشد.
جستجو

جستجو با زدن Enter و بستن با زدن ESC