fail2ban

آموزش 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 رو در ژکلاد داشته باشیم.

امیر محمد امیریمشاهده نوشته ها

Avatar photo

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

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *