对于一台暴露在公网上的 VPS,不做安全措施就像是“裸奔”,很容易遭到暴力破解攻击。我们需要在不破坏 Docker 网络的前提下,给系统加上几把锁。

  1. 修改 SSH 默认端口(最有效)

黑客的自动化脚本会扫描所有 IP 的 22 端口。换成一个五位数的端口可以挡掉 99% 的暴力攻击。

编辑配置文件:nano /etc/ssh/sshd_config

找到 #Port 22,去掉 # 并改为 Port 12345(换成 10000-65535 之间的任意数字)。

保存退出后重启

SSH:systemctl restart ssh

注意:下次登录时,记得在 SSH 工具里把端口从 22 改为你的新端口。

  1. 启用防火墙并开放必要端口

因为你用了 Docker,防火墙配置需要特别小心,避免把 Docker 的流量墙掉。

# 安装 UFW
apt install ufw -y

# 默认禁止所有传入,允许所有传出
ufw default deny incoming
ufw default allow outgoing

# 必须放行的端口
ufw allow 80/tcp       # HTTP (Caddy 申请证书用)
ufw allow 443/tcp      # HTTPS (访问博客用)
ufw allow 12345/tcp    # 你的新 SSH 端口 (务必根据上一项修改!)
ufw allow 1080/udp     # Hysteria 2 主端口
ufw allow 20000:50000/udp # Hysteria 2 端口跳跃范围

# 启用防火墙
ufw enable
  1. 安装 Fail2Ban(自动禁封)

这个工具会自动监控登录日志,如果有人尝试密码错误超过 3 次,直接封锁对方 IP 24 小时。

apt install fail2ban -y

# 创建基础配置
cat <<EOF > /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 12345
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 24h
EOF

systemctl restart fail2ban