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

 به احتمال بسیار زیاد با بررسی لاگ های سرور شما هم با حجم زیادی از حملات brute force و یا انواع exploitها برخورد کرده اید و حالا تصمیم گرفتید که باید هر چه زودتر روی امنیت سرور لینوکسی خودتان کار کنید.

با استفاده از برنامه‌های تشخیص و جلوگیری از حملات (intrusion prevention) همچون Fail2ban می‌توانید با شناسایی حملات از طریق فایل‌های لاگ نسبت به مسدودسازی آی پی مهاجم توسط فایروال اقدام کنید.

پیشنهاد مدیر سرور: نصب فایروال csf بر روی لینوکس و جلوگیری از حملات هکرها

در این آموزش به طور کامل با نحوه نصب Fail2ban و کانفیگ امنیتی آن بر روی سرورهای لینوکسی جهت جلوگیری از حملات brute force آشنا خواهید شد.

 

پیش‌نیازهای نصب Fail2ban:

Fail2ban با زبان برنامه‌نویسی پایتون نوشته شده و تنها چیزی که باید بر روی سرور نصب باشد نرم‌افزار پایتون است.

برای مسدود کردن دسترسی هکر و ایمیل به مدیر باید فایروال و sendmail بر روی سرور لینوکسی نصب باشند.

 

آموزش نصب Fail2ban بر روی لینوکس

 

۱- نصب Fail2ban بر روی CentOS/RHEL 7

نحوه نصب بسیار آسان و از طریق مخزن لینوکس به راحتی قابل انجام است ابتدا مخزن را آپدیت سپس رپوزیتوری Epel را فعال می‌کنیم و در انتها با دستور سوم نصب fail2ban را تکمیل می‌کنیم.

yum update
yum install epel-release
yum install fail2ban

 

۲- نصب Fail2ban بر روی Debian/Ubuntu

نحوه کار در تمامی توزیع‌ها یکسان است با این تفاوت که دستور فقط در هر توزیع کمی تفاوت دارد.

apt-get update && apt-get upgrade -y
apt-get install fail2ban

برای اطلاع از وقایع اتفاق افتاده بر روی سرور لینوکسی می‌توانیم با نصب sendmail توسط دستورات لینوکس که در ادامه قرار دادم به محض عملکرد fail2ban در ایمیل خود از آن مطلع شوید.

yum install sendmail                   [On CentOS/RHEL]
apt-get install sendmail-bin sendmail  [On Debian/Ubuntu]

برای استارت و فعال‌سازی سرویس‌های fail2ban و sendmail دستورات زیر را به ترتیب در ترمینال وارد کنید.

systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail

 

نحوه کانفیگ Fail2ban در لینوکس

بعد از نصب Fail2ban می‌توانید با فایل کانفیگی که در مسیر /etc/fail2ban/ قرار دارد این سرویس را مدیریت کنید.

البته فایل‌هایی با پسوند local. هم در این مسیر قرار دارند که از نوشته شدن به صورت مستقیم بر روی فایل‌های کانفیگ جلوگیری می‌کنند تا در صورت آپدیت سرویس Fail2ban مشکلی برای آن رخ ندهد.

برای شروع ما با دستور زیر از فایل کانفیگ یک کپی در همان مسیر با پسوند local. ایجاد می‌کنیم.

cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

حالا می‌توانید این فایل را به طور مستقیم با یک ادیتور همانند nano ویرایش کنید و پارامترهای آن را تغییر دهید. موارد همچون Loglevel,Logtarget، سوکت و pidfile را می‌توان کنترل کرد.

یکی از مهم‌ترین فایل‌ها که با نصب Fail2ban می‌توانید توسط آن سرویس‌های تحت کنترل را مدیریت کنید فایل jail.local می‌باشد.

همان‌طور که قبل‌تر گفتیم برای جلوگیری از بروز مشکل بعد از آپدیت fail2ban ما هر تغییر را درون فایل‌های local. اعمال می‌کنیم.

توسط دستور زیر یک کپی از این فایل با پسوند local. ایجاد می‌کنیم.

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

اگر از توزیع centos و یا fedora استفاده می‌کنید باید پارامتر backend را از حالت auto به system تغییر دهید.

این آموزش مال شماست :  آپدیت لینوکس centos به صورت سریع

فعال کردن backend در fail2banاگر از سیستم‌های دبیان بیس استفاده می‌کنید نیازی به این تغییر نیست هر چند آن‌ها هم از systemd استفاده می‌کنند.

