• Home / امنیت سرور / نصب و تنظیم…

نصب و تنظیم Fail2Ban

امنیت سرور یکی از مهم‌ترین بخش‌های مدیریت هاستینگ و نگهداری VPS است. حتی اگر وب‌سایت شما تازه راه‌اندازی شده باشد، از همان روزهای اول ربات‌ها و اسکریپت‌ها شروع به تست کردن ورود به سرور می‌کنند؛ مخصوصاً روی SSH. Fail2Ban یکی از ابزارهای کاربردی و سبک در لینوکس است که با بررسی لاگ‌ها، تلاش‌های مشکوک (مثل brute-force) را تشخیص می‌دهد و IP مهاجم را برای یک مدت مشخص مسدود می‌کند. نتیجه‌اش این است که فشار حمله کمتر می‌شود و ریسک دسترسی غیرمجاز پایین می‌آید.

Fail2Ban چیست و چه کاری انجام می‌دهد

Fail2Ban سرویس‌های مختلف را زیر نظر می‌گیرد (مثل SSH، وب‌سرور، FTP و …). اگر در یک بازه زمانی تعداد مشخصی تلاش ناموفق یا الگوی مشکوک دیده شود، Fail2Ban با کمک فایروال سیستم، IP را بلاک می‌کند. شما می‌توانید تعیین کنید چند بار خطا مجاز است، در چه بازه‌ای بررسی انجام شود و مدت زمان بلاک چقدر باشد.

نصب Fail2Ban روی Ubuntu و Debian

ابتدا سیستم را آپدیت کنید
sudo apt update && sudo apt upgrade -y

سپس Fail2Ban را نصب کنید
sudo apt install fail2ban -y

سرویس را فعال و اجرا کنید
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

نصب Fail2Ban روی CentOS / RHEL

در بعضی نسخه‌ها ابتدا EPEL لازم است
sudo yum install epel-release -y

نصب Fail2Ban
sudo yum install fail2ban -y

فعال‌سازی و اجرا
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

ساخت فایل تنظیمات امن (جلوگیری از بازنویسی بعد از آپدیت)

به‌جای تغییر مستقیم jail.conf بهتر است jail.local بسازید
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

حالا فایل را باز کنید
sudo nano /etc/fail2ban/jail.local

تنظیم Fail2Ban برای محافظت از SSH

داخل jail.local بخش sshd را پیدا کنید یا این بخش را اضافه کنید (اگر وجود داشت، فقط مقدارها را تنظیم کنید)

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 600

توضیح سریع تنظیم‌ها

enabled یعنی این قانون فعال باشد
maxretry تعداد تلاش ناموفق مجاز قبل از بلاک شدن است
findtime بازه زمانی بررسی تلاش‌هاست (برحسب ثانیه)
bantime مدت زمانی است که IP بلاک می‌ماند (برحسب ثانیه)
logpath مسیر لاگ احراز هویت است (در Ubuntu/Debian معمولاً همین است؛ در برخی سیستم‌ها ممکن است متفاوت باشد)

بعد از اعمال تغییرات، سرویس را ریستارت کنید
sudo systemctl restart fail2ban

بررسی وضعیت Fail2Ban و مشاهده IPهای بلاک‌شده

وضعیت کلی سرویس
sudo fail2ban-client status

وضعیت jail مربوط به SSH
sudo fail2ban-client status sshd

دیدن لاگ Fail2Ban برای بررسی دقیق‌تر
tail -f /var/log/fail2ban.log

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

اگر از VPS برای میزبانی چند سایت استفاده می‌کنید، Fail2Ban یک لایه مهم امنیتی است اما به‌تنهایی کافی نیست. ترکیب Fail2Ban با تنظیمات درست SSH (مثل غیرفعال کردن ورود با پسورد و استفاده از کلید SSH)، به‌روزرسانی مرتب سیستم، محدودسازی پورت‌ها و سیاست‌های فایروال، امنیت سرور را چند برابر بهتر می‌کند.

همچنین اگر سرور شما روی Hetzner است و پرداخت‌های ارزی برای شارژ یا مدیریت سرویس‌ها دارید، ما پرداخت‌های Hetzner را بدون کارمزد و با قیمت کاملاً رقابتی به یورو در سریع‌ترین زمان انجام می‌دهیم.

جمع‌بندی

Fail2Ban یکی از ابزارهای ضروری برای افزایش امنیت سرور در محیط‌های هاستینگ و VPS است. با چند تنظیم ساده می‌توانید از حملات brute-force روی SSH جلوگیری کنید، فشار ترافیک مخرب را کاهش دهید و کنترل بهتری روی تلاش‌های ورود مشکوک داشته باشید. اگر بخواهید، می‌توانم همین مطلب را برای Nginx یا Apache هم با jailهای آماده و تنظیم‌های پیشنهادی تکمیل کنم.

Write a Comment

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