fail2ban

前提

fail2ban可以独立运行,但如果没有防火墙的话,它只会将非法IP保存到自己的数据库中,而不会进行实际拦截。所以要实现拦截的话,需要系统启用防火墙,例如,FreeBSD的ipfw。

启用ipfw

编辑 /etc/rc.conf ,加入以下行:

ipfw的默认规则是拒绝任何数据通行,除非设定排除的条目。

既然使用fail2ban来管理防火墙,就不需要采取如此严格的策略,所以使用以下设置将ipfw的规则改为允许任何数据通行。编辑 /boot/loader.conf ,加入以下行:

重启系统,运行ipfw命令,查看当前ipfw运行状态:

此时系统是开放的(最后一句),任何人(IP)都可以进来,安全性完全由系统本身保障,比如强壮的密码或正确的登录限制。

安装 fail2ban

使用以下命令安装fail2ban:

并修改 /etc/rc.conf 文件,加入以下行,以使得开机自动启动fail2ban:

 

配置

fail2ban的配置文件在 /usrl/local/etc/fail2ban/ 目录中。

fail2ban特别警示不要修改 fail2ban.confjail.conf 等默认安装的配置文件,因为软件更新可能会冲掉用户自定义的选项。

我们在 /usr/local/etc/fail2ban/jail.d/ 目录中创建一个 sshd.conf 文件,内容如下:

过滤器filter位于 /usr/local/etc/fail2ban/filter.d/ 目录中,此目录中有很多预定义的过滤器,可以根据需要选用,本例选用的是sshd.conf配置(在以上配置语句中不需要写文件的扩展名),不需要修改此文件。

动作action位于 /usr/local/etc/fail2ban/action.d/ 目录中,本例选用的是ipfw.conf配置。但需要修改以下行:

完成以上设置后,启动fail2ban服务即可。

可以在 /usr/local/etc/fail2ban/jail.d/ 中创建一个含有 [DEFAULT]的段,设置特定的全局设定,例如: