Syslog本身不是监控工具,而是日志“输送管道”,负责可靠采集与分发认证、登录、sudo、SSH、防火墙等安全事件;真正实现主动监控、告警和分析的是Logwatch(生成安全日报)、Fail2ban(自动封禁攻击IP)及ELK/Loki(集中化可视化与告警)。

Linux 安全运维中,Syslog 本身不是监控工具,而是日志的“输送管道”——它把认证、登录、sudo、SSH、防火墙等关键安全事件如实记录下来;真正实现主动监控、告警和分析的,是配合它的日志监控工具。核心思路是:Syslog 负责可靠采集与分发,外部工具负责理解、识别和响应。
确保 Syslog 记录完整且可信
监控的前提是日志不丢、不错、不被篡改。需重点配置以下几项:
-
启用 auth 和 authpriv 设备:这两类设施专门记录用户认证行为(如 login、su、ssh、sudo、pam),必须在 /etc/rsyslog.d/ 下添加明确规则,例如:
auth,authpriv.* /var/log/secure(CentOS/RHEL)或auth,authpriv.* /var/log/auth.log(Debian/Ubuntu) -
禁用日志覆盖,启用时间戳与主机名:在 rsyslog.conf 开头取消注释或添加:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$RepeatedMsgReduction off(防止合并重复行,避免漏掉多次失败尝试) -
设置日志文件权限:执行
sudo chown root:syslog /var/log/secure和sudo chmod 640 /var/log/secure,防止普通用户读取或覆盖 -
开启日志写入同步(可选但推荐):添加
$ActionFileEnableSync on,降低断电导致日志丢失风险
用 Logwatch 做每日安全摘要
Logwatch 是轻量级、开箱即用的文本分析工具,适合生成可读性强的日报,特别适合人工巡检。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 安装后默认每天运行一次,自动扫描
/var/log/secure、/var/log/messages等文件 - 能识别暴力破解(如 SSH 多次失败)、异常 sudo 使用、新用户创建、可疑登录地点等模式
- 配置文件位于
/etc/logwatch/conf/logwatch.conf,可调整范围:
—Service = "sshd"只关注 SSH
—Detail = High输出更细粒度的 IP 和时间
—Mailingto = admin@example.com邮件推送结果
用 Fail2ban 实现自动响应
Fail2ban 是基于 Syslog 实时解析的主动防御工具,它监听日志流,发现攻击模式后立即封禁 IP。
- 它不替代防火墙,而是作为“日志驱动的动态防火墙”:读取
/var/log/secure中的Failed password或Invalid user行,触发 iptables 或 firewalld 规则 - 关键配置在
/etc/fail2ban/jail.local(优先于 .conf):
—enabled = true
—maxretry = 3
—findtime = 600(10 分钟内 3 次失败即封)
—bantime = 3600(封禁 1 小时) - 支持自定义 filter(正则匹配日志)和 action(封禁方式),也可对接 Slack、Telegram 发送告警
用 ELK 或 Grafana Loki 做集中化与可视化
当服务器数量超过 3–5 台,或需关联多源日志(如 Web 服务 + 系统日志 + 防火墙日志),应构建集中式日志平台。
-
rsyslog 作为采集端:配置 TCP 转发(
*.* @@logserver:514),启用 TLS 加密传输,避免日志明文外泄 -
Loki + Promtail 方案更轻量:Promtail 从本地日志文件抓取,Loki 存储并提供标签化查询;Grafana 中可做:
— 绘制每小时 SSH 登录失败次数趋势图
— 设置告警规则:过去 5 分钟失败数 > 10 次即触发邮件/钉钉通知
— 关联host、program、level标签快速下钻分析 -
ELK 中注意字段解析:Logstash 的 grok filter 必须正确提取
user、ip、event_type字段,否则 Kibana 无法做用户行为画像或地理分布热力图

















