دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
امنیت
  • Folder icon closed Folder open iconCIA Triad چیست؟ آشنایی با سه اصل اساسی امنیت اطلاعات
  • Folder icon closed Folder open iconAttack Surface چیست؟ آشنایی با سطح حمله در امنیت سایبری
  • Folder icon closed Folder open iconThreat چیست؟ آشنایی با مفهوم تهدید در امنیت سایبری
  • Folder icon closed Folder open iconVulnerability چیست؟ آشنایی با آسیب‌پذیری در امنیت سایبری
  • Folder icon closed Folder open iconExploit چیست؟ آشنایی با مفهوم اکسپلویت در امنیت سایبری
  • Folder icon closed Folder open iconRisk چیست؟ آشنایی با مفهوم ریسک در امنیت سایبری
  • Folder icon closed Folder open iconCVE چیست؟ آشنایی با سیستم شماره‌گذاری آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconCVSS چیست؟ آشنایی با سیستم امتیازدهی آسیب‌پذیری‌های امنیتی
  • Folder icon closed Folder open iconبعد از خرید سرور مجازی لینوکس(VPS)، اولین کارهایی که باید انجام دهید
  • Folder icon closed Folder open iconآموزش تغییر Hostname سرور در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح Timezone و NTP در لینوکس
  • Folder icon closed Folder open iconآموزش بروزرسانی کامل سیستم‌عامل لینوکس همه توزیع ها
  • Folder icon closed Folder open iconآموزش ساخت کاربر جدید و حذف استفاده روزمره از Root در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم صحیح sudo در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم Banner ورود به SSH در لینوکس
  • Folder icon closed Folder open iconآموزش مدیریت Password Policy در لینوکس
  • Folder icon closed Folder open iconآموزش نصب و راه‌اندازی SSH Key Authentication در لینوکس
  • Folder icon closed Folder open iconآموزش غیرفعال کردن ورود مستقیم Root از طریق SSH
  • Folder icon closed Folder open iconتغییر پورت SSH؛ آیا واقعاً امنیت سرور را افزایش می‌دهد؟
  • Folder icon closed Folder open iconآموزش محدود کردن کاربران مجاز SSH در لینوکس
  • Folder icon closed Folder open iconآموزش محدود کردن دسترسی SSH بر اساس IP در لینوکس
  • Folder icon closed Folder open iconآموزش تنظیم LoginGraceTime در SSH؛ کاهش زمان انتظار برای احراز هویت
  • Folder icon closed Folder open iconآموزش تنظیم MaxAuthTries در SSH؛ محدود کردن تعداد تلاش‌های ورود ناموفق
  • Folder icon closed Folder open iconآموزش بررسی لاگ‌های SSH در لینوکس
  • Folder icon closed Folder open iconآموزش عیب‌یابی مشکلات SSH در لینوکس
  • Folder icon closed Folder open iconآموزش کامل UFW در لینوکس؛ راه‌اندازی، مدیریت و ایمن‌سازی فایروال سرور
  • Folder icon closed Folder open iconnftables چیست؟ آشنایی با فایروال نسل جدید لینوکس و جایگزین iptables
  • Folder icon closed Folder open iconآموزش کامل Firewalld در لینوکس
  • Folder icon closed Folder open iconآموزش کامل ConfigServer Security & Firewall (CSF)
  • Folder icon closed Folder open iconآموزش مشاهده Loginهای اخیر در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی پردازش‌های مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش بررسی Cron Jobهای مشکوک در لینوکس
  • Folder icon closed Folder open iconآموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی
  • Folder icon closed Folder open iconآموزش نصب RKHunter در لینوکس
  • Folder icon closed Folder open iconآموزش نصب Chkrootkit در لینوکس
  • Folder icon closed Folder open iconآموزش اسکن سرور با RKHunter و Chkrootkit
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و اسکن سرور با AIDE در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، پیکربندی و استفاده از Auditd در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، اسکن و تحلیل امنیت سرور با Lynis در لینوکس
  • Folder icon closed Folder open iconآموزش نصب، بروزرسانی و اسکن سرور با ClamAV در لینوکس
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Nginx
  • Folder icon closed Folder open iconآموزش Hardening وب‌سرور Apache
  • Folder icon closed Folder open iconآموزش Hardening PHP
  • Folder icon closed Folder open iconآموزش Hardening پایگاه داده MySQL
  • Folder icon closed Folder open iconآموزش Hardening سرویس Redis
  • Folder icon closed Folder open iconآموزش Hardening سرویس Docker
  • Folder icon closed Folder open iconآموزش Hardening سرویس FTP
امنیت

آموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی

آموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی

مقدمه

