当前位置: 首页>>技术教程>>正文


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

, , , ,

问题描述

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

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

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

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

最佳解决办法

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

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

logcheck定期有效地扫描所有日志(从上次中断的地方开始),过滤所看到的内容以消除所有被认为是正常的内容,并且可以选择通过电子邮件将不符合正常/常规模式的内容发送给警报。

主要思想是使watch-out始终显示日志文件中所有重要条目的外观,因此您无需始终如此。

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

  • 检查频率

  • 检查哪些日志文件

  • 什么被认为是正常还是不正常

  • 将警报(异常事件)发送到的位置

和更多。您的忽略(常规/常规)模式位于/etc/logcheck/ignore.d.*下的多个文件中,您可以根据需要对其进行自定义;主要是您可能想添加自己的模式以忽略。默认的Ubuntu软件包已经包含大量的文件,这些文件具有用于许多服务的忽略模式,因此除非您的系统运行异常,否则没有太多添加。您可以从中选择3组pre-configured忽略文件配置文件:ignore.d.workstation,ignore.d.server和ignore.d.paranoid。

logcheck的主要思想是,系统上运行的各种服务已经记录了异常事件。例如。 sshd或pam已经记录了身份验证失败。因此,主要缺少的组件是:

  • 过滤正常情况

  • 警报服务

两者均由方便的软件包中的logcheck提供。您可以将logcheck与其他任何日志记录结合使用。例如,可以通过添加规则将iptables配置为syslog记录任何未明确允许的网络连接尝试:

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

在所有允许规则之后。

我发现logcheck比logwatch更有帮助(在其他答案中建议),因为pre-packaged具有大量规则,可以忽略被视为正常活动的规则。结果是它通过电子邮件发送的警报中的信噪比高得多。因人而异。

logcheck的另一个优点是它与记录的任何服务正交,因此没有功能重复。每当将使用syslog记录到/var/log下的任何文件中的新服务添加到使用syslog的新服务中时,您就会开始自动获取有关它的警报。

如何:

Since logcheck already comes preconfigured, two lines at the top of this answer essentially cover all you need to get started. Just install it, and go over the top configuration file: /etc/logcheck/logcheck.conf to change your email address so logcheck emails alerts to you.

Here’s a friendly reference going over the second step in more detail. Since Ubuntu is based on Debian, these instructions should work on Ubuntu too. Here is another good reference.

Once you install, the continuous improvement process starts. Over time, you refine your rules to ignore anything that you already know about and feel shouldn’t be of concern. This refinement process is as simple as adding text lines to a file in your favorite text editor.

Each line in an ignore file is an extended regular expression (see man 7 regex), but you may use simple strings as long as they match the log line you want to ignore. Just remember that characters like *, ?, ‘+’, [], () are special in a regular expression, so if they actually appear in the log lines, you would have to escape them with a backslash \ in the ignore files.

In other words: if you get an alert you don’t want to get, look at the log line that was emailed to you, and add a pattern that matches it, as one line to any ignore file of your choice. I suggest using /etc/logcheck/ignore.d.<yourloglevel>/my-ignores as your personal ignore file. Where <yourloglevel> is one of paranoid, server, or workstation (as you’ve already selected in the main config file: /etc/logcheck/logcheck.conf). Look at the examples in other ignore files to see how to account for text that changes all the time like process-IDs, or time-stamps. There are lots of existing examples to learn from.

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

次佳解决办法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7254.html,未经允许,请勿转载。