کنترل بر روی سرویس ssh بر روی توزیع‌های Debian و Ubuntu به صورت اتوماتیک انجام می‌شود ولی برای centos نیاز است پارامتر زیر را به حالت فعال دربیاورید.

[sshd]enabled = true

بعد از مسدود شدن دسترسی هکر توسط ۳ پارامتر bantime,findtime و maxretry می‌توانید کنترل‌هایی روی زمان بلاک شدن کاربر لحاظ کنید.

bantime: توسط این پارامتر می‌توانید مدت‌زمانی که IP فرد مهاجم در حالت مسدود قرار خواهد گرفت را تعیین کنید.

findtime: توسط این گزینه می‌توانیم مشخص کنیم بعد از چه مدت‌زمانی کاربر اگر بیشتر از حد تعریف شده اقدام به ورود اطلاعات حساب و حمله از طریق brute force نمود دسترسی آن مسدود شود.

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

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

ignoreip = 127.0.0.1/8  ::1

 

دریافت ایمیل هشدار توسط Fail2ban

برای دریافت ایمیل از وقایع اتفاق افتاده باید در فایل jail.local پارامترهای زیر را کنترل کنید.

destemail: در این پارامتر ایمیل خودتان را وارد کنید.

sendername: نام ارسال‌کننده‌ ایمیل توسط این پارامتر نمایش داده خواهد شد.

sender: ایمیلی که fail2ban از آن برای ارسال ایمیل استفاده خواهد کرد.

برای دریافت ایمیل از fail2ban باید پارامتر زیر را:

Action = %(action_)s

با یکی از پارامترهایی که در ادامه قرار دادیم جایگزین کنید.

action = %(action_mw)s
action = %(action_mwl)s

گزینه اول بعد از مسدود کردن دسترسی، با ایمیل اطلاعات whois کاربر را هم ارسال می‌کند.

پارامتر دوم علاوه عملکرد پارامتر اول، هر اطلاعاتی که از کاربر درون فایل لاگ باشد را نیز ارسال خواهد کرد.

 

تنظیمات اضافی در فایل کانفیگ jail سرویس fail2ban

برای فعال‌سازی jail هر سرویس درون فایل کانفیگ باید این بخش به حالت فعال درآید.

[jail_to_enable]
. . .
enabled = true

به جای jail_to_enable باید نام سرویس را وارد کنید. برای کنترل بر روی سرویس ssh از بلاک کد زیر استفاده می‌کنیم.

[sshd] 
port = ssh
logpath = %(sshd_log)s

همچنین با فعال‌سازی filter شما می‌توانید از اتفاقاتی که مشکوک به حملات هکرها هستند fail2ban را آگاه کنید.

فیلترها در مسیر /etc/fail2ban/filter.d/ قرار دارند که می‌توانید آن‌ها را مشاهده کنید. درون فایل sshd.conf در همین مسیر با قرار دادن فیلتر به شکل زیر می‌توانید آن را برای ssh فعال کنید.

filter = sshd

استفاده از fail2ban-client

این سرویس یک client کنترل به شما می‌دهد که توسط آن می‌توانید پارامترها را کنترل کنید. برای دریافت اطلاعات بیشتر دستور زیر را در ترمینال وارد کنید.

man fail2ban-client

به‌طور مثال برای مشاهده وضعیت fail2ban دستور زیر را می‌توانید استفاده کنید.

fail2ban-client status

اگر برای یک jail خاص بخواهید وضعیت را مشاهده کنید دستور زیر به کار شما خواهد آمد.

fail2ban-client status sshd

خوب نصب Fail2ban و همچنین کانفیگ اون به پایان رسید امیدوارم از این سیستم قدرتمند برای کانفیگ سرور در جهت امن سازی استفاده کنید و دسترسی هکرها را تا حد قابل قبولی مسدود کنید.

حسین محمدپور

با علاقه زیادی که به مباحث تخصصی امنیت سرور داشتم از 8 سال پیش کار خود را در این زمینه شروع کردم و طی این مدت مدیر 2 تیم امنیتی بزرگ ایرانی بودم و حالا با 4 سال سابقه در زمینه مباحث مدیریت سرور و میزبانی وب، سایت مدیر سرور را راه اندازی کردم تا بتوانم به علاقه مندان و مشتاقان این حوزه تخصصی کمک کنم.

نوشته های مشابه

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

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

افزایش ترافیک سایت تا ۶۰۰% فقط در ۷ روز

تکنیک های جدید سئو در سال 98
تکنیک‌های کارآمدی که در سایت مدیر سرور آزموده شده‌اند
دنلود ویدیو
نگران نباشید، ایمیل مزاحم ارسال نمی کنیم
close-link