تقریباً تمام سرورهای متصل به اینترنت، از اولین لحظه راه‌اندازی، هدف اسکن‌های خودکار و حملات Brute Force قرار می‌گیرند. مهاجمان با استفاده از ربات‌ها، هزاران بار تلاش می‌کنند تا با حدس زدن رمز عبور سرویس‌هایی مانند SSH، FTP، ایمیل یا پنل‌های مدیریتی به سرور دسترسی پیدا کنند.

یکی از مؤثرترین ابزارها برای مقابله با این نوع حملات، Fail2Ban است.

Fail2Ban با بررسی لاگ‌های سیستم، رفتارهای مشکوک را شناسایی کرده و در صورت تکرار تلاش‌های ناموفق، آدرس IP مهاجم را برای مدت مشخصی مسدود می‌کند.

در این مقاله، نحوه نصب، پیکربندی، مدیریت و استفاده حرفه‌ای از Fail2Ban را بررسی خواهیم کرد.


Fail2Ban چیست؟

Fail2Ban یک ابزار امنیتی متن‌باز برای لینوکس است که با تحلیل فایل‌های لاگ، حملات Brute Force و سایر رفتارهای مشکوک را شناسایی کرده و به‌صورت خودکار IP مهاجم را مسدود می‌کند.

این ابزار از سرویس‌های مختلفی مانند SSH، Apache، Nginx، FTP، Postfix، Dovecot و بسیاری از نرم‌افزارهای دیگر پشتیبانی می‌کند.

آموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی

Fail2Ban چگونه کار می‌کند؟

روند عملکرد Fail2Ban بسیار ساده است:

  1. لاگ‌های سرویس‌ها را بررسی می‌کند.
  2. تعداد خطاهای احراز هویت یا رویدادهای مشکوک را می‌شمارد.
  3. اگر تعداد خطاها از مقدار تعیین‌شده بیشتر شود، IP مهاجم را مسدود می‌کند.
  4. پس از پایان مدت Ban، در صورت تنظیم، IP دوباره آزاد می‌شود.

Jail چیست؟

در Fail2Ban هر مجموعه تنظیمات برای یک سرویس، Jail نام دارد.

برای مثال:

  • sshd
  • nginx-http-auth
  • apache-auth
  • postfix
  • dovecot

هر Jail دارای تنظیمات مستقل مانند مدت Ban، تعداد تلاش مجاز و فایل لاگ مخصوص خود است.


نصب Fail2Ban

Ubuntu و Debian

sudo apt update
sudo apt install fail2ban -y

AlmaLinux، Rocky Linux و RHEL

sudo dnf install fail2ban -y

فعال کردن سرویس

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

بررسی وضعیت سرویس

sudo systemctl status fail2ban

بررسی نسخه

fail2ban-client --version

فایل‌های تنظیمات

فایل اصلی:

/etc/fail2ban/jail.conf

نکته مهم: این فایل را مستقیماً ویرایش نکنید، زیرا در بروزرسانی‌ها ممکن است بازنویسی شود.

بهتر است فایل زیر را ایجاد کنید:

/etc/fail2ban/jail.local

تمام تنظیمات سفارشی را در این فایل قرار دهید.


ساخت فایل jail.local

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

یا یک فایل جدید ایجاد کنید:

sudo nano /etc/fail2ban/jail.local

فعال کردن Jail مربوط به SSH

[sshd]
enabled = true

مهم‌ترین تنظیمات

bantime

مدت زمان مسدودسازی IP

مثال:

bantime = 1h

findtime

بازه زمانی بررسی تلاش‌ها

مثال:

findtime = 10m

maxretry

حداکثر تعداد تلاش ناموفق

مثال:

maxretry = 5

در این مثال، اگر یک IP طی ۱۰ دقیقه، ۵ بار ورود ناموفق داشته باشد، به مدت یک ساعت مسدود می‌شود.


ignoreip

برای مستثنی کردن IPهای مورد اعتماد:

ignoreip = 127.0.0.1/8 192.168.1.10

اگر IP مدیریت خود را دارید، حتماً آن را در این بخش اضافه کنید.


راه‌اندازی مجدد Fail2Ban

پس از هر تغییر:

sudo systemctl restart fail2ban

مشاهده Jailهای فعال

sudo fail2ban-client status

نمونه خروجی:

