✨我是辰海星的「文章捕手」,擅长在文字的星海中打捞精华。

这篇文章主要讲的是在 Linux 服务器上做基础安全加固:先更新系统并安装 UFW、防暴力破解工具 Fail2Ban,然后把 SSH 默认 22 端口改成 21126,最后配置并验证 Fail2Ban 让它针对 SSH 登录失败自动封禁可疑 IP,从而降低被扫描和暴力破解的风险。 1) 更新软件源并安装必要软件 🧩 - 执行 apt update 更新软件列表 - 安装/确保已安装 UFW(防火墙) - 安装 Fail2Ban(用于拦截多次失败登录的攻击) 2) 修改 SSH 端口为 21126 🔐 - 编辑 /etc/ssh/sshd_config - 将 Port 22 改为 Port 21126 - 保存退出(Ctrl+O 回车保存,Ctrl+X 退出) 3) 停止并禁用 ssh.socket ⚙️ - systemctl stop ssh.socket:停止 socket 监听 - systemctl disable ssh.socket:禁止开机自启 - 文中强调:先别急着重启 SSH,必须先确保防火墙放行新端口,否则可能导致无法连接 4) 重启 SSH 并进行连接测试 🧪 - systemctl restart ssh 让端口修改生效 - 测试时不要关闭当前已连上的会话,另开一个新窗口用新端口尝试登录,避免连不上只能走 VNC/重装的风险 5) 配置 Fail2Ban(针对 sshd 生效)🛡️ - 不直接改 jail.conf,而是复制生成 jail.local: cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - 编辑 /etc/fail2ban/jail.local,在 [sshd] 段确保: enabled = true port = 21126(必须与新 SSH 端口一致) logpath = /var/log/auth.log maxretry = 3(失败 3 次) findtime = 600(10 分钟统计窗口) bantime = 3600(封禁 1 小时) 6) 重启并检查 Fail2Ban 状态 ✅ - systemctl restart fail2ban - fail2ban-client status sshd 查看是否正常运行 - 看到 “Status for the jail: sshd” 等信息即表示配置生效,“Currently banned: 0” 初始为 0 属正常情况

# 更新软件源并安装必要软件

# 更新软件源
apt update
# 安装 / 确保已安装 UFW
apt install ufw -y
# 安装 Fail2Ban
apt install fail2ban -y

# 修改 SSH 端口为 21126

编辑配置文件:

nano /etc/ssh/sshd_config

找到 Port 22

Port 21126

Ctrl+O 回车保存,按 Ctrl+X 退出。

# 停止并禁用 ssh.socket

# 1. 停止 socket 监听
systemctl stop ssh.socket
# 2. 禁用 socket 开机自启
systemctl disable ssh.socket

注意:现在不要重启 SSH 服务,我们得先去防火墙开通这个端口,否则一重启你就连不上了。

# 重启 SSH 并测试

重启 SSH 服务,让端口修改生效:

systemctl restart ssh

验证测试:千万不要关闭当前的黑框框!用新的,如果登录不上就只能 VNC,没有 VNC 就只能重装了

# 配置 Fail2Ban

创建配置文件 (不要直接改 .conf 文件,要改 .local 文件):

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑配置文件:

nano /etc/fail2ban/jail.local

找到 [sshd] 部分(可以按 Ctrl+W 搜索 [sshd] )。这部分通常在文件中间位置。确保修改或添加以下内容:

[sshd]
enabled = true
# 必须改成你的新端口
port    = 21126
# SSH 日志
logpath = /var/log/auth.log
# 尝试失败 3 次
maxretry = 3
# 在 10 分钟内 (600 秒)
findtime = 600
# 封禁 1 小时 (3600 秒)
bantime = 3600

保存并退出 ( Ctrl+O , Ctrl+X )。

# 重启 Fail2Ban

systemctl restart fail2ban

检查 Fail2Ban 是否正常工作:

fail2ban-client status sshd

如果你看到类似下面的输出,说明成功了:

  • Status for the jail: sshd
  • File list: ...
  • Currently banned: 0 (目前还没有人被封,这很正常)
更新于