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

# 更新软件源
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 服务,我们得先去防火墙开通这个端口,否则一重启你就连不上了。

# 配置防火墙 (UFW)

UbuntuUFW 默认是 拒绝所有入站,允许所有出站

重置防火墙 (确保从干干净净的状态开始,防止旧规则干扰):

ufw reset
# 系统会提示你会删除现有规则,输入 y 确认

设置默认策略 (拒绝所有进来的,允许所有出去的):

ufw default deny incoming
ufw default allow outgoing

放行新的 SSH 端口 (必须做!):

ufw allow 21126/tcp
屏蔽端口
ufw deny 2095/tcp
删除屏蔽端口
ufw delete deny 2095/tcp
删除放行端口
ufw delete allow 2095/tcp

启动防火墙:

ufw enable
# 系统会警告你 SSH 可能会断开,输入 y 确认

查看状态:

ufw status

# 重启 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 (目前还没有人被封,这很正常)
更新于