به نام خدا
با عرض سلام در پست های قبلی در مورد بسته امنیتی fail2ban مقالاتی در این سایت منتشر شده است.
اگر شما در سطح اینترنت در مورد ضعف های fail2ban سرچ نمایید یکی از مهم ترین ضعف ها در مقالات منتشر شده این می باشد که از IPv6 یا همان آی پی ورژن شش پشتیبانی نمی کند در حالی که این بسته از نسخه v0.10 به بعد آی پی ورژن شش را نیز ساپورت می نماید!
در سیستم عامل centos 6 ، centos 7 و centos 8 اگر شما به صورت اتوماتیک این ابزار را نصب نمایید v0.9 نصب خواهد شد بنابر این IPv6 ساپورت نخواهد شد. اما طریقه حل این مشکل به این صورت است که شما آخرین ورژن fail2ban را به صورت دستی یا manual نصب نمایید که کار سخت و پیچیده ای نمی باشد در ادامه مطلب نحوه نصب آخرین ورژن fail2ban را به شما آموزش خواهیم داد.
ابتدا با دستور زیر سیستم عامل سنتوس خود را آپدیت نمایید.
sudo yum update
*لازم است اگر قبلا fail2ban را نصب کرده اید آن را پاک نمایید!*
پیش نیاز های ضروری را با دستور زیر نصب نمایید البته معمولا به صورت پیشفرض در اکثر سرور های سنتوس این دو بسته نصب شده اند!
sudo yum install -y git python systemd-python
با اجرای دستور زیر فایل های مورد نظر را از گیت هاب به سرور خود انتقال دهید
git clone https://github.com/fail2ban/fail2ban.git
با دستور زیر وارد پوشه fail2ban شوید.
cd fail2ban
با زدن دستور زیر fail2ban به صورت اتوماتیک در سیستم عامل شما نصب خواهد شد!
sudo python setup.py install
با این دستور fail2ban خود را به صورت سرویس نصب نخواهد کرد پس لازم است با انجام دادن دو مرحله زیر fail2ban را به سیستم شناسایی نماییم.
cp files/redhat-initd
/etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
cp build/fail2ban.service /etc/systemd/system/fail2ban.service
برای اعمال تغییرات systemd را ریست نمایید.
systemctl daemon-reload
با زدن دستورات زیر fail2ban را اجرا نمایید.
systemctl enable fail2ban systemctl start fail2ban
fail2ban-client version
fail2ban-client status
دقت نمایید از این به بعد لازم است فایل های jail خودرا در مسیر /etc/fail2ban/jail.d/ ذخیره نمایید و backend را نیز تعریف نمایید برای فهم بیشتر به مثال زیر دقت نمایید.
vi /etc/fail2ban/jail.d/sshd.local
شما با ویرایشگر vi فایل sshd.local را باز نموده اید لازم است در این ویرایشگر با فشردن دکمه i قفل اولیه ویرایشگر را باز نماییم.
نمونه دستور زیر را در ویرایشگر وارد نمایید.
[sshd]
enabled = true
port = 0:65000
logpath = %(sshd_log)s
maxretry = 1
bantime = 8640000
backend = auto
تغییرات را ذخیره نمایید و خارج شوید اگر با نحوه انجام این کار آشنایی ندارید ابتدا کلید Esc صفحه کلید پس از آن با فشردن دکمه : که روی صفحه کلید فارسی حرف "ک" می باشد wq را وارد نمایید و خارج شوید.
اگر دقت نمایید در آخرین خط backend = auto تعریف شده است وجود این خط برای همه jail ها الزامی است.
پس از ساخت هر فایل jail با زدن دستور زیر fail2ban را ریست نمایید.
fail2ban-client restart
امیدوارم همه مراحل بالا را به دقت انجام داده باشید با زدن آخرین دستور اگر به شما اخطار داد اخطار را پیگیری و در اینترنت سرچ نمایید البته قاعدتا نباید هیچ اخطاری بدهد!
خطای احتمالی می تواند پیدا نکردن logpath باشد مخصوصا در سیستم عامل های خانگی که به سرور متصل نیستند از این خط دستور استفاده نمایید. logpath = /var/log/secure مراحل نصب کامل می باشد در صورت هرگونه خطا فایل jail خودرا به دقت بررسی نمایید
جهت اطمینان دوباره دستور زیر را در ترمینال وارد نمایید.
fail2ban-client status
اگر دریافتی شما مشابه دریافتی زیر است شما به درستی تمام مراحل کار را انجام داده اید!
Status |- Number of jail: 1 `- Jail list: sshd