如何在 Ubuntu 16.04 上使用 Tripwire IDS 监控和检测修改的文件
在此页
- 我们将做什么
- 先决条件
- 第 1 步 - 安装 Tripwire
- 第 2 步 - 为 Ubuntu 系统配置 Tripwire 策略
- 第 3 步 - 检查系统文件的完整性
- 第 4 步 - 向 Tripwire 添加新规则
- 第 5 步 - 设置 Tripwire 通知和 cron
- 参考资料
Tripwire 是一个免费的开源入侵检测系统 (IDS)。它是一种安全工具,用于监视和警告系统上的文件更改。 Tripwire 是一个强大的 IDS,可以保护您的系统免受不必要的更改。您可以监控您的系统文件,包括网站文件。因此,当正在监视的任何文件中有任何不需要的文件更改时,tripwire 将检查您的系统并提醒您(如果该设置已到位)。
在本教程中,我们将向您展示如何在 Ubuntu 16.04 上安装和配置 Tripwire Host Based IDS。我们还将向您展示如何配置 tripwire 以监视和检测系统上的修改文件。
我们将要做什么
- 安装 Tripwire
- 为 Ubuntu 系统配置 Tripwire 策略
- 验证 Tripwire 配置
- 将新规则集添加到 Tripwire 政策
- 设置 Tripwire 通知和 cron
先决条件
- Ubuntu 16.04 服务器
- 根权限
第 1 步 - 安装 Tripwire
第一步是将 tripwire 安装到系统中。该工具在官方 Ubuntu 存储库中可用 - 只需更新您的 Ubuntu 存储库并使用以下命令安装 Tripwire。
sudo apt update
sudo apt install -y tripwire
安装期间,系统会询问您有关 Postfix SMTP 配置的信息。选择 Internet 站点并单击确定以继续安装。

对于邮件系统名称,保留默认值(如下所示),然后选择确定继续。

接下来,系统会询问您有关 Tripwire 配置的信息。
为 Tripwire 创建新的站点密钥 - 选择 Yes 并按 Enter 键继续。

现在对于 local-key,选择 Yes 并再次按 Enter。

对于 Rebuild Tripwire Configuration 选项,选择 Yes。

与 Rebuild Tripwire Policy 选项相同 - 选择 Yes。

现在系统将提示您输入站点密钥密码。键入密码并选择“确定”。

重复站点密钥密码。

然后对于本地密钥密码,键入密码并选择确定。

重复本地密钥密码。

至此,Ubuntu 16.04 上的 tripwire 安装已经完成。

第 2 步 - 为 Ubuntu 系统配置 Tripwire 策略
在这一步中,我们将为我们的 Ubuntu 系统配置 Tripwire。所有与 Tripwire 相关的配置都位于 /etc/tripwire 目录中。
Tripwire 安装完成后,我们需要初始化数据库系统。为它运行以下命令。
sudo tripwire --init
系统将询问您的本地密钥密码 - 输入您的本地密钥密码并按 Enter 键。
您可能会收到错误 No such directory ,如下所示。

要解决此错误,我们需要编辑 Tripwire 配置文件并重新生成配置。
在编辑 Tripwire 配置之前,我们需要检查哪个目录不存在,您可以使用以下命令执行此操作。
sudo sh -c "tripwire --check | grep Filename > no-directory.txt"
现在您可以通过以下方式查看所有不存在的目录和文件。
cat no-directory.txt

