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