如何在Ubuntu 16.04上使用Tripwire IDS监视和检测修改的文件

如何在Ubuntu 16.04上使用Tripwire IDS监视和检测修改的文件

Tripwire是一个免费的开源入侵检测系统(IDS)。 这是一个用于监视和警告系统上的文件更改的安全工具。 Tripwire是一个功能强大的IDS,可以保护您的系统免受不必要的更改。 您可以监视您的系统文件,包括网站文件。 因此,当任何被监控的文件发生任何不需要的文件更改时,tripwire将检查您的系统,并提醒您(如果安装就绪)。

在本教程中,我们将向您介绍如何在Ubuntu 16.04上安装和配置基于Tripwire主机的IDS。 我们还将向您展示如何配置tripwire以监视和检测系统上的修改文件。

我们将要做什么

  1. 安装Tripwire
  2. 为Ubuntu系统配置Tripwire策略
  3. 验证Tripwire配置
  4. 将新的规则集添加到Tripwire策略
  5. 设置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步中的说明添加自己的规则集。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