Linux 上的 Tripwire 入侵检测教程Linux 上的 Tripwire 入侵检测教程Linux 上的 Tripwire 入侵检测教程Linux 上的 Tripwire 入侵检测教程
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 上的 Tripwire 入侵检测教程

发表 admin at 2025年2月28日
类别
  • 未分类
标签

无论您是经验丰富的系统管理员还是 Linux 初学者,无论您管理的是企业级网络还是家庭网络,您都必须意识到安全问题。

一个常见的错误是认为如果您是家庭用户,拥有很少的面向世界的计算机,那么您就可以免受恶意攻击。攻击者不会从您那里获得他可以从大型企业网络获得的信息,但这并不意味着您是安全的。您越早意识到安全性越好。

虽然网络安全主题很庞大,但本教程将介绍一个名为 Tripwire 的有趣软件,它是一个 HIDS(基于主机的入侵检测系统)。当然,除了了解 Tripwire 之外,您还将了解 IDS 是什么、它的用途、陷阱和陷阱。一点网络知识肯定会对你有所帮助,再加上一定程度的偏执(这是不是一个笑话,这是你的决定)。

在本教程中您将学习:

  • 什么是入侵检测系统?

  • 如何在主要 Linux 发行版上安装 Tripwire

  • 如何通过命令使用 Tripwire

  • 如何配置 Tripwire 设置文件

什么是入侵检测系统?

入侵检测系统(以下称为 IDS)是监视网络中任何可疑活动的软件应用程序,此处的关键词是“监视”。 IDS 和防火墙之间的区别在于,前者通常只报告任何异常活动,而防火墙是为阻止所述活动而创建的应用程序。所以这基本上是被动与主动的情况。

正如我们上面所说,虽然您可以在 SOHO 网络中使用 IDS,但它的真正价值体现在具有大量子网和有价值数据的大型网络中。还有 IDPS,其中额外的“P”代表预防,这意味着 IDPS 还将尝试重新配置防火墙以反映新的威胁情况,因此在这种情况下,被动与主动相遇。

我们将让您更深入地研究有关该主题的丰富文档,因为一般而言,安全性不是我们文章的主题,我们将尝试重点关注 IDS 的类型,这样我们就可以进入我们的主题,即 tripwire 。

IDS的主要类型

有NIDS和HIDS,即Network IDS和Host-based IDS。第一个尝试通过监视网络流量(例如 Snort)来检测入侵者,而 HIDS 则监视受监视系统上的文件更改、系统调用、ACL 等,以达到相同的结果。

有时HIDS也可以配置为监视网络数据包,就像NIDS一样,但这不是一篇关于IDS一般分类的文章。关于各种 IDS 类型的效率有不同的观点,但我们认为使用正确的工具完成正确的工作。

HIDS 是设计的第一种入侵检测软件,并且,正如人们可以轻松假设的那样,当与外界的流量不太频繁时(因为当时网络流量充其量是相当稀疏的),或者网络设计的本质是允许根据流量使用 HIDS 和 NIDS(想想 DMZ)。

如何在主要 Linux 发行版上安装 Tripwire

在我们开始之前,有一个非常重要的建议:尝试在安装系统后立即安装 tripwire,因为这样系统更有可能是干净的,不会被恶意人员更改。 Tripwire 创建一个与您的系统相关的信息数据库,然后将其与定期运行时发现的信息进行比较(它应该这样做),以便从中得到一些实际用途。

您可以使用下面适当的命令通过系统的包管理器安装 Tripwire。

要在 Ubuntu、Debian 和 Linux Mint 上安装 Tripwire:


$ sudo apt install tripwire

要在 Fedora、CentOS、AlmaLinux 和 Red Hat 上安装 Tripwire:


$ sudo dnf install tripwire

要在 Arch Linux 和 Manjaro 上安装 Tripwire(通过 yay 从 AUR 安装):


$ yay -S tripwire-git

根据您的发行版,您会在安装过程中看到一些提示。这些是不言自明的,并且允许您配置 Tripwire 的一些设置。

系统将要求您配置密码,如下所示。请确保您不要忘记该密码!

如何使用 Tripwire

