1 周年 PowerDedi 1 周年: −20% 所有服务器适用 优惠码 距结束 14 h 立即领取

PowerDedi

安全

在第一小时内保护您的服务器

第一小时检查清单:自动更新、仅限密钥的 SSH 登录、防火墙、防暴力破解、备份和 2FA。

2026年9月25日更新 · 阅读约 4 分钟 · 10 个章节

本页目录 10 个章节
  1. 自动安装更新
  2. 以 sudo 用户身份操作
  3. 仅允许 SSH 密钥登录
  4. 启用防火墙
  5. 限制暴力破解尝试
  6. 保持时钟同步
  7. 备份数据
  8. 保护客户中心账户
  9. 监控服务器
  10. 如果服务器已被入侵

新服务器上线后几分钟内,自动化扫描器就会开始探测它。本清单涵盖上线第一小时内的必做事项。您需要能够通过 SSH 以 root 身份登录,并已安装好密钥;参见创建并使用 SSH 密钥。我们不负责管理您的操作系统,因此这些步骤需要您自行完成。

修改 SSH 或防火墙设置时,请保持一个 SSH 会话处于打开状态,并在第二个会话中测试每项更改。即使还是把自己锁在了外面,控制台依然可用。

自动安装更新

# Debian, Ubuntu
sudo apt update && sudo apt full-upgrade
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

# AlmaLinux, Rocky Linux
sudo dnf upgrade
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic-install.timer

在 Debian 和 Ubuntu 上,unattended-upgrades 默认会安装安全更新。新内核只有在重启后才会生效,因此请定期安排重启。

以 sudo 用户身份操作

sudo adduser alice && sudo usermod -aG sudo alice          # Debian, Ubuntu
sudo useradd -m -G wheel alice && sudo passwd alice        # AlmaLinux, Rocky Linux
sudo install -d -m 700 -o alice -g alice /home/alice/.ssh
sudo install -m 600 -o alice -g alice /root/.ssh/authorized_keys /home/alice/.ssh/

为该用户设置一个强密码:sudo 会要求输入它,通过控制台登录时也需要它。继续之前,请确认 ssh alice@203.0.113.10 和 sudo -v 都能正常使用。

仅允许 SSH 密钥登录

创建 /etc/ssh/sshd_config.d/00-hardening.conf:

PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-password

对于每个配置项,sshd 只采用它读到的第一个值,因此名为 00-… 的文件优先于排在其后的文件,例如 50-cloud-init.conf。测试配置、重新加载,然后检查实际生效的值:

sudo sshd -t && sudo systemctl reload ssh      # Debian, Ubuntu
sudo sshd -t && sudo systemctl reload sshd     # AlmaLinux, Rocky Linux
sudo sshd -T | grep -Ei 'passwordauth|kbdinteractive|permitrootlogin'

确认 sudo 用户可以正常使用后,即可设置 PermitRootLogin no。在 FreeBSD 上,请在 /etc/ssh/sshd_config 中做同样的修改,然后运行 service sshd reload。

启用防火墙

首先,用 sudo ss -tulpn 查看哪些服务正在监听:凡是绑定到 0.0.0.0 或 [::] 的服务,除非被防火墙拦截,否则都能从互联网访问。在 Debian 上,/etc/nftables.conf 中的以下规则集放行 SSH、环回接口、ICMP 以及您自己所发起连接的回复流量,并丢弃其他所有流量:

#!/usr/sbin/nft -f
flush ruleset

table inet filter {
    chain input {
        type filter hook input priority filter; policy drop;
        ct state established,related accept
        ct state invalid drop
        iif "lo" accept
        meta l4proto { icmp, ipv6-icmp } accept
        tcp dport 22 accept
    }
    chain forward {
        type filter hook forward priority filter; policy drop;
    }
}
sudo nft -c -f /etc/nftables.conf     # check syntax
sudo nft -f /etc/nftables.conf        # load now
sudo systemctl enable nftables        # load at boot

