آموزش fail2ban | سرکوب حملات brute force
اگر شما هم روی سرورهای لینوکسی کار کرده باشید، حتماً دیدید که لاگها پر از تلاشهای ناموفق ورود به SSH یا سرویسهای دیگهست. بیشتر این تلاشها حملات Brute Force هستن؛ هکرها با میلیونها پسورد مختلف امتحان میکنن تا وارد سرور بشن. اینجاست که Fail2ban به کمک ما میاد.
Fail2ban چیست و چجوری از حملات brute force جلوگیری میکنه؟
اگه بخوام خیلی ساده بگم fail2ban یک ابزار امنیتیه که با زبان پایتون نوشته شده و با سرویس هایی که از احراز هویت استفاده میکنند کار میکنه. fail2ban لاگ های سیستم مثل فایل var/log/auth.log/ بررسی میکنه و اگه جایی تلاش های ناموفق زیادی از یه ip ببینه با بروز رسانیه فایروال اون آیپی رو موقت یا دائم بلاک میکنه.
میدونیم که بیشتر این تلاش ها برای احراز هویت بخاطر حملات brute force هستش پس بهتره که برای سرویس های مهمه سرورمون حتما fail2ban رو کانفیگ کنیم.
آموزش نصب fail2ban روی ubuntu
خب اینجا کار سختی نداریم طبق روال لینوکسی ها و کلیشهی اجباری ریپازیتوری سرور و آپدیت میکنیم و بعدش دستور نصب fail2ban رو می زنیم.
apt update
apt install fail2ban -y
بعد از نصب به طور اتومات سرویس ما فعال میشه ولی کار از محکم کاری عیب نمیکنه پس حتما سرویس رو چک میکنیم.
systemctl status fail2ban
کانفیگ fail2ban (ساخت jail)
حالا میخوایم سرویس ssh سیستم رو با این ابزار در برابر حملات ایمن سازی کنیم.
من هرکدوم از jail هایی که میسازم رو جداگونه تعریف میکنم اینجوری به نظرم مرتب تره. برای اینکار یه دایرکتوری به اسم jail.d در مسیر /etc/fail2ban/درست میکنیم و jail مورد نظر خودمون رو برای سرویس ssh می سازیم.
mkdir /etc/fail2ban/jail.d
nano /etc/fail2ban/jail.d/ssh.local
حالا اصل کار ما شروع میشه، اینجا مشخص میکنیم چه سرویسی با تنظیمات دلخواه ما برای مقابه با مهاجم آماده بشه.
[sshd]
enabled = true
port = ssh
banaction = iptables-multiport
maxretry = 4
bantime = 3600
- banaction : مشخص میکنیم که چجوری مهاجم رو بلاک کنیم. مثلا اینجا گفتیم که کل پورت ها رو روی مهاجم ببند.
- maxretry : تعداد تلاش هایی که بعد از اون مهاجم بلاک میشه.
- bantime : مدت زمانی که مهاجم بلاک میشه.
یادمون نره که برای اینکه کانفیگمون اعمال بشه سرویس fail2ban رو ری استارت کنیم.
systemctl restart fail2ban
بررسی وضعیت fail2ban
خب حالا ما یه jail ساختیم و تقریبا کارمون تموم شده، برای اینکه ببینیم کدوک jail فعاله دستور زیر رو میزنیم.
fail2ban-client status
حالا ما فرض میگیریم که یه مهاجم رو تونستیم بلاک کنیم برای دیدن ip کسایی که بلاک شدن :
fail2ban-client banned
حتما یه سری به صفحهی گیت هاب پروژهی fail2ban بزنید لینکشو براتون اینجا میذارم:
https://github.com/fail2ban/fail2ban
این پست قراره به روز شه تا کامل ترین آموزش fail2ban رو در ژکلاد داشته باشیم.

بدون دیدگاه