Status
|- Number of jail: 2
`- Jail list: sshd, nginx-http-auth

مشاهده وضعیت یک Jail

برای مثال SSH:

sudo fail2ban-client status sshd

نمونه خروجی:

Currently failed: 2
Total failed: 35
Currently banned: 1
Banned IP list: 198.51.100.15

مشاهده IPهای مسدود شده

sudo fail2ban-client status sshd

در بخش:

Banned IP list

تمام IPهای مسدود شده نمایش داده می‌شوند.


آزاد کردن یک IP

اگر اشتباهی IP را Ban کرده‌اید:

sudo fail2ban-client set sshd unbanip 198.51.100.15

Ban کردن دستی یک IP

sudo fail2ban-client set sshd banip 198.51.100.15

بررسی لاگ Fail2Ban

لاگ اصلی:

/var/log/fail2ban.log

برای مشاهده زنده:

sudo tail -f /var/log/fail2ban.log

فعال کردن Jail برای Nginx

نمونه:

[nginx-http-auth]
enabled = true

فعال کردن Jail برای Apache

[apache-auth]
enabled = true

فعال کردن Jail برای Postfix

[postfix]
enabled = true

فعال کردن Jail برای Dovecot

[dovecot]
enabled = true

Jailهای موجود

برای مشاهده Jailهای پیش‌فرض:

ls /etc/fail2ban/filter.d

اضافه کردن Jail سفارشی

در صورت نیاز می‌توانید برای نرم‌افزارهای اختصاصی نیز Filter و Jail ایجاد کنید.

این قابلیت برای محافظت از پنل‌های مدیریتی، APIها و برنامه‌های داخلی بسیار کاربردی است.


تفاوت Ban و Block

  • Ban معمولاً موقتی است و پس از پایان bantime برداشته می‌شود.
  • Block در فایروال معمولاً دائمی است، مگر اینکه به‌صورت دستی حذف شود.

تفاوت Fail2Ban و CSF

Fail2BanCSF
تحلیل لاگ‌هافایروال کامل
Ban خودکارBan + Firewall
مناسب همه توزیع‌هامحبوب در هاستینگ
سبک و سادهامکانات امنیتی بیشتر

تفاوت Fail2Ban و Imunify360

Fail2BanImunify360
فقط تحلیل لاگراهکار امنیتی کامل
Brute Force Protectionچندلایه
بدون WAFدارای WAF
بدون Malware Scannerدارای Malware Scanner
رایگانتجاری

چه زمانی از Fail2Ban استفاده کنیم؟

Fail2Ban انتخاب مناسبی است اگر:

  • سرور Ubuntu یا Debian دارید.
  • فقط به محافظت از SSH نیاز دارید.
  • سرور شخصی یا VPS کوچک دارید.
  • به یک راهکار سبک و رایگان نیاز دارید.
آموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی

بهترین تنظیم پیشنهادی برای SSH

[sshd]
enabled = true

bantime = 1h

findtime = 10m

maxretry = 5

این تنظیمات برای اکثر سرورها مناسب هستند.


اشتباهات رایج

برخی از خطاهای متداول عبارت‌اند از:

  • ویرایش مستقیم jail.conf
  • فراموش کردن Restart سرویس
  • اضافه نکردن IP مدیریت به ignoreip
  • تعیین maxretry بسیار پایین
  • بررسی نکردن فایل‌های لاگ

بهترین روش‌ها

برای افزایش امنیت:

  • از jail.local استفاده کنید.
  • IPهای مدیریتی را در ignoreip قرار دهید.
  • لاگ‌های Fail2Ban را به‌صورت دوره‌ای بررسی کنید.
  • فقط Jailهای موردنیاز را فعال کنید.
  • در کنار Fail2Ban از SSH Key Authentication و فایروال نیز استفاده کنید.

چک‌لیست

پس از راه‌اندازی Fail2Ban، موارد زیر را بررسی کنید:

  • سرویس فعال است.
  • Jail مربوط به SSH فعال است.
  • فایل jail.local ایجاد شده است.
  • مقدار bantime تنظیم شده است.
  • مقدار findtime تنظیم شده است.
  • مقدار maxretry تنظیم شده است.
  • IP مدیریت در ignoreip قرار دارد.
  • لاگ‌های Fail2Ban بدون خطا هستند.

جمع‌بندی

Fail2Ban یکی از مؤثرترین ابزارهای رایگان برای محافظت از سرورهای لینوکسی در برابر حملات Brute Force است. این ابزار با تحلیل لاگ‌های سیستم و سرویس‌ها، رفتارهای مشکوک را شناسایی کرده و به‌صورت خودکار آدرس IP مهاجم را برای مدت مشخصی مسدود می‌کند.

اگرچه Fail2Ban جایگزین فایروال یا سایر ابزارهای امنیتی نیست، اما در کنار راهکارهایی مانند UFW، Firewalld، SSH Key Authentication، غیرفعال کردن Root Login و محدود کردن دسترسی SSH بر اساس IP، می‌تواند نقش مهمی در افزایش امنیت سرور ایفا کند. برای سرورهای عمومی و VPSها، فعال‌سازی حداقل Jail مربوط به SSH تقریباً یک اقدام ضروری محسوب می‌شود.

کیان پور

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • آموزش کامل nslookup
  • آموزش نصب Nextcloud با Docker Compose
  • عیب‌یابی تفاوت نتیجه DNS بین سرور و کامپیوتر شخصی
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش کامل Fail2Ban در لینوکس؛ نصب و راه‌اندازی

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام