如何在Ubuntu 16.04上使用Tripwire IDS监视和检测修改的文件
Tripwire是一个免费的开源入侵检测系统(IDS)。 这是一个用于监视和警告系统上的文件更改的安全工具。 Tripwire是一个功能强大的IDS,可以保护您的系统免受不必要的更改。 您可以监视您的系统文件,包括网站文件。 因此,当任何被监控的文件发生任何不需要的文件更改时,tripwire将检查您的系统,并提醒您(如果安装就绪)。
在本教程中,我们将向您介绍如何在Ubuntu 16.04上安装和配置基于Tripwire主机的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创建新的“ 网站密钥 ” - 选择“ 是 ”,然后按Enter继续。
现在为“本地密钥 ”,选择“ 是 ”,然后再次按Enter键。
对于重建Tripwire配置选项,请选择“ 是 ”。
相同的重建Tripwire政策选项 - 选择“ 是 ”。
现在您将被提示输入“ 网站密钥 ”密码。 输入密码并选择“ 确定 ”。
重复“ site-key ”密码。
然后,对于“ 本地密钥 ”密码,请输入密码并选择“ 确定 ”。
重复“ 本地密钥 ”密码。
现在Ubuntu 16.04上的tripwire安装已经完成。
第2步 - 为Ubuntu系统配置Tripwire策略
在这一步中,我们将为我们的Ubuntu系统配置Tripwire。 所有与Tripwire相关的配置都位于“/ etc / tripwire”目录中。
安装Tripwire之后,我们需要初始化数据库系统。 为它运行以下命令。
sudo tripwire --init
系统会询问您的本地密钥密码 - 输入本地密钥密码,然后按Enter键。
你可能会得到错误“ 没有这样的目录 ”,如下所示。
为了解决这个错误,我们需要编辑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
在'引导脚本'的规则,注释行如下。
(
rulename = "Boot Scripts",
severity = $(SIG_HI)
)
{
/etc/init.d -> $(SEC_BIN) ;
#/etc/rc.boot -> $(SEC_BIN) ;
/etc/rcS.d -> $(SEC_BIN) ;
在“系统引导更改”规则上,注释如下。
(
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
输入“site-key”密码,然后按Enter键。
有了这个,新的Tripwire政策将被创建。 现在,重新初始化Tripwire数据库。
sudo tripwire --init
输入您的本地密钥密码,并确保这次没有错误。
Tripwire政策已经配置为Ubuntu系统
第3步 - 检查系统文件的完整性
Tripwire已经安装,tripwire策略已经更新并重新初始化。 在这一步中,我们将使用Tripwire手动检查系统。
使用以下命令验证所有系统文件。
sudo tripwire --check
你应该在结果/输出中得到“没有违规”和“没有错误”。
接下来,在根目录中添加一个新文件,然后再次使用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 youremail@gmail.com
并确保您的服务器上有一封电子邮件,如下所示。
现在进入'/ etc / tripwire'目录并编辑'twpol.txt'配置。
cd /etc/tripwire/
vim twpol.txt
在“WordPress数据”规则中添加新行,如下所示。
# Rules for Web-app
(
rulename = "Wordpress Rule",
severity = $(SIG_HI),
emailto = myemail@gmail.com
)
而已。 保存并退出。
接下来,重新生成配置并重新初始化Tripwire数据库。
sudo twadmin -m P /etc/tripwire/twpol.txt
sudo tripwire --init
输入站点密钥密码以重新生成配置,并输入local-key密码以重新初始化。
现在,在'/ 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”规则的通知。
Tripwire IDS已经在Ubuntu 16.04上安装和配置,系统中的所有文件和目录都被监控。 您可以按照第4步中的说明添加自己的规则集。