fail2ban 是一款免费的开源系统日志分析工具,它不仅能够对流行的网络服务器进行快速监控,还能支持系统对日志进行快速查询。用户可以自定义配置日志错误报告等,包括对相应屏蔽动作的执行。以下是 fail2ban 的主要功能:
软件特点
支持多种服务项目: 包括 sshd、apache、qmail、proftpd、sasl 等。
支持多种动作: 例如 iptables、tcp-wrapper、shorewall(iptables 第三方工具)、邮件通知等。
通配符支持: 在 logpath 选项中支持使用通配符。
依赖 Gamin: Gamin 是用于监控文件和目录是否变更的服务工具。
安装依赖: 需要安装 python、iptables、tcp-wrapper、shorewall、Gamin。如果需要发送邮件,还需要安装 postfix/sendmail。
如何使用
下载 rpmforge: rpmforge 中包含许多新的 rpm 包。
# wget URL 此URL请使用拓展阅读文章中的详细地址更换
安装 rpmforge:
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm
使用 yum 安装 fail2ban:
# yum install fail2ban
配置文件:
安装结束后,fail2ban 的配置文件位于 /etc/fail2ban
目录下,包括 fail2ban.conf
日志设置文档和 jail.conf
阻止设置文档。/etc/fail2ban/filter.d
目录包含实际阻止内容设置。
fail2ban.conf
主要参数包括:
# 默认设置日志的等级
loglevel = 3
# 日志的目的地
logtarget = /var/log/fail2ban.log
# socket 的位置
socket = /tmp/fail2ban.sock
jail.conf
配置包括:
# 忽视 IP,在这个列表里的 IP 不会被屏蔽
ignoreip = 127.0.0.1 172.13.14.15
# 屏蔽时间
bantime = 600
# 发现时间,在这段时间内尝试超过要求频率,会激活 fail2ban
findtime = 600
# 尝试频率
maxretry = 3
# 日志改变检验机制
backend = auto
对于 SSH 服务,配置如下:
[ssh-iptables]
# 激活
enabled = true
# filter 的名称,在 filter.d 目录下
filter = sshd
# 所运用的工作,按照名称可在 action.d 目录下寻找
action = iptables[name=SSH, port=ssh, protocol=tcp]
mail-whois[name=SSH, dest=root]
# 目的分析日志
logpath = /var/log/secure
# 覆盖全局尝试频率
maxretry = 5
# 覆盖全局屏蔽时间
bantime = 3600
运行 fail2ban:
# service fail2ban start
运行后只要符合 filter 所理解的正则表达式标准的日志项发生,就会执行对应的 action。