每对外提供一项服务,就添加一条类似 tcp dport { 80, 443 } accept 的规则。请保持 ICMP 开放:没有 ICMPv6,IPv6 就无法正常工作。

flush ruleset 会删除所有现有规则,包括由 Docker、libvirt 或 Proxmox VE 防火墙创建的规则。在这类主机上,请改用它们自带的防火墙集成功能。

在 Ubuntu 上,使用 ufw 更简单:先运行 sudo ufw allow OpenSSH,再运行 sudo ufw enable。在 AlmaLinux 和 Rocky Linux 上,firewalld 通常已处于运行状态,并且已放行 SSH。用 sudo firewall-cmd --list-all 查看其配置,用 sudo firewall-cmd --permanent --add-service=https 添加服务,用 --remove-service 移除 cockpit 等不用的服务,最后运行 sudo firewall-cmd --reload。

限制暴力破解尝试

禁用密码登录后,猜测密码不可能成功,但会塞满您的日志。fail2ban 会封禁反复登录失败的地址。用 sudo apt install fail2ban python3-systemd 安装它,然后创建 /etc/fail2ban/jail.local:

[sshd]
enabled = true
backend = systemd
maxretry = 5
bantime = 1h

用 sudo systemctl restart fail2ban 重启服务,并用 sudo fail2ban-client status sshd 查看其状态。在 AlmaLinux 和 Rocky Linux 上,fail2ban 由 EPEL 仓库提供:先运行 sudo dnf install epel-release,再运行 sudo dnf install fail2ban。sshguard 是一个更轻量的替代方案。

保持时钟同步

日志、TLS 证书和双重验证码都依赖准确的时间。timedatectl 的输出应显示 System clock synchronized: yes。如果没有,请安装 chrony 软件包并启用其服务。

备份数据

我们不会备份您的数据,而且 RAID 不是备份:它无法防范数据删除、勒索软件或系统被入侵。请遵循 3-2-1 原则:数据保留三份副本,存放在两种不同类型的存储介质上,其中一份存放在异地,例如另一个机房的服务器上。restic 和 BorgBackup 等工具支持加密和去重。请定期测试数据恢复。

保护客户中心账户

任何能登录您客户中心的人,都可以重装您的服务器、打开其控制台或让它启动进入救援模式。请在账户 → 安全中启用双重验证(TOTP),并使用一个没有在其他任何地方用过的密码。

监控服务器

请设置在我们网络之外运行的外部可用性检测(ping 或 HTTP)、磁盘空间和负载告警,以及监控与修复软件 RAID 中介绍的 RAID 和 SMART 告警。网络事件会发布在我们的运行状态页面上。

如果服务器已被入侵

  1. 先止损。如果服务器正在攻击他人,请将其关机,或启动进入救援模式,该模式会通过网络运行一个干净的系统。
  2. 不要信任已安装的系统。在救援模式下,只拷出您需要的数据,不要拷出程序或脚本;如需调查,可一并拷出日志。
  3. 重装操作系统。原地清理永远不可靠。
  4. 轮换所有存放在该服务器上或用于访问它的机密信息:SSH 密钥、密码、API 令牌和数据库凭据。
  5. 用入侵发生之前的备份恢复数据,修复攻击者利用的漏洞,并在重新上线前再次执行本清单。

当我们收到针对您服务器的滥用举报时,会通知您并给予 24 小时来解决问题;正在进行的攻击会通过黑洞路由或暂停服务立即阻断。详情请见可接受使用政策。

相关指南

全部指南
安全

更新于

创建并使用 SSH 密钥

在任意操作系统上生成 Ed25519 密钥,在客户中心登记,安装到服务器上,并简化登录。

阅读约 3 分钟

入门指南

更新于

独立服务器入门指南

从下单到首次 SSH 登录:选择服务器、用加密货币付款、连接服务器,然后完成前十分钟检查清单。

阅读约 4 分钟

服务器管理

更新于

使用 IPMI/KVM 控制台

在浏览器中查看服务器屏幕、控制电源、挂载 ISO 并进入 BIOS,即使操作系统无法启动也可以。

阅读约 4 分钟