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

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

我已经使用 Linux 很长一段时间了,我总是觉得需要一个被动软件/脚本设置,它可以通过电子邮件或视觉/音频通知随时提醒我任何可疑的网络活动,如扫描、登录尝试失败等。

我知道如何查看日志等内容,但大多数情况下,这是一个手动且耗时的过程。我正在寻找具有良好日志解析功能的半自动化/全自动程序。

我知道用于监控网络的 IDS 系统,例如 Snort 等,但它们对于普通家庭用户来说有点过度,而且启动和运行的过程也很痛苦。

作为家庭用户,什么是适合我的选择?

答案1

一个简单有效的通用解决方案是使用日志检查

sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]

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

主要思想是时刻留意日志文件中出现的任何严重条目,所有条目,所以不需要。

日志检查高度可配置(man logcheck)。您可以配置所有内容,包括:

  • 检查频率
  • 检查哪些日志文件
  • 什么被认为是正常的,什么不是
  • 向哪里发送警报(异常事件)

等等。您的忽略(正常/常规)模式位于以下多个文件中:/etc/logcheck/ignore.d.*您可以根据自己的需要自定义它们;主要是您可能想要添加自己的忽略模式。默认的 Ubuntu 软件包附带了一组广泛的文件,其中包含许多服务的忽略模式,因此除非您的系统运行异常,否则不需要添加太多内容。有 3 组预配置的忽略文件配置文件: 忽略.d.工作站忽略.d.服务器, 和忽略.d.偏执您可以从中挑选。

背后的主要思想日志检查系统上运行的各种服务已经记录了异常事件。例如sshd或者聚丙烯酰胺已经记录了身份验证失败。因此,主要缺少的组件是:

  • 过滤正常内容
  • 警示服务

两者都由日志检查方便包装。您可以组合日志检查与其他任何日志记录一样。例如iptables可以配置为系统日志通过添加规则,任何未明确允许的网络连接尝试:

 iptables -A input -j LOG
 iptables -A input -j DROP

紧接着所有的允许规则。

我发现日志检查比...更有帮助日志监视(其他答案中建议)因为它预先打包了大量规则来忽略被认为是正常活动的内容。结果是它通过电子邮件发送的警报中的信噪比要高得多。YMMV。

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

如何:

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

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

安装后,持续改进过程就开始了。随着时间的推移,您可以完善规则,忽略您已经知道的和认为不必担心的所有内容。此改进过程非常简单,只需在您喜欢的文本编辑器中向文件添加文本行即可。

忽略文件中的每一行都是一个扩展的正则表达式(请参阅man 7 regex),但您可以使用简单字符串,只要它们与要忽略的日志行匹配即可。请记住,诸如*?、 '+' 、[]、等字符在正则表达式中是特殊的,因此如果它们确实出现在日志行中,则您必须在忽略文件中()使用反斜杠对其进行转义。\

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

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

答案2

如果您的网络上没有很多系统,那么设置像 Snort 这样的 IDS 可能有点过头了(尤其是如果您的机器上没有任何网络服务)。我建议首先配置 logwatch,以便向您自己发送系统上正在发生的事情的报告。完成之后,配置您的 syslog,以便获得尽可能多的相关信息。

答案3

当您在网络中运行服务(ftp、web、nfs、ssh 等)时,入侵检测必不可少。这是因为它们暴露在互联网上,并且由于:

  • 配置错误
  • 软件漏洞

它们需要经验丰富的网络管理员每天监控。如果您运行此服务,您可能已经掌握了如何避免此类问题的最低限度的知识。

如果您没有运行任何此类服务,则您的互联网路由器防火墙已经阻止了端口上的任何传入连接。要扫描您的网络路由器

如果你们都是绿色的,那么你们都是好的。

最后但并非最不重要的一点是,您的路由器可能内置有入侵检测系统(因为 99% 的路由器都运行精简版 Linux 服务器)。为此,您必须查看路由器制造商的手册。

相关内容