همه سرورهایی که در اینترنت هستند در معرض حملات بدافزارها هستند. به عنوان مثال ، اگر شما در حال اجرای یک سرویس در یک شبکه عمومی هستید ، بدافزارها می توانند با استفاده از brute-force برای ورود به اکانت شما تلاش کنند. Fail2ban یک ابزار اپن سورس است که با نظارت بر گزارش های مربوط به فعالیت های مخرب ، به محافظت از دستگاه لینوکس در برابر بدافزارهای brute-force و سایر بدافزارها خودکار کمک می کند. همه ورودی های مطابق با الگوها شمارش می شوند و هنگامی که تعداد آنها به یک آستانه از پیش تعیین شده برسد ، Fail2ban IP بدافزار را با استفاده از فایروال سیستم برای مدت زمانی خاص بلاک می کند. با پایان دوره بلاک ، آدرس IP از لیست بلاک ها حذف می شود. در این مقاله با ما همراه باشید تا شما عزیزان را با نحوه نصب و کانفیگ Fail2ban در CentOS 8 آشنا کنیم.
بسته Fail2ban در مخازن پیش فرض CentOS 8 گنجانده شده است. برای نصب آن ، دستور زیر را به عنوان root یا user با امتیازات sudo وارد کنید:
sudo dnf install fail2ban
پس از اتمام نصب ، سرویس Fail2ban را فعال و راه اندازی کنید:
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban
fail2ban.service - Fail2Ban Service Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-09-10 12:53:45 UTC; 8s ago ...
در این مرحله ، شما Fail2Ban را روی سرور CentOS خود اجرا می کنید.
نصب پیش فرض Fail2ban دارای دو فایل کانفیگ ، /etc/fail2ban/jail.conf و /etc/fail2ban/jail.d/00-firewalld.conf است. این فایل ها نباید اصلاح شوند زیرا ممکن است هنگام به روزرسانی بسته ، رونویسی شوند. Fail2ban فایل های کانفیگ را به ترتیب زیر می خواند:
هر فایل .local تنظیمات را از فایل .conf عبور می دهد. ساده ترین راه برای کانفیگ Fail2ban این است که jail.conf را در jail.local کپی کرده و فایل .local را تغییر دهید. کاربران پیشرفته تر می توانند یک فایل کانفیگ .local را از ابتدا بسازند. فایل .local نیازی به همه تنظیمات مربوط به فایل .conf ندارد ، فقط مواردی را که می خواهید رد کنید ، شامل می شود. یک فایل کانفیگ .local از فایل پیش فرض jail.conf ایجاد کنید:
sudo cp /etc/fail2ban/jail.{conf,local}
برای شروع کانفیگ سرور Fail2ban باز شده ، فایل jail.local را با ویرایشگر متن خود باز کنید:
sudo nano /etc/fail2ban/jail.local
فایل شامل کامنت هایی است که می گوید هر گزینه کانفیگ چیست. در این مثال ، ما تنظیمات اساسی را تغییر خواهیم داد.
آدرس های IP ، محدوده های IP یا هاست هایی که می خواهید از بلاک شدن آنها جلوگیری شود ، می توانند به دستورالعمل ignoreip اضافه شوند. در اینجا باید آدرس IP رایانه local خود و سایر دستگاه هایی را که می خواهید در لیست سفید قرار دهید ، اضافه کنید. خطی را که با ignoreip شروع می شود ، کامنت گذاری نکنید و آدرس های IP خود را با فاصله جدا شده اضافه کنید:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
مقادیر گزینه های bantime ، findtime و maxretry زمان بلاک شدن و شرایط بلاک شدن را مشخص می کند. bantime مدت زمانی است که IP برای آن بلاک شده است. هنگامی که هیچ پسوندی تنظیم نشده باشد ، چند ثانیه پیش فرض آن است. به طور پیش فرض ، مقدار bantime روی ۱۰ دقیقه تنظیم شده است. به طور کلی ، اکثر کاربران می خواهند زمان بلاک شدن طولانی تر را تعیین کنند. مقدار را به دلخواه تغییر دهید:
bantime = 1d
برای بلاک کردن دائمی IP ، از یک عدد منفی استفاده کنید. findtime مدت زمان بین تعداد بد افزارها قبل از تعیین بلاک شدن است . به عنوان مثال ، اگر Fail2ban قرار است IP را پس از five failures بلاک کند ، این بدافزارها باید در طول مدت findtime رخ دهند.
findtime = 10m
maxretry تعداد بدافزارها قبل از بلاک شدن IP است. مقدار پیش فرض بر روی ۵ تنظیم شده است که باید برای اکثر کاربران خوب باشد.
maxretry = 5
Fail2ban می تواند هشدارهای ایمیل را هنگامی که IP بلاک شده است ارسال کند. برای دریافت ایمیل باید SMTP را روی سرور خود نصب کرده و عملکرد پیش فرض را که فقط IP را بلاک می کند ، همانطور که در زیر آورده شده است ، به ٪ (action_mw) s ، تغییر دهید :
action = %(action_mw)s
%(action_mw)s ، آی پی های بدافزار را بلاک کرده و با یک گزارش whois ایمیلی ارسال می کند. اگر می خواهید لاگ های مربوطه را در ایمیل وارد کنید ، آن را روی ٪ (action_mwl) s تنظیم کنید. همچنین می توانید آدرس های ارسال و دریافت ایمیل را تنظیم کنید:
destemail = admin@linuxize.com sender = root@linuxize.com
Fail2ban از مفهوم Jails استفاده می کند. Jails یک سرویس را توصیف می کند و شامل فیلترها و اقدامات است. ورودی های گزارش مطابق با الگوی جستجو شمارش می شوند و هنگامی که یک شرط از پیش تعیین شده برآورده شود ، اقدامات مربوطه اجرا می شوند. Fail2ban برای خدمات مختلف دارای تعدادی Jails است. همچنین می توانید تنظیمات Jails خود را ایجاد کنید. برای فعال کردن Jails باید enabled = true بعد از عنوان Jails اضافه کنید . مثال زیر نحوه فعال کردن sshd jail را نشان می دهد:
[sshd] enabled = true port = ssh logpath = %(sshd_log)s backend = %(sshd_backend)s
تنظیماتی را که در بخش قبل مورد بحث قرار دادیم ، می تواند در هر Jail تنظیم شود. به عنوان مثال:
/etc/fail2ban/jail.local
sudo systemctl restart fail2ban
Fail2ban با یک ابزار خط فرمان به نام fail2ban-client ارسال می شود که می توانید از آن برای تعامل با سرویس Fail2ban استفاده کنید. برای مشاهده همه گزینه های موجود در دستور fail2ban -client ، آن را با گزینه -h فراخوانی کنید:
fail2ban-client -h
از این ابزار می توان برای بلاک کردن / غیرفعال کردن آدرس های IP ، تغییر تنظیمات ، راه اندازی مجدد سرویس و موارد دیگر استفاده کرد. در اینجا چند مثال آورده شده است:
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip 23.34.45.56
sudo fail2ban-client set sshd banip 23.34.45.56
ما نحوه نصب و کانفیگ Fail2ban را در CentOS 8 به شما نشان دادیم. برای اطلاعات بیشتر در مورد کانفیگ Fail2ban ، به اسناد رسمی مراجعه کنید.
امیدواریم مطالب مورد پسند بوده و از آن بهره لازم را برده باشید. خوشحال میشویم نظرات و سوالات خود را در قسمت دیدگاه به اشتراک بگذارید و ما را در شتابان هاست همراهی کنید.😊