maldet / Rfxn Linux MalDetect 文档为获取电子邮件报告提供了此功能,即使没有发现任何内容:
-e, --report SCANID email View scan report of most recent scan or of a specific SCANID and optionally e-mail the report to a supplied e-mail address e.g: maldet --report e.g: maldet --report list e.g: maldet --report 050910-1534.21135 e.g: maldet --report SCANID [email protected]
一切都非常简单,但我不确定如何在此处将电子邮件地址作为第二个参数传递,同时允许第一个参数(扫描 ID)回退到其默认值,以便 maldet 将最新报告的任何内容发送给此自定义电子邮件地址。我希望能够使用它(例如在 cron 中)定期检查 Maldet 是否正在扫描并能够按预期发送电子邮件报告。
我已经尝试maldet --report "" [email protected]
基于在 bash 中传递空变量的标准方法,但它会忽略它并将看起来像空报告的内容输出到控制台中。
我也尝试过类似的东西maldet --report 0 [email protected]
,maldet --report " " [email protected]
但它会响应{report} no report found, aborting
。
如果相关,环境是 Centos。
很抱歉复活了一个老问题。我在每次扫描后尝试让 maldet 通过电子邮件发送报告时遇到了同样的问题。我按照@Tilman 的建议深入研究了源代码。负责发送报告邮件的函数 view_report() 可以在
/usr/local/maldetect/internals/functions
v1.6.4 的第 645-706 行找到。具体查看负责的代码(第 681-696 行),我们看到仅当存储为 的 SCANID$rid
是后缀时才会发送邮件,即190429-0343.31494
,对应于报告的文件/usr/local/maldetect/sess/
名session.190429-0343.31494
处理空 SCANID 的代码紧随其后(第 697-705 行):
我原以为处理空 SCANID 的代码会简单地抓取最新的并通过电子邮件发送。它实际上所做的是查看
/usr/local/maldetect/sess/session.last
maldet 存储最新SCANID 的位置。并且由于某种原因,它会在终端编辑器中打开相应的报告,而不仅仅是打印出来。请注意,实际上没有任何工作代码可以通过电子邮件发送最新报告。-- 更新修复 - 2019 年 5 月 5 日--
由于阻止 LMD 按照我最初的修复要求执行完整性检查是一个潜在的安全风险,我使用 LMD 的 custom.cron 创建了一个替代解决方案。好处是完整性检查仍然存在,并且电子邮件脚本应该通过更新保持不变。您无需接触 LMD 内部文件或 maldet 每日 cron。
确保
$email_alert="1"
并$email_addr=
设置为至少一个正确的电子邮件地址/usr/local/maldetect/conf.maldet
。然后添加以下内容/usr/local/maldetect/cron/custom.cron
,它将在 maldet 每日 cron 结束时自动运行:您也可以在此处检查更新https://github.com/kdubdev/linux-malware-detect/blob/master/files/cron/custom.cron
在脚本中,您可以禁用日志记录、覆盖电子邮件主题和/或收件人,以及自定义电子邮件正文介绍和页脚。该脚本有大量注释,因此您可以跟进或进行更改。
我欢迎任何反馈或改进建议。
-- 下面的原始修复 --
为了解决这个问题并添加其他改进,我修改了 view_report() 并进行了以下更改:
--report
并--report ""
允许$ maldet --report newest [email protected]
$ maldet --report newest [email protected]
或$ maldet --report "" [email protected]
首先:您需要进行设置
autoupdate_version_hashed="0"
以/usr/local/maldetect/conf.maldet
防止 LMD 在运行更新检查时自动覆盖您所做的任何更改。请注意,这是一个潜在的安全问题:第二:将您的当前
view_report()
/usr/local/maldetect/internals/functions
(第 645-706 行)替换为:/usr/local/maldetect/internals/functions
您也可以在此处的拉取请求中找到整个更新的文件: https ://github.com/kdubdev/linux-malware-detect/blob/patch-1/files/internals/functions最后:
/etc/cron.daily/maldet
如果您希望在每次每日扫描后收到电子邮件 ,请将 以下行添加到末尾:$inspath/maldet --report newest [email protected]
注意:如果不清楚,您可以使用
-e
或--report
互换。要么的作者
maldet
没有提供这种可能性,要么忽略了记录它。从外面是不可能猜到的。最好的方法是UTSL:在程序源代码中查找它如何处理-e
选项以及是否有办法启动“最近扫描”分支并同时激活电子邮件选项。您应该
/usr/local/maldetect/conf.maldet
在第 22 行编辑您的和。替换email_addr="[email protected]"
为有效地址。编辑:
我读错了原帖,但这个设置可以帮助其他人。
这是执行此操作的正确方法:maldet -e reportID email
您不需要 --report 开关