CentOS 7 安装 Fail2ban 配合 Firewalld 防止 SSH 爆破
前记
前些天 部署了 TeamSpeak 服务端在本机上 嘛
决定做点事来尽量防止 SSH 爆破
而 CentOS 7 自带的是 Firewalld 那就用他搭配 Fail2ban 吧
启用 Firewalld
默认是不会关闭的 像我这样这样再次启用 启用之前需要把开放的端口告诉 Firewalld
下面以开放 tcp22 端口为示例
1 | firewall-cmd --zone=public --add-port=22/tcp --permanent |
设置完成后重新加载配置
1 | firewall-cmd --reload |
查看已放行端口
1 | firewall-cmd --zone=public --list-ports |
安装 Fail2ban
1 | yum -y install epel-release |
配置 Fail2ban
安装完成后 Fail2ban 的配置文件的路径为
1 | /etc/fail2ban |
在此目录下新建jail.local
来配置 Fail2ban
1 | [DEFAULT] |
其中的配置项为:
- ignoreip:IP 白名单,白名单中的 IP 不会屏蔽,可填写多个以(,)分隔
- bantime:屏蔽时间,单位为秒(s)
- findtime:时间范围
- maxretry:最大次数
- banaction:屏蔽 IP 所使用的方法,上面使用 firewalld 屏蔽端口
- [sshd]:名称,可以随便填写
- filter:规则名称,必须填写位于 filter.d 目录里面的规则,sshd 是 fail2ban 内置规则
- port:对应的端口
- action:采取的行动
- logpath:需要监视的日志路径
上面的配置意思是如果同一个 IP 在 10 分钟内连续超过 5 次错误 则使用 Firewalld 将他 IP ban 了
修改完后重新启动 Fail2ban
1 | systemctl start fail2ban |
后记
其实 Fail2ban 还有其他很神奇的用处
欢迎大家讨论