深色模式
运维安全总览:安全左移与纵深防御
摘要:安全不是上线后补的一堵墙,而是从资产盘点、基线加固到监控响应的完整闭环。本文用"安全左移 + 纵深防御"两条主线,带你搭出一套能落地的最小安全体系。文中的分层做法是通用工程实践,不等同于任何特定法规条款。
适用环境
bash
cat /etc/os-release
uname -r
systemctl --version # systemd 系统用它管理服务
command -v ss nft iptables # 看看手上有哪些网络工具1
2
3
4
2
3
4
操作步骤
1. 先盘资产:不知道自己有什么,就谈不上保护
bash
ss -lntup # 对外监听的端口与服务
lastlog | grep -v "Never" # 近期真实登录过的账号
crontab -l -u root # 计划任务往往藏着后门
ls /etc/ssh/sshd_config /etc/sudoers.d/ 2>/dev/null1
2
3
4
2
3
4
把结果记成一张资产表:主机、端口、负责人、是否对外。这张表是后面所有安全动作的输入。
2. 理解安全左移:把检查点往前挪
需求 → 设计 → 编码 → 构建 → 部署 → 运行
↑ ↑ ↑ ↑ ↑
威胁建模 依赖扫描 镜像扫描 基线校验 监控/审计1
2
3
2
3
越靠左发现的问题,修复成本越低。运维能直接推动的三个左移点:
- 部署前:镜像/依赖漏洞扫描,不放行高危。
- 部署中:基线脚本作为发布门禁,不合规就中断。
- 部署后:配置漂移检测(基线脚本定期重跑)。
3. 搭纵深防御:任何一层都可能被突破
| 层次 | 典型措施 | 对应本文后续主题 |
|---|---|---|
| 网络 | 默认拒绝、微分段、TLS | 防火墙、网络隔离、TLS |
| 主机 | SSH 加固、基线、补丁 | SSH、基线加固、补丁管理 |
| 身份 | 最小权限、双因子、密钥托管 | 最小权限、身份鉴别 |
| 应用 | 鉴权、限流、审计 | API 安全、数据库审计 |
| 数据 | 静态加密、备份 3-2-1 | 加密、备份容灾 |
| 检测 | HIDS、FIM、日志防篡改 | 入侵检测、文件完整性 |
4. 定优先级:先堵"最容易被打进来的口子"
bash
# 第一梯队:外部可达 + 弱身份
ss -lntup | grep -E ':(22|3306|6379|27017|9200)\s'
grep -E '^(PermitRootLogin|PasswordAuthentication)' /etc/ssh/sshd_config
# 第二梯队:权限与凭据
awk -F: '$3==0 {print $1}' /etc/passwd # 除了 root 不该有别的 UID 0
find / -name "*.pem" -o -name "id_rsa" 2>/dev/null | head
# 第三梯队:可观测性
ls /var/log/secure /var/log/auth.log 2>/dev/null1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
按"外部可达 > 身份凭据 > 检测响应"的顺序推进,一周内就能看到明显收敛。
5. 建立节奏而不是一次性运动
- 每日:告警与补丁状态巡检(自动化)。
- 每周:基线脚本全量跑一遍,出趋势。
- 每季度:一次恢复演练 + 一次红蓝对抗。
- 每次变更:基线脚本作为门禁重跑。
验证
bash
# 1) 资产表能覆盖所有监听端口的负责人
ss -lntu | wc -l
# 2) 基线脚本可重复执行且输出机器可读(JSON/CSV)
bash baseline.sh --format json > /tmp/baseline-$(date +%F).json
# 3) 关键告警有接收人(模拟一条测试告警)
logger -p auth.warning "security drill: baseline check"1
2
3
4
5
6
2
3
4
5
6
判定标准:资产表无"未知"项;基线脚本退出码能区分通过/失败;告警在 5 分钟内有人响应。
常见坑
把"过合规"当成"变安全"
合规检查是阶段性快照,攻击者不看你的检查表。基线之外必须有持续检测(HIDS/FIM)和演练。
只加固对外机器
被拿下一台内网机器后,横向移动往往更容易。内网同样要默认拒绝与最小权限。
一次性加固后不再复查
配置漂移是常态:临时放行端口、临时加 sudo 权限,最后都变成永久。必须定期重跑基线脚本并比对差异。
先买设备再理资产
没有资产表和分层图就上设备,只会得到一堆没人看的告警。顺序永远是:资产 → 分层 → 措施。