Home Knowledge base Skyline Cloud 如何加固新的 VPS:防火墙与 SSH 安全强化 KNOWLEDGE BASE

如何加固新的 VPS:防火墙与 SSH 安全强化

一份实用的分步指南,教你加固全新的 Linux VPS:创建 sudo 用户、将 SSH 锁定为仅密钥登录,并使用 UFW 配置防火墙。内含 Fail2ban 与无人值守安全更新。

如何加固新的 VPS:防火墙与 SSH 安全强化

一份实用的分步指南,教你加固全新的 Linux VPS:创建 sudo 用户、将 SSH 锁定为仅密钥登录,并使用 UFW 配置防火墙。内含 Fail2ban 与无人值守安全更新。

SKYLINE Engineering @skyline

发布于 2026 年 6 月 8 日 | 阅读时长 5 分钟


全新的 VPS 从开机那一刻起就暴露在公共互联网上。几分钟之内,自动化机器人就会开始针对 22 端口发起撞库攻击。好消息是:只需若干步广为人知的操作,就能消除其中绝大多数风险。本指南将带你像专业人员上线第一天那样,加固一台全新的 Linux 服务器(假定为 Ubuntu/Debian;这些命令与其他发行版也高度对应)。

如果你还在为工作负载挑选运行环境,Skyline 在沙特阿拉伯境内提供云服务器与 VPS,让你的数据符合 PDPL/NCA 的数据驻留规定,并让一支讲阿拉伯语的本地支持团队随时为你服务。

开始之前

你需要:

  • 一台拥有公网 IP 的全新 VPS,以及由服务商提供的初始 root 凭据(或默认的 sudo 用户)。
  • 本机上的一个 SSH 客户端。Linux/macOS 已内置;Windows 上请使用 OpenSSH 客户端或 PowerShell。
  • 一对 SSH 密钥。如果还没有,请在本地生成:
ssh-keygen -t ed25519 -C "you@example.com"

ed25519 密钥短小、快速,且比传统的 2048 位 RSA 更安全。按回车采用默认路径(~/.ssh/id_ed25519),并设置一个口令。

第 1 步 — 先更新系统

登录后,在做其他任何事情之前,先把所有软件包升级到最新,让你从一个已打补丁的基线开始:

ssh root@your_server_ip
apt update && apt upgrade -y

第 2 步 — 创建一个非 root 的 sudo 用户

日常以 root 身份操作很危险:一个输入错误就可能造成灾难,而 root 又是每个攻击者首先盯上的账户。请改为创建一个专用的管理员用户:

adduser deploy
usermod -aG sudo deploy

接着把你的 SSH 公钥复制给这个新用户,以便你能以该用户身份登录:

rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy/

如果你当初是用密码登录开通的服务器,则改为从本机运行 ssh-copy-id deploy@your_server_ip。在做任何其他操作之前,请打开第二个终端,确认你能以 deploy 身份登录并运行 sudo whoami(应当输出 root)。在新的访问方式验证成功之前,切勿关闭你正在使用的会话。

第 3 步 — 加固 SSH 守护进程

这是单项影响最大的改动。编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

设置以下指令(取消注释或新增它们):

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
MaxAuthTries 3
X11Forwarding no
指令 作用
PermitRootLogin no 阻止通过 SSH 直接以 root 登录
PasswordAuthentication no 强制仅密钥认证,挫败暴力破解
MaxAuthTries 3 在 3 次失败尝试后断开连接

通过重新加载服务来应用改动:

sudo systemctl reload ssh

退出登录前,请在新终端中测试。 确认密钥登录仍然有效,且密码登录尝试会被拒绝。如果出现问题,你现有的会话仍处于打开状态,可用来修复。

可选:更改 SSH 端口

把 SSH 从 22 端口移走(例如改到 2222)并不能阻止铁了心的攻击者,但能大幅减少自动化扫描器产生的日志噪音。在 sshd_config 中设置 Port 2222,在重新加载之前于防火墙中放行该端口(见下一步),然后用 ssh -p 2222 deploy@your_server_ip 连接。

第 4 步 — 用 UFW 配置防火墙

UFW(Uncomplicated Firewall,简易防火墙)是 iptables 的一个友好前端。默认情况下,拒绝所有入站流量,只放行你确实需要的:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH

如果你运行 Web 服务器,也要开放 HTTP 和 HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

关键: 务必在启用防火墙_之前_放行你的 SSH 端口,否则你会把自己锁在门外。如果你更改了端口,请用 sudo ufw allow 2222/tcp 代替 OpenSSH

启用并验证:

sudo ufw enable
sudo ufw status verbose

第 5 步 — 安装 Fail2ban

Fail2ban 会监视你的日志,并临时封禁那些表现出恶意模式(例如反复登录失败)的 IP:

sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑 jail.local,在 [sshd] 一节下,确认该 jail 已启用并设置了合理的限制:

[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m

重启并检查该 jail:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

第 6 步 — 启用自动安全更新

未打补丁的软件是最常见的入侵途径。在 Ubuntu/Debian 上,启用无人值守安全升级:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

这样会自动应用安全补丁,同时把功能性升级仍然交由你掌控。

加固检查清单

  • ☑ 系统已完全更新
  • ☑ 已创建并验证非 root 的 sudo 用户
  • ☑ 已禁用 root 的 SSH 登录
  • ☑ 已禁用密码认证(仅密钥)
  • ☑ 已启用 UFW 防火墙并采用默认拒绝策略
  • ☑ Fail2ban 已在 SSH jail 上运行
  • ☑ 已启用自动安全更新

接下来该做什么

这套基线措施能挡住绝大多数机会型攻击。在此基础上,可以考虑针对各应用做加固(反向代理、通过 Let's Encrypt 启用 TLS、将数据库绑定到 localhost)、集中化日志,以及定期的异地备份。如果你的服务器还要处理电子邮件,我们的企业邮箱托管能让邮件脱离本机,并通过 SPF、DKIM 和 DMARC 进行妥善认证。

想了解更多在沙特境内运行服务器的指南,欢迎浏览我们的 VPS 与云服务器中心

准备好在境内基础设施上部署,享受透明定价与本地支持了吗?创建你的 Skyline Cloud 账户,几分钟内即可启动一台已加固的 VPS。

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.