哪种自动入侵通知/检测设置适合家用台式机使用?


27

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

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

我知道用于监视Snort等网络的IDS系统,但对于普通家庭用户而言,它们是一个过大的选择,并且是一个痛苦的过程,难以启动和运行。

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


您如何定义“被动”?在这种情况下,您有时会自己运行一次以查看是否发生了可疑现象?
Nanne

Answers:


15

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

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

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

在所有允许规则之后。

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

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有关详细信息。


嗨,我喜欢logcheck背后的想法...您能为此指出一个深入的指导吗?谢谢:)
irenicus09 2013年

1
@ irenicus09:刚刚添加了howto部分,并带有可选链接以供参考。
arielf 2013年

Congratz赢得赏金,写得很好的回答人。谢谢:)
irenicus09 2013年

3

如果您的网络上没有很多系统,那么设置像Snort这样的IDS可能会显得过高(特别是如果您的计算机上没有任何网络服务)。我建议从配置logwatch开始,向自己发送有关系统状况的报告。完成后,配置系统日志,以便获得尽可能多的相关信息。


您好,我喜欢您的答案...但是,请您分享更多有关执行此操作的详细信息。弄乱配置可能非常棘手,特别是对于没有经验的用户。但是,如果您能为我提供深入的指导,我将不胜感激。谢谢。
irenicus13年

@ irenicus09我认为这应该足够了:如何在基于Ubuntu的系统上设置Logwatch
AndrewX192 2013年

感谢您的指导,我已经成功设置了logwatch,我喜欢它。对于端口扫描监视器,我还设置了portentry,在确定最适合我的方法之前,我将尝试其他工具和方法:)
irenicus09 2013年

1

确保在网络中运行服务(ftp,web,nfs,ssh等)时需要进行入侵检测。这是因为它们在Internet上公开,并且由于:

  • 错配
  • 软件漏洞

他们需要每天由经验丰富的网络管理员进行监控。如果您运行此服务,则可能已经对如何避免此问题有最低的了解。

如果您没有运行任何一项服务,则说明您的Internet路由器防火墙已经阻止了端口上的任何传入连接。扫描网络路由器

如果您全都是绿色,那么您一切都很好。

最后但并非最不重要的一点是,您的路由器可能具有内置的入侵检测系统(因为所有路由器中有99%运行的是带区卷的linux服务器)。为此,您必须检查路由器制造商的手册。


您好,谢谢您的回答。它很有见地,我知道您在谈论的所有内容。但是,我要说的是,我正在系统上运行各种服务,从安全角度来看如何精确地跟踪活动。作为家庭用户,我需要一个简单易用的解决方案,我认为您避免了这一部分:)
irenicus09 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.