2个版本
| 0.1.3 | 2022年6月17日 |
|---|---|
| 0.1.2 | 2022年6月17日 |
| 0.1.1 |
|
#1469 in 文件系统
26KB
620 行
Snitch - 入侵通知
Snitch是一个文件完整性和认证监控系统。
-
Snitch通过递归用户定义的目录树来计算和存储文件的哈希值。如果文件哈希值发生变化,Snitch将向用户(通过电子邮件或Telegram)发送警告,通知已修改的文件。
-
Snitch还监视认证日志,并在用户登录时发送通知。
要求
这是一个正在进行中的工作,需要rust nightly功能
rustup default nightly
在纯Ubuntu/Debian上,您还需要
apt install gcc build-essential pkg-config libssl-dev
安装
cargo install snitch
请注意,访问root级别的文件夹和监视认证日志通常需要以root身份安装。
用法
运行初始扫描
snitch --init
并使用以下命令触发扫描以验证文件完整性:
snitch --scan
要开始监视认证日志,请使用以下命令:
snitch --watch
配置
Snitch可以在etc/snitch/config.yaml中进行配置。如果该文件不存在,您可以运行
snitch --demo-config > /etc/snitch/config.yaml
来创建一个模板,该模板在Ubuntu和Debian上应该很好。
该文件中所有在directories下的文件都将进行完整性检查。
通知渠道
Telegram
需要环境变量:TELEGRAM_BOT_TOKEN和TELEGRAM_CHAT_ID。
Slack
需要环境变量:SLACK_WEBHOOK_URL和SLACK_CHANNEL。
电子邮件
需要环境变量:SMTP_SERVER、SMTP_USER和SMTP_PASSWORD。请注意,一旦有人获得访问权限,在您的系统上以明文形式存储电子邮件凭证风险相当高。因此,现在最好仅用于开发。
性能
Ubuntu20.04 (~150,000个文件) 使用SHA265哈希算法在一个虚拟CPU上计算哈希值大约需要一分钟。
依赖关系
~30-65MB
~1M SLoC