跳到主要内容
  1. 文章/

为服务器SSH加上Fail2ban

·974 字·2 分钟

前言 #

在查看CDN服务器的日志过程中,突然想去看ssh的日志,结果一看,总有很多服务器暴力破解,为此想给服务器加上Fail2ban保护SSH的想法(加上后发现也没多大用,如有问题请指出。)

环境 #

服务器系统:Debian 11

教程 #

更新及下载安装Fail2ban #

分别执行以下指令

apt update -y
apt upgrade -y
apt install fail2ban -y

备份与修改Fail2ban配置文件 #

首先进入Fail2ban的目录

cd /etc/fail2ban/

然后执行下方指令备份文件

cp jail.conf jail.local

然后就是编辑文件,这里我使用的是vi

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]

在下方添加

#enabled 是启用
enabled = true
#maxretry 为错误次数
maxretry = 3

然后键盘上输入 :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列表

最后感谢您的阅读,如有问题请指出,谢谢。

籽夏
作者
籽夏
The best code is no code at all.