Fail2ban یک برنامه open source جهت پیشگیری از نفوذ است که به زبان python نوشته شده است.Fail2ban با چک کردن لاگ فایل هایی نظیر var/log/pwdfail/ ، var/log/auth.log/ ، /var/log/secure و … آیپی هایی را که بیش از اندازه معمول عملیات ورود ناموفق داشته اند را با استفاده از دستورات iptables مسدود می کند.
در این پست به شما نحوه نصب و کانفیگ Fail2ban را در سیستم عامل های Redhat ، CentOS و Fedora آموزش داده می شود.
نصب Fail2ban
Fail2ban بصورت پیش فرض در لینوکس وجود ندارد و برای نصب آن نیاز به افزودن RPMForge repository دارید.
نصب Fail2ban بسیار ساده بوده و تنها نیاز به استفاده از دستور yum زیر دارد.
# yum install fail2ban
کانفیگ Fail2ban
فایل اصلی کانفیگ Fail2Ban در مسیر /etc/fail2ban/jail.conf می باشد که باید در حالت ویرایش آن را باز کنید
# vi /etc/fail2ban/jail.conf
در این حالت شما یک سری قوانین را در بخش پیش فرض فایل می بینید که می توانید در صورت نیاز آنها را شخصی سازی کنید :
[DEFAULT] # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not # ban a host which matches an address in this list. Several addresses can be # defined using space separator. ignoreip = 127.0.0.1 # "bantime" is the number of seconds that a host is banned. bantime = 600 # A host is banned if it has generated "maxretry" during the last "findtime" # seconds. findtime = 600 # "maxretry" is the number of failures before a host get banned. maxretry = 3
برخی از دستورات مهم این فایل بصورت زیر است :
Ignoreip : هر آیپی که در این قسمت معرفی شود هیچ گاه بلاک یا مسدود نخواهد شد . شما می توانید لیستی از ایپی ها را با جداکننده space به fail2ban معرفی کنید .
Bantime : مقدار زمانی که آیپی در iptables بسته یا مسدود خواهد شد . این زمان بر اساس ثانیه است و میزان پیش فرض آن 600 ثانیه معادل 10 دقیقه می باشد و بهتر است بر حسب نیاز این زمان را از یک ساعت (3600) تا یک روز (86400)افزایش دهید.
Maxretry : مقدار حداکثر تعداد تلاش های ناموفق برای بلاک کردن آیپی
Findtime : محدودیت زمانی برای وارد شدن به سیستم قبل از بلاک شدن آیپی . اگر در طول این مدت تعداد maxretry تلاش ناموفق روی دهد آیپی بلاک خواهد شد و این زمان هم بر اساس ثانیه است.
کانفیگ بخش ssh-iptables :
کانفیگ این بخش بصورت زیر است و بصورت پیش فرض فعال است و نیازی به تغییر ندارد.
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath = /var/log/secure
maxretry = 5
بعد از کانفیگ fail2ban باید سرویس آن را مجددا راه انداززی کنید .
# chkconfig --level 23 fail2ban on # service fail2ban start
در این مرحله سرویس fail2ban فعال بوده و برای تست می توانید با استفاده از یک آیپی دیگر( غیر از آیپی خودتان) چند لاگین ناموفق در سرویس ssh انجام داده و iptables را چک کنید.
# iptables -L
در این صورت بخش زیر به iptables افزوده می شود
Chain fail2ban-SSH (1 references) target prot opt source destination DROP all -- 15.13.14.40 anywhere RETURN all -- anywhere anywhere
همچنین برای نمایش لاگین های ناموفق می توانید از دستور زیر استفاده کنید
# cat /var/log/secure | grep 'Failed password' | sort | uniq -c
باز کردن آیپی
و برای باز کردن آیپی های بلاک شده توسط fail2ban از دستور زیر استفاده کنید:
# iptables -D fail2ban-ssh 1
در صورتی که هر نوع مشکلی پیدا کردید حتما با ما تماس بگیرید .
موفق و پیروز باشید
عنوان : آموزش نصب و راه اندازی Fail2ban برای امنیت ssh, امنیت ssh , امنیت سرور ,امنیت سرور لینوکس,نصب fail2ban , کانفیگ fail2bam
امن نت – AMNNET آموزش امنیت سایت ، سرور و شبکه های کامپیوتری