تنظیم Fail2Ban در لینوکس (بخش اول)

| دسته بندی: آموزش سرور مجازی لینوکس امنیت |
تنظیم Fail2Ban در لینوکس (بخش اول)

در آموزش‌های قبلی به نصب Fail2ban در Centos7 و همچنین نصب Fail2ban در دبیان 9 پرداختیم و حال قصد داریم با توجه به اینکه تنظیمات و پیکربندی این ابزار قدرتمند دارای نکات مهمی است به آموزش تنظیم Fail2Ban در لینوکس بپردازیم.

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

حال در ادامه با آموزش تنظیم Fail2Ban در لینوکس همراه ما باشید.

آموزش تنظیم Fail2Ban در لینوکس

نکته : در صورت نصب نبودن ابزار Fail2Ban ابتدا آن را از طریق آموزش‌های قبلی که منتشر شده است ، نصب نمایید.

فایل‌های کانفیگ Fail2Ban همانند اکثریت نرم‌افزارهای لینوکسی در دایرکتوری etc/ و با پسوند conf. یافت می‌شود.

اما Fail2ban برای ساختاری‌سازی بهتر پیشنهاد داده که فایل‌های Conf. را تغیر نداده و یک فایل با پسوند local. ایجاد نمایید. ساختار Fail2Ban به نحوی است که تنظیمات فایل‌های local. را بر فایل‌های conf. اولویت داده و بر همین اساس تنظیمات شما کاملاً اعمال خواهد شد.

حال در ادامه به توضیح فایل‌های مختلف و تنظیمات آن خواهیم پرداخت.

فایل fail2ban.conf

فایل اصلی تنظیمات و پیکربندی Fail2ban ، فایل Fail2ban.conf است که تمامی تنظیماتی چون ، مسیر ذخیره لاگ‌ها ، نوع عملکرد سرویس و ... در آن وجود دارد.

  • برای تغییر در این فایل ، ابتدا دستور زیر را وارد کرده تا یک کپی از آن با پسوند ایجاد نمایید و سپس تنظیمات مورد نظر را اعمال کنید.
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
  • با ویرایشگر مورد نظر خود فایل local را باز کنید.
vi /etc/fail2ban/fail2ban.local
  • پس از باز شدن این فایل ، مشاهده خواهید کرد که اکثریت تنظیمات به صورت پیش‌فرض بر روی آن انجام شده است و شما نیز می‌توانید به تغییر آنها بپردازید.

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

Loglevel : در این بخش شما می‌توانید نوع و میزان ذخیره‌سازی لاگ‌ها را مشخص کنید که عباراتی چون Critical ، Error ، Warning ، Notice ، Info و Debug می‌تواند قرار گیرد.

Logtarget : مسیر ذخیره سازی لاگ‌های این ابزار در آدرس var/log/fail2ban.log/ تنظیم شده است و شما نیز می‌توانید با تغییر مقدار این بخش ، مسیر لاگ مورد نظر خود را اضافه نمایید.

Socket : آدرس فایل Socket در این بش تنظیم می‌گردد.

Pidfile : آدرس فایل PID در این بخش تنظیم می‌گردد.

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

فایل jail.conf

مهمترین و یکی دیگر از فایل‌های پیکربندی Fail2Ban ، فایل Jail است که شما در آن تنظیمات اصلی نرم‌افزار مانند سرویس‌های مورد نظر ، مقدار زمان و شرایط بلاک کردن IP و ... را در این بخش می‌توانید انجام دهید.

  • ابتدا برای ایجاد یک فایل لوکال از فایل Jail دستور زیر را وارد نمایید.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • حال فایل را با یک ویرایشگر مورد نظر باز کنید.
vi /etc/fail2ban/jail.local

در ادامه به توضیح تنظیمات این فایل خواهیم پرداخت.

نکته مهم : در سیستم‌های جدید که از Systemd برای مدیریت سرویس‌ها استفاده می‌کنند مانند Centos 7 و یا Debian 9 باید در ابتدا سیستم backend را تنظیم کرده تا Fail2ban بتواند به کار خود ادامه دهد.

بنابراین در این فایل عبارت Backend را یافته و مقدار آن را به systemd تغییر دهید.

Backend=systemd

پس از تنظیم مدیریت سرویس ، حال به تنظیمات اصلی می‌پردازیم.

تنظیم سرویس در fail2ban

برای تنظیم یک سرویس ، همانند مثال در فایل اقدام نمایید ، به طور مثال سرویس sshd را در خط پایین فعال کرده‌ایم.

[sshd]
enabled = true

نمونه مثال بالا در فایل jail شما وجود دارد و تنها نیاز است آن را از حالت Comment خارج سازید و یا آن را به همین شکل وارد کنید.

در ادامه مطلب به تظنیم یک سرویس به صورت پیشرفته نیز خواهیم پرداخت.

تنظیم مقدار زمان بلاک شدن و تعداد دفعات تلاش برای لاگین

در فایل Jail.conf ، بخشی وجود دارد که مانند عبارات زیر را در آن خواهید یافت.

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
maxretry = 3

در این بخش شما می‌توانید سه قسمت bantime ، findtime ، maxretry را تنظیم نمایید.

Bantime : مدت زمانی که آدرس IP مهاجم بلاک شود که بر حسب ثانیه باید وارد شود.

findtime : حدفاصله تلاش یک مهاجم برای لاگین به سیستم که بر حسب ثانیه وارد می‌گردد.

maxretry : تعداد دفعاتی که مهاجم تلاش برای ورود به سیستم را دارد که مقدار آن با تعداد دفعات تلاش برابر است.

تنظیم آدرس IP سفید یا همان whitelist در Fail2ban

این بخش برای تنظیم آدرس IPهایی است شما در نظر دارید Fail2ban بر روی آنها هیچ واکنشی نشان ندهد.

به طور مثال اگر آدرس 192.168.1.1 را در این بخش وارد کنیم ، و از این آدرس هر تعداد تلاش برای ورود انجام شود ، Fail2Ban آن را بلاک نخواهد کرد.

روند وارد کردن لیست سفید بدین شکل است.

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8 80.70.120.36 192.168.1.0/24

در مثال بالا، تمام آدرس‌های وارد شده که به صورت یک تک IP و یا یک رنج وارد شده‌اند در لیست سفید قرار خواهند گرفت.

تنظیم پیشرفته یک سرویس در fail2ban

در ابتدای مطلب نمونه‌ای از یک سرویس را وارد کردیم و حال در این بخش به تنظیم یک سرویس به صورت پیشرفته می‌پردازیم.

تنظیمات برای یک سرویس به شکل پیشرفته همانند عبارات زیر است.

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

همانطور که مشاهده می‌کنید می‌توانید آدرس لاگ‌های این سرویس را به صورت مشخص تغییر دهید و یا حتی تعداد دفعات تلاش مهاجم بر روی این سرویس را مشخص کنید. همچنین شما قادر خواهید بود در صورت تغییر پورت یک سرویس ، پورت جدید را در این حالت وارد نمایید.

بدین ترتیب شما می‌توانید تنظیم Fail2Ban در لینوکس انجام داده و از آن نیز استفاده نمایید.

در آموزش‌های بعدی مرتبط به تنظیم سرویس ایمیل برای Fail2ban و سایر تنظیمات آن خواهیم پرداخت.

امیدواریم از آموزش تنظیم Fail2Ban در لینوکس استفاده لازم را برده باشید.

 کاربر گرامی شما می‌توانید سؤالات مربوط به این آموزش را در بخش کامنت‌ها عنوان کرده و در همین قسمت پاسخ خود را دریافت کنید.