新服务器第一件事做什么:服务器安全加固入门清单

刚买的服务器就像一栋没装锁的房子:默认用户口令简单、所有端口都敞着、root 还能直接远程登录——每一处都是被人"搬空"的入口。很多攻击是自动化的,开机几小时内就有扫描器扫到你的 IP。好消息是,绝大多数入侵可以通过一套基础加固挡在外面。本文按六步给出清单,新手照着做即可,最后附一张可勾选的检查表。

一、为什么"先开网站"是错误顺序

不少人的流程是:买服务器 → 装环境 → 跑起网站 → 完事。等出了安全问题再补救,往往已经迟了。正确的顺序是:买服务器 → 先加固 → 再装业务。因为一旦业务跑起来,服务器就有了对外流量和真实数据,加固时的重启、改端口、改防火墙都可能影响业务可用性;而空服务器怎么折腾都不心疼。所以"第一件事"不是装 Nginx,而是先把大门看好。

二、六步加固,每一步都有明确动作

第 1 步:更新系统,打上已知漏洞补丁

登录后第一件事:更新软件包。Ubuntu/Debian 用 sudo apt update && sudo apt upgrade -y,CentOS/RHEL 系用 sudo yum update -y。系统镜像自带的软件版本往往滞后,可能带着已公开的漏洞。更新后重启确认内核已生效。开启自动安全更新(如 Ubuntu 的 unattended-upgrades)可以省去日常手动打补丁。这一层的原理与更多基线,参考服务器初始化安全CIS 基准加固

第 2 步:SSH 加固,堵住最大入口

SSH 是运维的生命线,也是最常被暴力破解的目标。务必做到:

  1. 禁用 root 直接登录:把 PermitRootLogin 设为 no,日常用普通用户 + sudo
  2. 改用密钥登录:生成密钥对,把公钥放进 ~/.ssh/authorized_keys,然后把 PasswordAuthentication 设为 no
  3. 改默认端口:把 Port 22 改为如 2222 的高位端口,能避开大量默认端口扫描(注意先放行新端口再重启 sshd)。
  4. 限制可登录用户:用 AllowUsers youruser 明确允许名单。

完整操作见SSH 加固指南。再进一步,可以开启两步验证,把密钥 + 动态码叠加。

第 3 步:配置防火墙,默认拒绝

防火墙的默认策略应该是"默认拒绝,按需放行"。只开放真正需要的端口:Web 的 80/443、SSH 改后的端口、数据库端口只对内网。常用工具:

  • UFW(Ubuntu):sudo ufw default deny incomingsudo ufw allow 80/tcpsudo ufw allow 2222/tcpsudo ufw enable
  • firewalld(CentOS):sudo firewall-cmd --add-service=http --permanent 等。
  • 云厂商安全组:云服务器上,安全组是"第一道门",系统防火墙是"第二道门",两层都要配好。

规则写法与常见坑见Linux 防火墙配置

第 4 步:最小权限,给每个账号"够用就好"的权限

  • 建普通用户,日常操作用普通用户 + sudo,不要整天用 root。
  • 每个服务用独立低权限用户运行(如 Nginx 用 nginx 用户),不共享一个高权限账号。
  • 数据库、配置文件、密钥的权限收紧:目录 700/750、文件 600/640。
  • 用 sudo 时,尽量只授予需要的命令,而不是全部(用 /etc/sudoers 里的命令白名单)。

第 5 步:打开日志与审计,出事能查

日志是案发现场。至少保证:

  • 系统日志(/var/log/syslog/var/log/messages)在记录;
  • SSH 登录日志开启(/var/log/auth.log),用来发现暴力破解;
  • 开启 sudo 审计(记录谁执行了哪些特权命令);
  • 日志定期轮转与归档,重要日志异地保存。

如果完全不知道该看什么,先学会"三看":看登录失败、看磁盘使用、看异常进程。审计与日志分析的入门见安全日志审计入门

第 6 步:配置备份,先想好"坏了怎么办"

安全加固防的是"进不来",备份防的是"万一进来了/被删了/硬盘坏了"也能恢复。最小可用方案:

  • 关键数据(数据库、配置、上传目录)每日自动备份;
  • 备份放到另一台机器或对象存储,别和服务器同盘同域(勒索病毒会连备份一起加密);
  • 定期演练恢复,别等出事才发现备份是坏的。

备份策略与演练模板见备份恢复手册网站备份策略

三、可勾选检查表

每完成一项打个勾,全部打勾 = 基础加固完成。

  • 系统软件包已更新到最新
  • 已开启自动安全更新
  • 已禁用 root 远程登录
  • SSH 已改用密钥登录,关闭密码登录
  • SSH 端口已修改(可选但推荐)
  • 防火墙默认拒绝,仅放行必要端口
  • 云安全组与系统防火墙两层都已配置
  • 日常使用普通用户 + sudo,不用 root
  • 各服务使用独立低权限账号运行
  • 敏感文件权限已收紧(600/700)
  • 系统日志、SSH 日志、sudo 审计已开启
  • 关键数据已每日备份到异地
  • 已做过一次备份恢复演练

四、常见问题

Q1:加固会不会影响网站性能?
防火墙和 SSH 配置几乎不影响性能;更新补丁是正向的。影响业务的是"改端口、重启服务"这类动作,所以安排在业务上线前做最稳妥。

Q2:我只买来跑一个个人博客,也需要全部加固吗?
至少做到:更新系统、禁用 root 登录、改密钥登录、开防火墙、异地备份这五条。个人站点同样会被自动化扫描,别赌运气。

Q3:加固完之后是不是就安全了?
不是终点,只是起点。还要定期打补丁、看日志、检查开放端口。安全是持续过程,不是一次性动作。

Q4:和"安全加固"相关的更多内容去哪看?
本站安全加固分类下有系统加固、WAF、安全头配置等完整体系,可以继续深入。