接下来,转到 Tripwire 配置目录并编辑配置文件 twpol.txt。
cd /etc/tripwire/
vim twpol.txt
在 Boot Scripts 规则上,如下注释该行。
(
rulename = "Boot Scripts",
severity = $(SIG_HI)
)
{
/etc/init.d -> $(SEC_BIN) ;
#/etc/rc.boot -> $(SEC_BIN) ;
/etc/rcS.d -> $(SEC_BIN) ;
在 System Boot Changes 规则上,注释如下。
(
rulename = "System boot changes",
severity = $(SIG_HI)
)
{
#/var/lock -> $(SEC_CONFIG) ;
#/var/run -> $(SEC_CONFIG) ; # daemon PIDs
/var/log -> $(SEC_CONFIG) ;
在根配置文件规则上,进行以下更改。
(
rulename = "Root config files",
severity = 100
)
{
/root -> $(SEC_CRIT) ; # Catch all additions to /root
#/root/mail -> $(SEC_CONFIG) ;
#/root/Mail -> $(SEC_CONFIG) ;
#/root/.xsession-errors -> $(SEC_CONFIG) ;
#/root/.xauth -> $(SEC_CONFIG) ;
#/root/.tcshrc -> $(SEC_CONFIG) ;
#/root/.sawfish -> $(SEC_CONFIG) ;
#/root/.pinerc -> $(SEC_CONFIG) ;
#/root/.mc -> $(SEC_CONFIG) ;
#/root/.gnome_private -> $(SEC_CONFIG) ;
#/root/.gnome-desktop -> $(SEC_CONFIG) ;
#/root/.gnome -> $(SEC_CONFIG) ;
#/root/.esd_auth -> $(SEC_CONFIG) ;
#/root/.elm -> $(SEC_CONFIG) ;
#/root/.cshrc -> $(SEC_CONFIG) ;
/root/.bashrc -> $(SEC_CONFIG) ;
#/root/.bash_profile -> $(SEC_CONFIG) ;
#/root/.bash_logout -> $(SEC_CONFIG) ;
/root/.bash_history -> $(SEC_CONFIG) ;
#/root/.amandahosts -> $(SEC_CONFIG) ;
#/root/.addressbook.lu -> $(SEC_CONFIG) ;
#/root/.addressbook -> $(SEC_CONFIG) ;
#/root/.Xresources -> $(SEC_CONFIG) ;
#/root/.Xauthority -> $(SEC_CONFIG) -i ; # Changes Inode number on login
#/root/.ICEauthority -> $(SEC_CONFIG) ;
在设备和内核信息规则中,更改如下行。
(
rulename = "Devices & Kernel information",
severity = $(SIG_HI),
)
{
/dev -> $(Device) ;
/dev/pts -> $(Device);
/dev/shm -> $(Device);
/dev/hugepages -> $(Device);
/dev/mqueue -> $(Device);
#/proc -> $(Device) ;
/proc/devices -> $(Device) ;
/proc/net -> $(Device) ;
/proc/tty -> $(Device) ;
/proc/cpuinfo -> $(Device) ;
/proc/modules -> $(Device) ;
/proc/mounts -> $(Device) ;
/proc/dma -> $(Device) ;
/proc/filesystems -> $(Device) ;
/proc/interrupts -> $(Device) ;
/proc/ioports -> $(Device) ;
/proc/scsi -> $(Device) ;
/proc/kcore -> $(Device) ;
/proc/self -> $(Device) ;
/proc/kmsg -> $(Device) ;
/proc/stat -> $(Device) ;
/proc/loadavg -> $(Device) ;
/proc/uptime -> $(Device) ;
/proc/locks -> $(Device) ;
/proc/meminfo -> $(Device) ;
/proc/misc -> $(Device) ;
}
就是这样。保存更改并退出编辑器。
编辑配置文件后,通过使用 twadmin 命令重新创建加密的策略文件来实施所有更改,如下所示。
sudo twadmin -m P /etc/tripwire/twpol.txt
输入站点密钥密码并按 Enter。
这样,将创建新的 Tripwire 策略。现在,重新初始化 Tripwire 数据库。
sudo tripwire --init
输入本地密钥密码并确保这次没有错误。

已为Ubuntu系统配置Tripwire Policy
第 3 步 - 检查系统文件的完整性
已安装 Tripwire,并且已更新并重新初始化 tripwire 策略。在此步骤中,我们将使用 Tripwire 手动检查系统。
使用以下命令验证所有系统文件。
sudo tripwire --check
你应该在结果/输出中得到 No Violation and No Error。

接下来,在根目录中添加一个新文件,然后再次使用 Tripwire 检查系统。
cd ~/
touch hakase-labs.txt
sudo tripwire --check
在输出中,添加文件和修改文件所在的目录应该显示为违规。
请参阅下面的结果。

第 4 步 - 将新规则添加到 Tripwire
在此步骤中,我们要向配置中添加一个新的 Tripwire 规则。要创建新的 tripwire 策略,我们需要定义规则名称、严重性和文件类型。在此步骤中,我们将尝试添加名为 WordPress Data 的新规则,严重性为 High/SIG_HI,并且该目录中的所有文件都是关键的,不能更改。
进入tripwire配置目录,编辑配置文件twpol.txt。
cd /etc/tripwire/
vim twpol.txt
转到行尾并粘贴下面的 Tripwire 规则示例。
# Ruleset for WordPress
(
rulename = "Wordpress Ruleset",
severity= $(SIG_HI)
)
{
/var/www -> $(SEC_CRIT);
}
保存并退出。
现在重新生成 tripwire 配置文件。
sudo twadmin -m P /etc/tripwire/twpol.txt
输入您的站点密钥密码。
并重新初始化 Tripwire 数据库。
sudo tripwire --init
输入您的本地密钥密码。

如果这些配置都完成了,我们可以尝试新建一个文件或者修改/var/www/目录下的文件。
进入/var/www/目录,新建一个文件,修改索引文件。
cd /var/www/
touch hakase-labs.txt
echo "<h1> Hakase-labs Tutorial</h1>" > html/index.nginx-debian.html
使用下面的 tripwire 命令检查系统。
sudo tripwire --check
您将收到有关安全级别为 100 的系统违规的通知,如下所示。

添加了新的 Tripwire 规则。
第 5 步 - 设置 Tripwire 通知和 cron
在此步骤中,我们将为特定的 Tripwire 规则集策略配置通知,并配置用于自动系统检查的 cron。
对于电子邮件通知,Tripwire 在配置中提供了一个函数 emailto。 Tripwire 使用 Postfix 进行电子邮件通知,并且会在工具安装期间自动安装。
在配置电子邮件通知之前,请使用以下命令测试 Tripwire 通知。
tripwire --test --email
并确保您有一封来自服务器的电子邮件,如下所示。

现在转到 /etc/tripwire 目录并编辑 twpol.txt 配置。
cd /etc/tripwire/
vim twpol.txt
在 WordPress 数据规则中添加新行,如下所示。
# Rules for Web-app
(
rulename = "Wordpress Rule",
severity = $(SIG_HI),
emailto =
)
就是这样。保存并退出。

接下来,重新生成配置并重新初始化 Tripwire 数据库。
sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init
键入站点密钥密码以重新生成配置,键入本地密钥密码以重新初始化。
现在,在 /var/www/ 目录中再次创建一个新文件,并使用 Tripwire 手动检查系统并通过电子邮件发送报告。
sudo tripwire --check --email-report
您应该会在收件箱中收到一封电子邮件报告。

继续,对于 cron 配置,我们只需要定义 tripwire 命令运行的时间。我们将每天配置 Tripwire 系统检查。
使用下面的 crontab 命令创建新的 cron。
sudo crontab -e -u root
并在下面粘贴 cron 配置。
0 0 * * * tripwire --check --email-report

保存并退出,然后重新加载 cron。
systemctl restart cron

现在系统将每天执行检查并向您的电子邮件发送违反 WordPress 规则的通知。
已在Ubuntu 16.04上安装配置Tripwire IDS,对系统所有文件和目录进行监控。您可以按照步骤 4 中的说明添加自己的规则集。
参考
- <李>
- https://www-uxsup.csx.cam.ac.uk/