tdiprima/LogHawk
GitHub: tdiprima/LogHawk
LogHawk 是一个面向小型 Linux 服务器集群的轻量级安全日志收集与实时告警工具包,填补了原始日志与重量级 SIEM 之间的空白。
Stars: 0 | Forks: 0
# LogHawk 🦅
LogHawk 是一个轻量级的 Linux 安全可观测性工具包,用于在小型服务器集群中收集、搜索系统日志并发出告警。
它使用带有双向 TLS 的 `rsyslog` 将日志从受监控的服务器转发到中央收集器,然后为实时告警、事件调查、流水线健康检查以及 AI 就绪的事件导出提供实用工具。
## 为什么会有这个项目
LogHawk 专为以下环境而构建:完整的 SIEM 平台过于笨重,但仅靠原始的 SSH 访问和分散的 `/var/log` 文件又无法满足需求。
它演示了:
- 通过 rsyslog 基于 TLS 的安全集中式日志收集
- 跨 Ubuntu/Debian 和 RHEL 系列系统的 Linux 运维操作
- 针对身份验证、sudo、内核、cron、auditd 和服务事件的安全聚焦检测
- 轻量级、低依赖的 Python 和 Bash 工具
- 运维优化:安装程序、systemd 服务文件、配置加载、日志轮转和健康检查
## 功能特性
- 🔐 从代理到中央收集器的 mTLS 日志转发
- 按 agent 主机名存储在 `/var/log/remote//` 下的远程日志
- 具有严重性级别和重复抑制功能的实时告警
- 通过本地邮件传输代理发送的可选电子邮件告警
- 面向下游工具的 JSONL 告警输出
- 用于常见调查的搜索快捷方式
- 用于检测缺失或停滞日志的流水线时效性检查
- AI 导出工具,可将可疑日志活动转换为结构化 JSON 或可直接粘贴的 LLM 提示词
## 仓库结构
```
central/ Collector setup, rsyslog receiver config, and certificate helpers
agent/ Agent installer and rsyslog forwarding config
tools/ Alerting, search, export, config, daemon, and pipeline utilities
```
## 系统要求
- 带有 `systemd` 的 Linux 主机
- `rsyslog`
- 用于生成证书的 `openssl`
- Python 3.9+
- 目标主机上具备 `apt`、`dnf` 或 `yum`
Python 工具仅使用标准库。
## 快速入门
生成私有 CA、服务器证书和客户端证书:
```
./central/generate-certs.sh \
--server-name log-server.example.com \
--server-address 10.0.0.10 \
--client-name web-01 \
--client-name db-01
```
将证书复制到收集器和代理节点:
```
./central/copy-certs.sh log-server.example.com --role collector
./central/copy-certs.sh web-01 --role agent --client-name web-01
```
安装中央收集器:
```
sudo ./central/install-central.sh --allow-from 10.0.0.0/24
```
在每台受监控的服务器上安装代理:
```
sudo ./agent/install-agent.sh log-server.example.com
```
在收集器上安装告警守护进程:
```
sudo ./tools/install-alerts-daemon.sh \
--email security@example.com \
--file '/var/log/remote/*/*.log' \
--min-severity HIGH \
--json-out /var/log/loghawk-alerts.jsonl
```
## 常用命令
交互式查看日志:
```
sudo python3 tools/watch-alerts.py --file '/var/log/remote/*/*.log'
```
搜索 SSH 登录失败记录:
```
sudo ./tools/search-logs.sh ssh-fails
```
搜索特定 IP 的活动:
```
sudo ./tools/search-logs.sh from-ip 192.168.1.50
```
检查远程日志是否停滞:
```
sudo ./tools/check-log-pipeline.sh --minutes 15
```
将可疑事件导出为 JSON:
```
sudo python3 tools/export-for-ai.py --hours 24 --out /tmp/loghawk-events.json
```
生成 AI 大模型 (LLM) 可用的提示词:
```
sudo python3 tools/export-for-ai.py --hours 2 --llm-prompt
```
## 配置说明
大多数工具在运行时会读取 `/etc/loghawk/loghawk.conf`(如果存在)。示例配置文件位于:
```
tools/loghawk.conf.example
```
你可以通过以下方式覆盖配置路径:
```
LOGHAWK_CONFIG=/path/to/loghawk.conf
```
Python 工具还支持:
```
--config /path/to/loghawk.conf
```
## 告警覆盖范围
LogHawk 包含以下方面的检测模式:
- SSH 登录失败、无效用户、成功登录和 root 登录
- sudo 活动和被拒绝的提权尝试
- 用户、组、密码、SSH 和 sudo 配置的更改
- 内核恐慌、磁盘错误、OOM 终止、段错误和硬件错误
- cron 更改和 root 定时任务执行
- auditd 身份验证、异常、策略和用户管理事件
- systemd 服务失败、DNS 问题、防火墙拦截和磁盘满事件
## 项目状态
这是一个实用的安全工程项目。在生产环境中使用之前,请先检查检测模式、日志保留策略、防火墙规则、证书处理和告警路由。请阅读[文档](./docs)。
## 许可证
MIT 许可证。详见 [LICENSE](LICENSE)。
标签:AI集成, Awesome, Bash, Debian, JSONL, LangChain, LogHawk, mTLS, PB级数据处理, Python, RHEL, rsyslog, SecOps, systemd, 云安全架构, 子域名变形, 安全事件检测, 安全告警, 安全测试工具, 安全观察工具, 安全运维, 应用安全, 开源安全工具, 无后门, 日志收集, 时序数据库, 相互TLS, 系统日志, 系统管理, 自动化响应, 证书管理, 轻量级, 逆向工具, 逆向工程平台, 集中式日志管理