什么自动入侵通知/检测设置适合家庭桌面使用?

ire*_*s09 27 security firewall software-recommendation logs

我已经使用 Linux 有一段时间了,我总是觉得需要有一个被动的软件/脚本设置,它可以通过电子邮件或视觉/音频通知。

我知道如何查看日志和其他东西,但在大多数情况下,这是一个手动、耗时的过程。我正在寻找具有一些良好日志解析功能的半/完全自动化的东西。

我知道 IDS 系统可用于监控 Snort 等网络,但它们对于普通家庭用户来说太过分了,而且启动和运行过程很痛苦。

作为家庭用户,我有什么好的选择?

ari*_*ica 15

一个简单有效的通用解决方案是使用logcheck

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
Run Code Online (Sandbox Code Playgroud)

logcheck定期有效地扫描所有日志(从上次停止的地方开始),过滤它所看到的内容以消除任何被认为是正常的内容,并可以选择通过电子邮件发送任何与正常/常规模式不匹配的警报。

主要思想是随时注意日志文件中是否出现任何严重条目,所有这些条目,因此不必这样做。

logcheck是高度可配置的 (man logcheck)。您可以配置所有内容,包括:

  • 检查频率
  • 检查了哪些日志文件
  • 什么被认为是正常的与不正常的
  • 将警报(异常事件)通过电子邮件发送到的位置

和更多。您的忽略(正常/常规)模式驻留在/etc/logcheck/ignore.d.*下的多个文件,您可以根据需要自定义它们;主要是您可能想要添加自己的模式来忽略。默认的 Ubuntu 软件包附带了大量文件,其中包含许多服务的忽略模式,因此除非您的系统运行异常,否则无需添加太多内容。有 3 组预配置的忽略文件配置文件: ignore.d.workstationignore.d.serverignore.d.paranoid,您可以从中选择。

logcheck背后的主要思想是系统上运行的各种服务已经记录了异常事件。例如sshdpam已经记录了身份验证失败。所以主要缺少的组件是:

  • 过滤正常情况
  • 报警服务

两者都由logcheck在一个方便的包中提供。您可以将logcheck与任何其他日志记录结合起来。例如iptables的可被配置成syslog中未明确通过将规则所允许的任何网络连接尝试:

 iptables -A input -j LOG
 iptables -A input -j DROP
Run Code Online (Sandbox Code Playgroud)

在所有允许规则之后立即。

我发现logchecklogwatch更有帮助(在其他答案中建议),因为它预先打包了大量规则以忽略被认为是正常活动的内容。结果是它通过电子邮件发送的警报中的信噪比要高得多。天啊。

logcheck 的另一个优点是它与任何记录的服务都是正交的,因此没有重复的功能。每当您添加syslog用于记录事件(无论异常与否)的新服务到/var/log您下的任何文件时,您都会开始自动收到警报。

如何:

由于logcheck已经预先配置,此答案顶部的两行基本上涵盖了您开始所需的所有内容。只需安装它,然后查看顶部配置文件: /etc/logcheck/logcheck.conf更改您的电子邮件地址,以便向您发送logcheck电子邮件警报。

这是更详细地介绍第二步友好参考。由于 Ubuntu 基于 Debian,因此这些说明也适用于 Ubuntu。 这是另一个很好的参考

安装后,持续改进过程就开始了。随着时间的推移,您会完善您的规则以忽略您已经知道并且认为不应该关注的任何内容。这个优化过程就像在您喜欢的文本编辑器中向文件添加文本行一样简单。

忽略文件中的每一行都是一个扩展的正则表达式(请参阅 参考资料man 7 regex),但您可以使用简单的字符串,只要它们与您要忽略的日志行匹配即可。请记住,字符,例如*?“+”, []()是特殊的正则表达式,所以如果他们真的出现在日志行,你就必须用一个反斜杠逃脱他们\的忽略文件。

换句话说:如果您收到不想收到的警报,请查看通过电子邮件发送给您的日志行,然后添加与之匹配的模式,作为您选择的任何忽略文件的一行。我建议将其 /etc/logcheck/ignore.d.<yourloglevel>/my-ignores用作您的个人忽略文件。哪里<yourloglevel>是一个paranoidserverworkstation(如你在主配置文件中已选择:/etc/logcheck/logcheck.conf)。查看其他忽略文件中的示例,了解如何解释一直在更改的文本,例如进程 ID 或时间戳。有很多现有的例子可供学习。

最后一个提示:logcheck附带一个名为的有用实用程序logcheck-test,它对于测试新规则非常方便。man logcheck-test详情。