本文最后更新于 155 天前,其中的信息可能已经有所发展或是发生改变。
前言
在查看CDN服务器的日志过程中,突然想去看ssh的日志,结果一看,总有很多服务器暴力破解,为此想给服务器加上Fail2ban保护SSH的想法(加上后发现也没多大用,如有问题请指出。)
环境
服务器系统:Debian 12
教程
更新:2024年7月9日
更新及下载安装Fail2ban
分别执行以下指令
apt update
apt install fail2ban -y
备份Fail2ban配置文件
首先进入Fail2ban的目录
cd /etc/fail2ban/
现在我们可以看到目前目录下是这样的
然后执行下方指令复制一遍配置文件,这样则会优先使用jail.local的配置
cp jail.conf jail.local
配置sshd
然后就是编辑文件,这里我使用的是vi
vi jail.local
我们往下面找到JAILS
区[sshd]
部分(大约在第275行)
修改为以下配置
[sshd]
ignoreip = 127.0.0.1/8 # 白名单
enabled = true # 规则启用
filter = sshd # 过滤规则(一般不变)
port = 22 # 端口
maxretry = 2 # 最大尝试次数
findtime = 300 # 发现周期 单位s
bantime = 600 # 封禁时间,单位s。-1为永久封禁
banaction = iptables-multiport # 禁用方式
#logpath = /var/log/auth.log # SSH 登陆日志位置
backend = systemd # 获取 SSH 文件修改的后端(设置了这个那么 logpath 将会无效)
然后键盘上输入 :wq保存并退出
设置启用Fail2ban和启动Fail2ban
执行以下指令,分别启用和启动
systemctl enable fail2ban
systemctl start fail2ban
检查Fail2ban运行状态
执行以下指令检查Fail2ban是否正常运行
systemctl status fail2ban
在Active后显示active (running),则代表Fail2ban正常运行
root@u:/etc/fail2ban# systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-01-04 10:14:58 CST; 7h ago
Docs: man:fail2ban(1)
Process: 451 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
Main PID: 460 (fail2ban-server)
Tasks: 5 (limit: 1150)
Memory: 18.4M
CPU: 19.749s
CGroup: /system.slice/fail2ban.service
└─460 /usr/bin/python3 /usr/bin/fail2ban-server -xf start
Jan 04 10:14:58 u systemd[1]: Starting Fail2Ban Service...
Jan 04 10:14:58 u systemd[1]: Started Fail2Ban Service.
Jan 04 10:15:00 u fail2ban-server[460]: Server ready
执行以下指令检查Fail2ban的sshd规则是否正常运行
fail2ban-client status sshd
出现以下信息则为正常运行
root@u:/etc/fail2ban# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 2
| |- Total failed: 5
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 1
`- Banned IP list:
上面的Banned IP list为当前被封禁的IP列表
Debian12 安装F2B后无法正常启动问题
这个是因为不再使用/var/log/auth.log记录日志,可以通过
apt install rsyslog
或配置backend = systemd
来解决,上方配置已经使用第二种方法。
最后感谢您的阅读,如有问题请指出,谢谢。