پیشنهاد شگفت‌انگیز پلتفرم ارائه خدمات سرور و هاستینگ و زیرساخت هوش مصنوعی
خانه / پایگاه دانش / سرور ابری و لینوکس

آموزش نصب و پیکربندی فایروال UFW و Fail2ban در اوبونتو برای دفع حملات Brute-Force

دسته‌بندی: سرور ابری و لینوکس مدت زمان مطالعه: 3 دقیقه 385 بازدید فایروال, UFW, Fail2ban, امنیت سرور, اوبونتو, دبیان, ضد هک

هر سرور متصل به اینترنت روزانه مورد هدف هزاران تلاش ورود غیرمجاز (Brute-force Attacks) توسط بات‌نت‌ها قرار می‌گیرد. ترکیب دو ابزار قدرتمند UFW (Uncomplicated Firewall) و Fail2ban در سرورهای ابری کات شات، دیواری نفوذناپذیر در برابر این حملات ایجاد می‌کند. در این راهنما فرآیند نصب، کانفیگ رول‌ها و مسدودسازی خودکار IPهای مهاجم را مرور می‌کنیم.

۱. راه‌اندازی فایروال UFW در اوبونتو ۲۲.۰۴ و ۲۴.۰۴

ابزار UFW به صورت پیش‌فرض در توزیع‌های اوبونتو نصب است. ابتدا بسته‌های سیستم را بروزرسانی کرده و وضعیت فایروال را بررسی می‌کنیم:

sudo apt update && sudo apt upgrade -y
sudo ufw status

تنظیم سیاست‌های پیش‌فرض فایروال

بهترین رویه امنیتی این است که کلیه ترافیک‌های ورودی به صورت پیش‌فرض مسدود و ترافیک‌های خروجی مجاز باشند:

sudo ufw default deny incoming
sudo ufw default allow outgoing

مجاز کردن پورت‌های حیاتی وب و SSH

قبل از فعال‌سازی فایروال، پورت‌های سرویس‌های فعال خود را باز کنید:

sudo ufw allow 22/tcp comment "SSH Default"
sudo ufw allow 80/tcp comment "HTTP Web"
sudo ufw allow 443/tcp comment "HTTPS Web"
sudo ufw enable

۲. نصب و فعال‌سازی سرویس امنیتی Fail2ban

ابزار Fail2ban لاگ‌های احراز هویت سرور را به صورت بلادرنگ مانیتور کرده و در صورت مشاهده تلاش‌های ناموفق مکرر (مانند ۳ بار اشتباه وارد کردن پسورد)، آدرس IP مهاجم را با استفاده از قوانین فایروال بلاک (Ban) می‌کند.

sudo apt install fail2ban -y

ایجاد فایل پیکربندی سفارشی (jail.local)

هرگز فایل اصلی jail.conf را تغییر ندهید؛ زیرا با آپدیت بسته بازنویسی می‌شود. یک نسخه اختصاصی ایجاد کنید:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

تنظیمات کلیدی زیر را در بخش [DEFAULT] اعمال کنید:

[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 4
ignoreip = 127.0.0.1/8 ::1
  • bantime = 1h: مدت زمان مسدودی IP مهاجم (۱ ساعت).
  • findtime = 10m: بازه زمانی بررسی تلاش‌های ناموفق (۱۰ دقیقه).
  • maxretry = 4: حداکثر تعداد خطای مجاز قبل از بن شدن.

۳. فعال‌سازی مانیتورینگ سرویس SSH

در انتهای همان فایل، بخش [sshd] را فعال کنید:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

سپس سرویس Fail2ban را ری‌استارت و فعال نمایید:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

۴. بررسی وضعیت و آنبن (Unban) کردن IPها

برای مشاهده لیست IPهای بن‌شده در بخش SSH دستور زیر را اجرا کنید:

sudo fail2ban-client status sshd

در صورتی که IP خودتان اشتباهاً مسدود شد، با دستور زیر آن را آزاد کنید:

sudo fail2ban-client set sshd unbanip 1.2.3.4
آیا این مقاله برای حل مشکل شما مفید بود؟

مقالات مرتبط در همین دسته‌بندی

سرور ابری و لینوکس

راهنمای جامع اتصال به سرور ابری لینوکس با SSH و ایمن‌سازی پورت پیش‌فرض

مطالعه راهنما
سرور ابری و لینوکس

راهنمای مدیریت دیسک و پارتیشن‌بندی NVMe در لینوکس با LVM بدون قطعی سرویس

مطالعه راهنما