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

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

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

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

 

پیش‌نیازهای نصب 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 تغییر دهید.

فعال کردن backend در fail2ban - آموزش نصب 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 و همچنین کانفیگ اون به پایان رسید امیدوارم از این سیستم قدرتمند برای کانفیگ سرور در جهت امن سازی استفاده کنید و دسترسی هکرها را تا حد قابل قبولی مسدود کنید.

آیا این مطلب برای شما مفید بود؟

میانگین امتیاز ۵ / ۵. تعداد آرا: ۱۵

اشتراک در
اطلاع از
guest

0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها

فرم ثبت نام در مسابقه فتح پرچم

برای شرکت در مسابقه باید با اطلاعات صحیح عضو شوید
ثبت نام در مسابقه
close-link