centos7安装配置fail2ban及常规使用

常用的防暴力破解软件有 fail2ban、DenyHosts,但在使用过程中发现DenyHosts只支持python2,刚好把系统python版本升级到了python3,导致DenyHosts不可用,所以改用fail2ban了;如果不是python环境的影响,还是比较推荐DenyHosts的。

 

1. 安装:yum install -y iptables iptables-services fail2ban

2. 一些文件路径:

fail2ban的配置文件路径:/etc/fail2ban
fail2ban安装目录:/usr/share/fail2ban
日志文件:/var/log/fail2ban.log
达到阈值之后的执行的动作的配置文件: action.d/
包含所有的过滤规则:filter.d/

3. 修改配置文件:vim /etc/fail2ban/jail.d/jail.local

#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
[DEFAULT]
# 用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。
#ignoreip = 127.0.0.1/8
# 客户端主机被禁止的时长(默认单位为秒),-1为永久封禁
bantime  = -1
# 过滤的时长(秒)
findtime  = 10
# 匹配到的阈值(次数)
maxretry = 3
 
[ssh]
# 是否开启
enabled  = true
# 过滤规则
filter   = sshd
# port=ssh为默认协议端口22,如果更改了ssh服务的端口号,需要在这里设置对应的端口号,否则配置不生效
action   = iptables[name=SSH, port=ssh, protocol=tcp]
# 日志文件的路径
logpath  = /var/log/secure
# 匹配到的阈值(次数)
maxretry = 3

4. 启动fail2ban和iptables

systemctl   start   fail2ban
systemctl   start   iptables
systemctl   enable   fail2ban
systemctl   enable   iptables

5. 查看当前被禁止登陆的ip:fail2ban-client status ssh

 

6. fail2ban-client使用命令

start——启动fail2ban server和监狱
reload——重新加载配置文件
stop——暂停fail2ban和监狱
status——查看运行的监控服务数量和列表
set loglevel——设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel——获取当前日志的等级
set idle on|off——设置某个监控(监狱)的状态。
set addignoreip ——设置某个监控(监狱)可以忽略的ip
set delignoreip ——删除某个监控(监狱)可以忽略的ip
set banip ——将ip加入 监控(监狱)
set unbanip ——将ip从监控(监狱)移除

7. 移除

fail2ban-client   set  ssh  unbanip 1.1.1.1

8. 注意事项

测试过程中,发现只能封禁密码登录失败的,但密钥登录失败的却没有封禁。

封禁:sshd[11050]: Failed password for root from 8.xx.xx.xx port 50200 ssh2

不封禁:sshd[27624]: Failed publickey for root from 8.xx.xx.xx port 38844 ssh2: RSA SHA256:snxo/2xxxxx+WUxxxxxxxxxxxxxxxQ

 

posted @ 2022-11-15 10:56  chenjianwen  阅读(1599)  评论(0编辑  收藏  举报