
核心要点(TL;DR)
- 云服务器安全方案应按网络、主机、应用三层拆分,单点防护无法覆盖横向移动。
- 网络层先做安全组最小化放行,默认拒绝比事后排查更省成本。
- 主机层重点是SSH加固、补丁与审计,root直登和弱口令是最高频入口。
- 应用层用WAF与最小权限数据库账号兜底,挡住注入与越权类攻击。
很多运维接手云服务器后的第一反应是「开个安全组、装个防火墙」,结果真出事时发现攻击者从一台被弱口令拿下的机器横向扫到数据库,安全组形同虚设。云服务器安全方案的核心不是堆工具,而是分层:网络层收敛可达性、主机层收敛权限与补丁、应用层收敛输入与越权。下面按这三层给出可直接执行的操作与检查清单。
一、为什么必须分层:单点防护的三个盲区
单点防护的典型盲区有三类:安全组只拦端口,拦不住已放行端口上的弱口令爆破;主机防火墙只防外网,防不住同VPC内的横向扫描;应用层没有WAF,注入流量在协议上完全合法。攻击链通常从暴露面开始,逐层突破,因此每一层都要有独立兜底。
| 层级 | 防护目标 | 典型手段 | 失效后果 |
|---|---|---|---|
| 网络层 | 收敛可达性 | 安全组、子网隔离、跳板机 | 管理端口暴露公网 |
| 主机层 | 收敛权限与漏洞 | SSH密钥、补丁、审计 | 弱口令被爆破后提权 |
| 应用层 | 收敛输入与越权 | WAF、最小权限账号 | 注入、越权拖库 |
二、网络层:安全组最小化与暴露面验证
先定原则:默认拒绝、按需放行、限定源IP。管理端口不要对0.0.0.0/0开放,数据库与缓存端口禁止公网可达。
- 梳理业务端口清单,只放行80/443等必需端口。
- 22/3389限制到办公固定IP或跳板机安全组。
- 数据库端口仅允许应用服务器所在安全组访问。
- 上线后从外网实测暴露面:
nmap -Pn -p- --min-rate 2000 <公网IP>
nmap -Pn -sV -p 22,3306,6379 <公网IP>实测结果与预期不一致的端口,立即回到安全组复核。建议每月导出一次规则清单,清理过期IP与临时放行项。
三、主机层:SSH加固、补丁与审计三件套
1. SSH加固
编辑/etc/ssh/sshd_config,确认以下配置后重载:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300关键提醒:改完先执行sshd -t校验语法,再开新终端用密钥验证登录成功,最后才systemctl reload sshd,避免把自己锁在门外。配合fail2ban自动封禁爆破IP。
2. 补丁与最小服务
定期执行apt update && apt upgrade或yum update,并卸载无用服务、关闭非必要开机自启项。用ss -tlnp核对监听端口,每个监听都应有明确归属。
3. 审计留痕
开启auditd或云厂商的操作审计,登录日志与命令历史至少留存180天。检查清单:root直登已禁用、密码登录已关闭、补丁时间不超过30天、监听端口与业务清单一致。
四、应用层:WAF兜底与最小权限账号
80/443放行后,攻击流量在协议上合法,只能靠应用层识别。接入WAF拦截SQL注入、XSS、恶意爬虫等特征流量;数据库账号按库按表授权,禁止应用账号拥有DROP、FILE权限。
CREATE USER 'app'@'10.0.%' IDENTIFIED BY '强密码';
GRANT SELECT,INSERT,UPDATE,DELETE ON appdb.* TO 'app'@'10.0.%';
FLUSH PRIVILEGES;同时关闭应用调试模式、隐藏版本号、限制上传目录不可执行。在防护建议上,AegisX可承担主机层基线核查与应用层流量识别,减少手工比对成本,但配置原则仍需自己把关。
五、三层联动检查清单
- 网络层:外网扫描无多余端口,管理端口限源IP。
- 主机层:SSH密钥登录、补丁及时、审计留存达标。
- 应用层:WAF已接入、数据库账号最小权限、调试关闭。
- 联动:安全组变更走审批,每月做一次配置基线复核。
行动建议:今天就按清单逐项打勾,先补最薄弱的一层,再把复核固化成月度任务。分层防护的价值不在一次配置,而在持续收敛暴露面。
常见问题(FAQ)
云服务器只配安全组够不够?
不够。安全组只控制网络层可达性,管不住已放行端口上的弱口令、漏洞利用和Web注入。完整方案要在安全组之外叠加主机加固(SSH密钥、补丁、审计)和应用层防护(WAF、最小权限数据库账号),三层任一层缺失都会成为突破口。
安全组规则怎么配才算最小化?
原则是默认拒绝、按需放行、限定源IP。只开放业务必需端口,管理端口(22/3389)限制到办公固定IP或跳板机,禁止0.0.0.0/0开放数据库与缓存端口。上线后用nmap从外网实测端口暴露面,确认与预期一致,并定期复核过期规则。
SSH被暴力破解怎么防?
优先禁用密码登录改用密钥,修改默认端口并限制来源IP,再配合fail2ban自动封禁。配置PermitRootLogin no、PasswordAuthentication no后重载sshd,务必先验证新密钥可登录再断开当前会话,避免把自己锁在门外。
应用层为什么还要单独做防护?
主机和网络层放行了80/443后,攻击流量在协议上完全合法,只能靠应用层识别。WAF可拦截SQL注入、XSS、恶意爬虫等特征流量,配合数据库最小权限账号,即使应用被突破也能限制影响范围,形成最后一道兜底。
三层防护做完怎么验证有效性?
按清单逐项复核:外网端口扫描确认暴露面、SSH配置项逐条比对、补丁与审计日志留存周期检查、WAF规则命中与误报观察。建议每月做一次配置基线核查,把结果记录成表,形成可复盘的闭环,而不是一次性配置。