建议在食用本篇之前有一定的其他博主写的相关教程基础,我写的不够全面
根据官方教程安装fail2ban
通过git clone将fail2ban库克隆下来
git clone https://github.com/fail2ban/fail2ban.git
然后根据官方教程,进入克隆下来的文件夹内
使用指令:
python3 setup.py install
因为我的服务器内置python指令指向python2,我安装python3,而且想安装在python3的库中,因而以python3指令执行.
注意,非root用户请以sudo方式执行,随后文章中出现的指令并不会携带sudo,出现权限不足等情况导致无法执行命令请使用sudo或root账户。
例:sudo python3 setup.py install
另:本软件亦可以通过pip和apt方式安装,这里不再赘述。这两种方法安装后fail2ban是自动启动的
测试是否安装成功
安装后可通过fail2ban-client -h测试是否安装成功
随后执行fail2ban-client status,发现提示fail2ban未启动
因为通过此方案安装的fail2ban成功安装后并不会作为服务启动,甚至此时并不是一个服务。因而需要按照官方教程执行
1 |
|
方能作为服务并启动,此时执行fail2ban-client status会打印:
Status
|- Number of jail: 0
`- Jail list:
(实际上你也可以用fail2ban-client version获取fail2ban版本,不过实际上两者作用只是用于检测其是否已经作为服务并启动)
关闭fail2ban服务:使用 service fail2ban stop
进行fail2ban简单的配置
切换至fail2ban配置文件目录
cd /etc/fail2ban/
相比于jail.conf
,fail2ban在启动时会优先读取jail.local
中的配置,因而请输入 cp jail.conf jail.local
将jail.conf
复制为jail.local
在jail.local
#
# JAILS
#
注释后添加一个配置组:
1 |
|
保存,
随后去filter.d/
文件夹,新建一个名为nginx-cc.conf
的配置文件,写入
1 |
|
保存文件
failregex
是一项用来通过所写的正则表达式来匹配对应的请求,进而ban掉IP的参数。其中No 'host' group in 'xxx'
在写完正则后可用fail2ban-regex xxx/access.log '正则表达式'
(切记正则表达式为单引号包裹)或者fail2ban-regex xxx/access.log xxx/xxx.conf
的方式验证正则表达式是否可用。
随后重启fail2ban服务。即可正常使用。
引用