为服务器SSH加上Fail2ban
前言
在查看CDN服务器的日志过程中,突然想去看ssh的日志,结果一看,总有很多服务器暴力破解,为此想给服务器加上Fail2ban保护SSH的想法(加上后发现也没多大用,如有问题请指出。)
环境
服务器系统:Debian 11
教程
更新及下载安装Fail2ban
分别执行以下指令
1 | apt update -y |
备份与修改Fail2ban配置文件
首先进入Fail2ban的目录
1 | cd /etc/fail2ban/ |
然后执行下方指令备份文件
1 | cp jail.conf jail.local |
然后就是编辑文件,这里我使用的是vi
1 | vi jail.local |
一般改的设置只有[DEFAULT]和[sshd]部分
注意:不是开头几个被#给注释的,而是分别在大约41行和279行!
这些为主要参数
“ignoreip”- 永远不会被禁止的IP地址白名单。他们拥有永久的“摆脱监狱”卡。本地主机的IP地址 (0.0.1)是在列表中默认情况下,其IPv6相当于(::1)。如果确认永远不应禁止的其它IP地址,请将它们添加到此列表中,并在每个IP地址之间留一个空格
“bantime”- 禁止IP地址的持续时间(“ m”代表分钟)。如果键入的值不带“ m”或“ h”(代表小时),则将其视为秒。值 -1将永久禁止IP地址。要非常小心,不要将自己的计算机给关了起来,这是非常有可能发生的低级错误。
“findtime” – 尝试失败的连接次数过多会导致IP地址被禁止的时间。
“maxretry”- “尝试失败次数过多”的数值。
但我们不修改这些,我们需要修改的是[sshd]
在下方添加
1 | #enabled 是启用 |
然后键盘上输入 :wq保存并退出
设置启用Fail2ban和启动Fail2ban
执行以下指令,分别启用和启动
1 | systemctl enable fail2ban |
检查Fail2ban运行状态
执行以下指令检查Fail2ban是否正常运行
1 | systemctl status fail2ban |
在Active后显示active (running),则代表Fail2ban正常运行
1 | [email protected]:/etc/fail2ban# systemctl status fail2ban |
执行以下指令检查Fail2ban的sshd规则是否正常运行
1 | fail2ban-client status sshd |
出现以下信息则为正常运行
1 | root fail2ban-client status sshd |
上面的Banned IP list为当前被封禁的IP列表
最后感谢您的阅读,如有问题请指出,谢谢。