安装 Tripwire 后,我们就可以开始使用它了。

  1. Tripwire 通过使用模式来工作。基本上来说,模式是 Tripwire 可以执行的功能。所有 Tripwire 模式也可以被视为操作,并且每个与操作相关的标志(例如 –init)都有一个简短的等效标志,前缀为 -m。因此,为了初始化数据库,我们可以这样写:

    
    # tripwire -m i 
    

  2. 经过所有这些讨论后,人们显然会想要使用 tripwire,因此可以通过使用检查模式来完成:

    
    # tripwire -m c 
    

  3. 在检查模式下经常使用的一个标志是 -I,它代表交互式。扫描时你会发现 Tripwire 发现了大量问题,但不要惊慌。当然,不要仅仅依靠 HIDS 来检查系统的完整性。众所周知,IDS 软件通常会产生误报/误报,因此必须对此类系统的报告持保留态度。因此,我们的检查模式命令变为:

    
    # tripwire -m c -I
    
  4. 在我们进入数据库更新模式之前,我们必须提醒您查看手册。每种模式都有其特定的选项,您可能会发现这些选项很有用,以及所有或某些模式通用的其他选项,例如 -v、-c 或 -f(我们邀请您了解他们的作用)。如果您讨厌 man 命令,Tripwire 的 GitHub 上还有一份手册。不用说,由于您必须经常使用这些命令,因此您应该使用 cron 或任何用于调度的工具。例如,root 的 crontab 中的这一行就可以解决问题:

    
    45 04 * * * /usr/sbin/tripwire -m c 
    

    这将在每天凌晨 04:45 运行该命令。

  5. 随着时间的推移,系统上的文件正在发生变化。系统更新、新安装,所有这些都会增加真实情况与 Tripwire 对您系统(数据库)的了解之间的差异。因此,数据库必须定期更新,以获得尽可能准确的报告。我们可以通过输入以下内容轻松完成此操作:

    
    # tripwire -m u
    
  6. 如果您想查看当前形式的数据库,twprint 可以帮助您:

    
    # twprint -m d
    

    我们强烈建议,特别是在慢速终端或远程连接上,但如果您想实际读取任何内容,请使用像 less 这样的分页器或将输出重定向到文件。通过 wc 管道传输上述命令的输出会返回 769078 行。你被警告了。

  7. 如果您远程参与系统安全,您就会知道“策略”一词的含义。用 Tripwire 术语来说,您可以在文件中定义策略,该文件将包含有关将监视哪个系统对象以及如何监视的规则。 # 开始注释,策略文件中一行的一般规则是:

    
    #This is a comment and an example 
    # object -> property
    /sbin -> $(ReadOnly)
    ! /data1
    

    因此,对象基本上是系统中的一个文件夹,这里第二行显示了如何使用 ! 运算符(C,有人吗?)告诉 tripwire 单独保留 /data1 目录。关于对象,请注意,像 $HOME 或 ~ 这样的名称永远不是有效的对象标识符,您可能会收到错误消息。在编写或更新策略文件(规则属性、变量等)时应该注意很多事情,而 Tripwire 在这方面看起来很有前途且用途广泛。您可以在手册页中找到使用 tripwire 的策略文件选项可以执行的所有操作,并在 /etc/tripwire/twpol.txt 中找到一些很好的示例。

  8. twadmin 在创建或检查配置文件或密钥时也会很有帮助。例如,此命令将打印当前状态的策略文件:

    
    # twadmin -m p
    
  9. 最后是测试模式。如果监控工具不能正确地向您报告,那么它有什么用呢?这就是测试模式的作用。它根据配置文件中的设置(下面的第一个示例)或作为命令行选项(下面的第二个示例)向管理员发送电子邮件,如果正确接收邮件,则一切顺利。当然,这假设您的邮件系统已正确设置。让我们来看看:

    
    # tripwire -m t 
    # tripwire -m t -e $user@$domain
    

绊线文件

Tripwire 生成了一些不同的配置文件。它们存在于 /etc/tripwire 目录中。


$ ls /etc/tripwire
$hostname-local.key  site.key  tw.cfg  twcfg.txt  tw.pol  twpol.txt

当然,$hostname 是任何 Linux 机器上 hostname 命令的输出。现在,这两个 .key 文件是 tripwire 的站点范围密钥和本地密钥,并且如您所见,有两个 .txt 文件,一个 .cfg 和一个.pol 文件。如果您仔细观察,您可能会注意到这四个文件的命名模式,您是对的。 .cfg 和 .pol 文件是从相应的 .txt 文件生成的,如下所示:


# twadmin -m F /etc/tripwire/twcfg.txt
# twadmin -m F /etc/tripwire/twpol.txt

这将分别生成 tw.cfg 和 tw.pol 文件,正如我们所说,它们对于配置 tripwire 至关重要。 tw.cfg 是配置程序的文件,tw.pol 定义策略。让我们看一下语法。

tw.cfg

副标题是故意误导的,因为 tw.cfg 是从文本文件生成的,与 sendmail 配置的完成方式非常相似,而且它是二进制的,普通人无法读取。

因此,我们要做的就是更改 twcfg.txt 中对象的值,然后“重新编译”tw.cfg。考虑到该计划的性质,您会发现没有太多可以更改的选项。这是我们设置的前几行:


ROOT           =/usr/sbin
POLFILE        =/etc/tripwire/tw.pol
[...] 
LATERPROMPTING =false
[...]

再次邀请您以 root 身份打开 twcfg.txt 文件并根据您的喜好进行调整。

台湾波尔

二进制与文本的故事也在这里成立,所以我们不会再说了。相反,我们将重点关注 twpol.txt 文件中您可能只想更改的一些熟悉的值。一般语法与上面相同。现在,您可能想要在此处和 twcfg.txt 中更改一个值(在那里您将看到它作为 ROOT 对象,此处为 TWBIN ) 是可执行文件所在的位置。

如果您使用 aptitude 或 dnf 等包管理器进行安装,则该位置很可能是 /usr/sbin。但是,如果您从源代码安装,因为正如您所见,并不是每个人都为其发行版打包 tripwire,也许您安装到了 /usr/local ,如果您不更改这些位置,则什么都不会起作用正如它应该。但是,我们建议使用符号链接:


# ln -s /usr/local/bin/tripwire /usr/sbin/tripwire 

与任何此类文件一样,该策略定义系统中的哪些位置具有何种重要性(例如,/boot 至关重要)。这是策略文件的本质。您当然可以更改这些值,但我们建议您谨慎行事并给出一个很好的理由。例如,关键安全部分定义为:


SEC_CRIT        =$(IgnoreNone) -SHa ; # Critical files that cannot change

定义所有安全类别后,twpol.cfg 定义每个重要位置的安全重要性,如上所示。该策略文件几乎有 300 行长,但有很好的注释,可以让您的生活更轻松。希望您的第一个 Tripwire 安装不会投入生产,因此请花一些时间尝试策略定义,直到找到正确的位置。

最后的想法

这次 IDS 之旅(!)很短,考虑到可以学到很多关于主题、用例、现实示例、测试等的知识。我们只是想向您介绍一般的 Tripwire 和入侵检测系统,让您思考什么安全场景最适合您的站点。

©2015-2025 Norria support@norria.com