侧边栏壁纸
  • 累计撰写 14 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

使用Fail2Ban封禁SSH爆破IP

AlanM
2024-01-23 / 0 评论 / 0 点赞 / 21 阅读 / 0 字
温馨提示:
本文最后更新于2024-01-23,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

安装Fail2Ban

Fail2Ban是一个用于保护服务器免受恶意攻击的开源工具。它通过监视系统日志文件并根据预定义的规则来自动禁止恶意行为的IP地址。Fail2Ban 已经与大部分 Linux 发行版打包在一起了,所以只需使用你的发行包版的包管理器来安装它。

#Debian / Ubuntu
sudo apt install fail2ban

#CentOS/RHEL
sudo yum install fail2ban

配置 Fail2Ban

Fail2Ban 将所有配置文件保存在 /etc/fail2ban/jail.conf 中。它包含一组预定义的过滤器,而且会随着软件更新而被重置,所以建议在同一目录下创建一个名为 jail.local 的新配置文件,再进行修改。

touch /etc/fail2ban/jail.local
  • 配置模版
#DEFAULT-START
[DEFAULT]
bantime = 600
findtime = 300
maxretry = 5
banaction = firewallcmd-ipset
action = %(action_mwl)s
#DEFAULT-END

[sshd]
ignoreip = 127.0.0.1/8               # ip白名单
enabled = true
filter = sshd
port = 22                            # 端口
maxretry = 2                         # 最大尝试次数
findtime = 300                       # 发现周期 单位s
bantime = -1                         # 封禁时间,单位s。-1为永久封禁
action = %(action_mwl)s
banaction = ufw                      # 禁用方式,ubuntu填写ufw
logpath = /var/log/auth.log          # SSH登录日志路径,ubuntu为/var/log/auth.log
  • 重启Fail2Ban服务
systemctl restart fail2ban.service

Fail2Ban其他常用命令

  • 查询Fail2Ban状态(jail规则)
fail2ban-client status

#示例
Status
|- Number of jail:      1   #jail的数量
`- Jail list:   sshd        #现有jail的名称,可供后续查询具体jail的详情
  • 查询某个jail的统计信息
sudo fail2ban-client status sshd 

#示例
Status for the jail: sshd                     #jail名称
|- Filter                                     
|  |- Currently failed: 0                     #当前时间窗口内失败次数
|  |- Total failed:     0                     #总失败次数
|  `- File list:        /var/log/auth.log     #日志文件路径
`- Actions
   |- Currently banned: 816                   #当前时间窗口内被ban次数
   |- Total banned:     1445                  #ban掉的ip总数
   `- Banned IP list:                         #被ban的ip列表
  • 解禁某个IP
fail2ban-client set sshd unbanip 192.168.1.1
0

评论区