
核心要点(TL;DR)
- 域名先开 DNSSEC 与注册商锁,再谈服务器加固,否则流量可被劫持。
- HTTPS 必须强制跳转并启用 HSTS,证书到期监控比证书本身更重要。
- 防火墙默认拒绝入站,只放行 80/443 与受限源 IP 的 SSH 端口。
- 备份要异地、加密、定期恢复演练,没演练过的备份等于没有备份。
很多新手把网站部署完就以为万事大吉,结果上线一周就被扫描器盯上:SSH 弱口令被爆破、数据库端口暴露公网、证书过期导致整站打不开。安全问题往往不是被高级黑客攻破,而是基础项没做。本文给出一份可直接照做的十步加固清单,覆盖域名解析、HTTPS、防火墙到备份,每步都带命令和验证方法,照着做一遍就能把大部分低级风险堵住。
第一步:域名解析与注册商安全
域名是整个网站的入口,解析被改,后面所有加固都白费。先做三件事:开启注册商账户两步验证、启用域名锁(Registrar Lock)、检查解析记录是否最小化。
- 只保留必要的 A/AAAA、MX、TXT 记录,删除历史遗留的测试子域。
- 有条件则启用 DNSSEC,防止 DNS 缓存投毒。
- 用
dig +short yourdomain.com核对解析结果与预期一致。
注意:修改 NS 或 DNSSEC 后需等待 TTL 生效,期间不要频繁变更。
第二步:HTTPS 配置与强制跳转
明文 HTTP 会让登录态和表单数据裸奔。用 Let's Encrypt 签发证书并配置自动续期:
certbot --nginx -d example.com -d www.example.com systemctl list-timers | grep certbot
随后在 Nginx 中强制跳转并启用 HSTS:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;验证:curl -I https://example.com 应返回 200 且带 HSTS 头;用在线 SSL 检测工具确认证书链完整、无弱协议。
第三步:SSH 与账户加固
服务器被入侵最常见的入口是 SSH 弱口令。修改 /etc/ssh/sshd_config:
PermitRootLogin no,禁止 root 直接登录;PasswordAuthentication no,改用密钥登录;- 创建普通用户并加入 sudo 组,
usermod -aG sudo deploy。
改完执行 sshd -t 校验语法,再 systemctl reload sshd。务必保留一个已登录会话,防止配置错误把自己锁在门外。
第四步:防火墙与端口最小化
原则是默认拒绝入站,只放行必要端口。以 ufw 为例:
ufw default deny incoming ufw default allow outgoing ufw allow 80/tcp ufw allow 443/tcp ufw allow from 203.0.113.10 to any port 22 proto tcp ufw enable
云服务器还要在安全组做同样限制,形成双层防护。用 ss -tulnp 检查是否有数据库、Redis 等端口监听在 0.0.0.0,应改为仅监听 127.0.0.1。
第五步:WAF 与应用层防护
基础端口收口后,再挡应用层攻击。小站可先用云 WAF 基础版或 Nginx 规则拦截常见扫描与注入。在防护建议处,可结合 AegisX 的 Web 防护与威胁情报能力,对异常请求做识别与告警,减少人工盯日志的成本。同时关闭不必要的目录列表与调试接口,删除默认后台路径。
第六步:备份、监控与上线检查表
备份要满足异地、加密、可恢复三条。示例:每日数据库全量加增量,对象存储异地保存,保留 30 天。每季度做一次恢复演练。
| 检查项 | 合格标准 |
|---|---|
| 域名 | 两步验证开启、域名锁启用、DNSSEC 可选 |
| HTTPS | 强制跳转、HSTS、证书自动续期 |
| SSH | 禁 root、禁密码、仅密钥登录 |
| 防火墙 | 默认拒绝、仅放行 80/443 与受限 SSH |
| 备份 | 异地加密、定期恢复演练 |
行动建议:今天就按清单逐项核对,先做域名与 SSH 两项收益最高的加固,再补齐 HTTPS 与防火墙,最后把备份演练排进日历。安全不是一次配置,而是持续检查的习惯。
常见问题(FAQ)
新手建站第一步应该先做域名解析还是先加固服务器?
先完成域名解析与注册商安全设置,再做服务器加固。因为解析记录决定了流量走向,若域名被劫持或解析被篡改,服务器加固再严也无意义。建议先开启注册商账户两步验证与域名锁,配置最小必要的 A/AAAA 记录,有条件再启用 DNSSEC,然后进入服务器侧加固流程。
免费证书和付费证书在安全上有区别吗?
在加密强度上没有实质区别,主流免费证书同样提供 2048 位以上密钥与完整链验证。差别主要在有效期、赔付条款、多域名与通配符支持、以及自动化续期能力。新手优先选择支持 ACME 自动续期的证书,并把到期监控接入告警,避免证书过期导致站点不可访问。
云服务器已经有安全组,还需要装防火墙吗?
需要,两者是不同层。安全组在云平台侧过滤流量,主机防火墙在系统侧过滤,能防止同内网横向移动与误配置放行。建议安全组只放行 80/443 与办公 IP 的 SSH,主机侧再用 ufw 或 firewalld 设置默认拒绝入站,形成双层防护。
网站备份多久做一次,放在哪里才算安全?
按数据变更频率决定:内容站每日一次,交易类系统建议每小时增量加每日全量。备份必须异地存放,与生产环境不同账号或不同机房,并加密存储。关键是定期恢复演练,至少每季度完整还原一次,确认备份可用,否则备份只是心理安慰。
小网站有必要上 WAF 吗?
有必要,但不必一开始就买商业硬件。小站可先用云厂商的免费或基础版 WAF,或用 Nginx 规则拦截常见注入与扫描。WAF 的价值在于挡住自动化扫描与已知漏洞利用,降低被批量攻击的概率,配合日志告警能提前发现异常。