新服务器第一件事做什么:服务器安全加固入门清单
刚买的服务器就像一栋没装锁的房子:默认用户口令简单、所有端口都敞着、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 是运维的生命线,也是最常被暴力破解的目标。务必做到:
- 禁用 root 直接登录:把
PermitRootLogin设为no,日常用普通用户 +sudo。 - 改用密钥登录:生成密钥对,把公钥放进
~/.ssh/authorized_keys,然后把PasswordAuthentication设为no。 - 改默认端口:把
Port 22改为如 2222 的高位端口,能避开大量默认端口扫描(注意先放行新端口再重启 sshd)。 - 限制可登录用户:用
AllowUsers youruser明确允许名单。
完整操作见SSH 加固指南。再进一步,可以开启两步验证,把密钥 + 动态码叠加。
第 3 步:配置防火墙,默认拒绝
防火墙的默认策略应该是"默认拒绝,按需放行"。只开放真正需要的端口:Web 的 80/443、SSH 改后的端口、数据库端口只对内网。常用工具:
- UFW(Ubuntu):
sudo ufw default deny incoming、sudo ufw allow 80/tcp、sudo ufw allow 2222/tcp、sudo 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、安全头配置等完整体系,可以继续深入。