yum安装:
yum install fail2ban
fail2ban的配置文件路径:/etc/fail2ban
fail2ban安装目录:/usr/share/fail2ban
日志文件:/var/log/fail2ban.log
达到阈值之后的执行的动作的配置文件: action.d/
包含所有的过滤规则:filter.d/
2. 配置fail2ban并实现防暴力破解
官方的文档写到:在配置时,我们应该避免修改由fail2ban安装创建的文件,我们应该去编写具有.local扩展名的新文件。在.local新文件里配置的内容会覆盖jail.conf内容里相同的值。
当我们的配置发生改变了我们可以使用 fail2ban-client reload ,来加载新的配置。
2.1配置fail2ban
编辑配置文件 jail.local 并实现防暴力破解
vim /etc/fail2ban/jail.d/jail.local
文件内容:
#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。 [DEFAULT] # 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。 ignoreip = 127.0.0.1/8 # 客户端主机被禁止的时长(默认单位为秒) bantime = 3600 # 过滤的时长(秒) findtime = 600 # 匹配到的阈值(次数) maxretry = 3 [ssh-iptables] # 是否开启 enabled = true # 过滤规则 filter = sshd # 动作 action = iptables[name=SSH, port=ssh, protocol=tcp] # 日志文件的路径 logpath = /var/log/secure # 匹配到的阈值(次数) maxretry = 3
在这里需要注意一点就是:我们上面的action设置的时候,port=ssh,如果我们更改了sshd服务的端口号,我能需要在这里设置对应的端口号,否则配置不生效。
2.2 防暴力破解测试
在上面配置好了之后,我们需要让配置生效:
fail2ban-client reload
测试:故意输入错误密码3次,再进行登录时,会拒绝登录
[root@121~]# ssh 192.168.1.121
root@192.168.1.121's password:
Permission denied, please try again.
root@192.168.1.121's password:
Permission denied, please try again.
root@192.168.1.121's password:
Permission denied (publickey,password).
[root@121~]# ssh 192.168.1.121
ssh: connect to host 192.168.1.121 port 22: Connection refused
我们可以查看当前被禁止登陆的ip:
[root@121]# fail2ban-client status ssh-iptables
Status for the jail: ssh-iptables
|- filter
| |- File list: /var/log/secure #日志文件路径
| |- Currently failed: 0 #当前失败次数
| `- Total failed: 3 #总失败次数
`- action
|- Currently banned: 1 #当前禁止的ip数量
| `- IP list: 192.168.1.112 #当前禁止的ip
`- Total banned: 1 #禁止的ip总数
3. fail2ban常用的命令
3.1 启动暂停查看状态
systemctl start/restart/stop/status fail2ban
3.2 fail2ban-client
start启动fail2ban server和监狱
reload重新加载配置文件
stop暂停fail2ban和监狱
status查看运行的监控服务数量和列表
set loglevel 设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel获取当前日志的等级
set <JAIL> idle on|off 设置某个监控(监狱)的状态。
set <JAIL> addignoreip <IP>设置某个监控(监狱)可以忽略的ip
set <JAIL> delignoreip <IP>删除某个监控(监狱)可以忽略的ip
set <JAIL> banip <IP>将ip加入 监控(监狱)
set <JAIL> unbanip <IP>将ip从监控(监狱)移除
//启动
systemctl start fail2ban
//重启
systemctl restart fail2ban
//开机重启
systemctl enable fail2ban
//查看状态
systemctl status fail2ban.service
//查看配置状态
fail2ban-client status
//默认配置
vim /etc/fail2ban/jail.conf
//查看攻击者
fail2ban-client status sshd
//确保防火墙已开起
systemctl enable firewalld
systemctl start firewalld
//更新 SELinux 策略
yum update -y selinux-policy*