回复评论 |
安装完毕的Fail2ban的配置文件在/etc/fail2ban下,0.8版本有两个配置文件fail2ban.conf和jail.conf两个,前者里面是一些fail2ban本身的参数设置,后者是具体保护服务的配置。 默认fail2ban.conf里面就三个参数,而且都有注释。 mllm © 2004-2008, allblue #默认日志的级别 loglevel = 3 #日志的目的 logtarget = /var/log/fail2ban.log #socket的位置 socket = /tmp/fail2ban.sock Parsed in 0 seconds jail.conf配置里是fail2ban所保护的具体服务的配置,这里以SSH来讲。 mllm © 2004-2008, allblue #忽略IP,在这个清单里的IP不会被屏蔽 ignoreip = 127.0.0.1 172.13.14.15 #屏蔽时间 bantime = 600 #发现时间,在此期间内重试超过规定次数,会激活fail2ban findtime = 600 #尝试次数 maxretry = 3 #日志修改检测机制 backend = auto [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 Parsed in 0.002 seconds 对jail.conf进行一定的设置后,就可以使用fail2ban了。 启动fail2ban mllm © 2004-2008, allblue /etc/init.d/fail2ban start Parsed in 0 seconds 启动之后,只要符合filter所定义的正则式规则的日志项出现,就会执行相应的action。由于0.8源码树采用客户机/服务器的模式,因此可以很方便的查询fail2ban的执行情况。比方所,要查询刚才定义的“ssh-iptables”段的情况,只要执行 mllm © 2004-2008, allblue fail2ban-client status ssh-iptables Parsed in 0 seconds 会打印出结果 mllm © 2004-2008, allblue Status for the jail: ssh-iptables |- filter | |- Currently failed: 0 | `- Total failed: 5 `- action |- Currently banned: 1 | `- IP list: 192.168.210.21 `- Total banned: 1 Parsed in 0.001 seconds fail2ban-client也可以直接定义运行中的fail2ban参数 比如增加屏蔽时间为一天 mllm © 2004-2008, allblue fail2ban-client set ssh-iptables bantime 86400 Parsed in 0 seconds 重新读入配置文件 mllm © 2004-2008, allblue fail2ban-client reload Parsed in 0 seconds 其它还有很多用法,可以不带参数执行fail2ban-client查看更多选项。 因为fail2ban的框架,所以可以执行修改filter或者action来满足自己的特殊需要,比如我希望改变fail2ban默认的iptables规则插入方式,那么我就可以到action.d目录下,找到希望修改的action,这里的例子是iptables.conf 默认actionstart的iptables规则有一条是 mllm © 2004-2008, allblue iptables -I INPUT -p <protocol> --dport <port> -j fail2ban-<name> Parsed in 0 seconds 这样就把fail2ban的规则插到INPUT链的最前面,而我希望自己写的一条iptables -A INPUT -p ALL -s 1.2.3.4/32 -j ACCEPT一直作为第一条规则从而使自己的IP作为信任IP不受防火墙后面规则的限制。那么就要修改fail2ban的启动规则,把上面那条改为 mllm © 2004-2008, allblue iptables -I INPUT 2 -p <protocol> --dport <port> -j fail2ban-<name> Parsed in 0 seconds 这样fail2ban就会把自己的规则作为INPUT链的第二条规则插入,而不影响第一条。 这里只是一个很简单的例子,你可以根据自己的规则,对action做更多的修改。 而在filter.d目录里就是一些日志的正则式匹配规则,系统自带了一些常见软件的匹配,如sshd,apache,postfix,vsftpd,pure-ftpd等等。来看看sshd的规则,就能了解这些filter应该怎么写,你就可以用fail2ban来保护更多自己的服务。 sshd.conf的内容 mllm © 2004-2008, allblue [Definition] failregex = Authentication failure for .* from <HOST> Failed [-/\w]+ for .* from <HOST> ROOT LOGIN REFUSED .* FROM <HOST> [iI](?:llegal|nvalid) user .* from <HOST> ignoreregex = Parsed in 0.001 seconds 可以看到,每行一则正则式,对应各种错误认证,如果你的sshd版本错误认证日志项不太一样,可以修改这里的,或者加入更多。 |
|||
最新评论
2 周 4 天 前
18 周 6 小时 前
19 周 22 小时 前
37 周 1 天 前
37 周 1 天 前
48 周 1 天 前
1 年 6 周 前
1 年 8 周 前
1 年 11 周 前
1 年 12 周 前