fail2ban学习分享

介绍

官方有这么一句话:Fail2ban scans log files (e.g. /var/log/apache/error_log) and bans IPs

简单的说fail2ban监控日志文件,通过正则表达式匹配出异常的操作。发现异常操作,就把对应的ip禁止掉(通过iptables或者ipset禁止ip访问)。

iptable截图:

iptable截图

配置信息

fail2ban有2个重要的目录和1个配置文件。

目录filter.d:存放匹配日志文件的各种正则表达式,如下:

filter.d目录下的文件
sshd.conf文件的里正则表达式

目录action.d:存放匹配到异常后,执行什么动作的配置文件,如下:

action.d目录下的配置文件
iptable.conf的配置文件(在发现异常后,把异常ip地址放入iptable里,拒绝这个ip地址访问服务器)

配置文件jail.local:指定监控哪些日志,使用哪个正则表达式,执行什么动作。如下:

jail.local配置文件的内容

enabled:是否启用。可选值false,true

filter:指定/etc/fail2ban/filter.d/目录下的正则表达式文件,如filter = sshd则是指定/etc/fail2ban/filter.d/sshd.conf。

action:指定执行的动作,具体动作文件在/etc/fail2ban/action.d目录下。如action=iptable,则是引用etc/fail2ban/action.d/iptable.conf配置文件

logpath:指定监控日志的路径。

maxretry:执行action,要求匹配的次数。

bantime:非法 IP 被屏蔽时间(秒),-1 代表永远封锁

findtime:设置多长时间(秒)内超过 maxretry 限制次数即被封锁

测试工具

有些时候,我们要自己编写正则表达式,就需要一个工具去测试正则表达式是否正确。这个工具名字叫:fail2ban-regex

例子:fail2ban-regex -v ./nginx.log /etc/fail2ban/filter.d/nginx-http-access.conf

fail2ban-regex会输出很详细的内容,包含ip地址、匹配到几条日志、没有匹配到几条日志等等。具体如下图:

参考

http://www.fail2ban.org/wiki/index.php/Main_Page

此条目发表在IT分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

*