
核心要点(TL;DR)
- 主机安全防护第一步是装Agent并验证心跳,否则后续策略与告警全部失效。
- 策略配置优先做基线检查与关键目录文件完整性监控,再逐步开启入侵检测。
- 告警必须联动到人:配置分级通知、抑制重复告警并保留原始事件可追溯。
- 上线前用模拟攻击与误报观察期验证,避免策略过严导致告警疲劳。
很多站长和运维把服务器买回来、服务跑起来就算完事,直到某天发现 SSH 被爆破成功、Web 目录多了一个陌生 PHP 文件,才意识到主机一直处于「裸奔」状态。本文按实战顺序拆解主机安全防护的落地流程:装 Agent、配策略、连通告警,每一步都给命令和检查点,照着做就能把服务器变成可监控、可告警、可追溯的状态。
一、先搞清楚:主机安全防护到底防什么
主机安全防护(HIDS)不是单一功能,而是三层能力的组合:资产与基线(知道机器上有什么、配置是否合规)、行为检测(进程、登录、文件变更是否异常)、响应闭环(告警能否在几分钟内到达负责人)。
缺少任何一层都会失效:只有检测没有告警,等于装了摄像头没人看;只有告警没有基线,等于天天被误报淹没。部署前先确认三件事:
- 服务器操作系统与内核版本(
uname -r、cat /etc/os-release); - 出站网络是否允许访问安全平台地址(通常 443);
- 是否有统一的告警接收渠道(企业微信、钉钉或邮件群组)。
二、Agent 安装:三条命令完成接入
以 Linux 主机为例,安装流程通常为「下载安装包 → 执行安装脚本并填入接入密钥 → 验证心跳」。以下为通用步骤,具体包名以所用平台为准:
# 1. 下载并校验安装包
curl -fsSLo agent.tar.gz https://example.com/agent/latest/agent-linux-amd64.tar.gz
sha256sum agent.tar.gz
# 2. 解压并安装,填入平台下发的接入密钥
tar -xzf agent.tar.gz && cd agent
sudo ./install.sh --token YOUR_TOKEN --server your-console.example.com:443
# 3. 验证服务与心跳
systemctl status host-agent --no-pager
ss -lntp | grep host-agent
tail -n 50 /var/log/host-agent/agent.log安装后必须做三项检查:服务状态为 active、日志中出现心跳成功记录、控制台主机列表显示「在线」。若显示离线,优先排查出站安全组、DNS 解析和系统时间偏差(timedatectl),证书校验失败多数由时间不同步引起。
三、策略配置:先基线,后检测,最后加白
策略配置的顺序决定了误报量。建议按「基线检查 → 文件完整性监控 → 入侵检测 → 白名单收敛」推进。
1. 基线检查
先跑一遍等保/安全基线:SSH 是否禁止 root 直连、密码策略是否合规、是否存在空口令账户、高危端口是否暴露。手工自查可用:
grep -E '^(PermitRootLogin|PasswordAuthentication)' /etc/ssh/sshd_config
awk -F: '(==""){print }' /etc/shadow
ss -lntp2. 文件完整性监控
监控重点目录的哈希与权限变更,优先级如下表:
| 目录 | 监控原因 | 建议级别 |
|---|---|---|
| /etc、/root/.ssh | 配置与密钥被篡改常意味着持久化后门 | 高危 |
| /usr/bin、/bin、/sbin | 系统命令被替换用于隐藏行为 | 高危 |
| /etc/cron*、/var/spool/cron | 定时任务是最常见的持久化手段 | 高危 |
| Web 根目录 | webshell 落地检测 | 中危 |
3. 入侵检测与白名单
开启反弹 Shell、异常进程、暴力破解、提权行为等检测项后,把已知的运维脚本路径、备份任务、监控采集进程加入白名单。同一规则设置 5 到 10 分钟抑制窗口,避免一次扫描产生上百条重复告警。
四、告警联动:让事件在 3 分钟内到人
告警联动的目标是「高危实时到人、中低危汇总可查」。以 Webhook 推送企业微信或钉钉为例:
- 在 IM 中创建群机器人,获取 Webhook 地址并设置关键词或签名;
- 在安全平台新建通知渠道,填入 Webhook,发送测试消息确认可达;
- 配置触发条件:高危事件实时推送,中低危按小时或按天汇总;
- 消息模板包含主机名、内网 IP、规则名称、命中时间和处置建议。
验证方式:手动在测试机创建 /etc/cron.d/test-persist 文件,观察是否在预期时间内收到告警;再删除文件确认恢复通知。告警链路不通,前面所有策略都等于零。
五、上线检查清单
- Agent 在线率 100%,离线主机有明确原因记录;
- 基线检查完成首轮,高危项已整改或登记;
- 关键目录文件完整性监控已开启并产生基线快照;
- 高危告警 3 分钟内到达值班人,测试消息已确认;
- 白名单经过一周观察期收敛,误报率可接受;
- 保留原始事件日志不少于 30 天,便于溯源。
如果希望减少自建规则的维护成本,AegisX 提供主机 Agent 接入、基线检查、文件完整性监控与告警联动的成套能力,可把上述流程收敛到统一控制台,适合缺少专职安全人员的中小团队。
行动建议
不要等出事再补。今天就选一台非核心业务机做试点:装 Agent、跑基线、配一条高危告警到 IM 群,完整走通一遍链路。确认无误后,用同样的流程批量推送到其余主机,并把「新机器上线必须装 Agent 并验证心跳」写进运维规范。主机安全防护的价值不在于工具多先进,而在于每台机器都真的被看见。
常见问题(FAQ)
主机安全Agent安装后显示离线怎么办?
先确认Agent进程与心跳端口。执行 systemctl status 查看服务状态,用 ss -lntp 检查Agent通信端口是否监听,再测试到服务端的443出站连通性。常见原因是安全组未放行出站、DNS解析失败或系统时间偏差过大导致证书校验失败,逐项排查后重启Agent并观察心跳上报。
主机安全策略配得太严,告警太多怎么处理?
先分级再收敛。把告警按严重度分为高、中、低三档,高危事件实时通知,中低危汇总为日报;对已知的运维脚本、备份任务路径加入白名单,对同一规则设置5到10分钟抑制窗口。上线初期保留一周观察期,逐条确认误报来源再调整规则,避免直接关闭检测项。
文件完整性监控应该监控哪些目录?
优先覆盖可执行文件与配置目录:/etc、/usr/bin、/usr/sbin、/bin、/sbin、/root/.ssh、Web根目录与定时任务目录 /etc/cron*、/var/spool/cron。这些位置被篡改通常意味着入侵或提权。监控粒度为内容哈希加权限变更,排除日志与缓存目录以减少噪音。
主机安全告警如何联动到企业微信或钉钉?
通过Webhook实现。在告警平台创建通知渠道,填入企业微信或钉钉机器人Webhook地址,设置触发条件为高危及以上,并配置消息模板包含主机名、IP、规则名与时间。发送前做一次测试推送,确认机器人安全设置(关键词或签名)与告警内容匹配,避免被拦截。
没有预算买商业产品,能做主机安全防护吗?
可以,用开源组件搭建基础能力。用auditd做系统调用审计、AIDE做文件完整性校验、osquery做资产与状态查询,配合定时任务与脚本把异常写入日志,再用Webhook推送到IM。开源方案需要自己维护规则与误报,适合服务器规模较小、有一定脚本能力的团队。