在CentOS 7上使用Tripwire 监控、检测系统文件完整性

在CentOS 7上使用Tripwire监控和检测修改的文件

Tripwire是一个免费的开源入侵检测系统(IDS)。 它是用于监视和警告系统上文件更改的安全工具。 Tripwire是一个功能强大的IDS,能够保护您的系统免受没必要要的更改。 您可使用它来监控您的系统文件,包括网站文件,所以当有不须要的文件更改时,Tripwire会检查您的系统,若是设置正确,能够经过电子邮件提醒您。php

在本教程中,咱们将向您展现如何使用CentOS 7系统上的Tripwire监控和检测系统文件中的任何更改。 咱们将向您展现如何在CentOS 7上安装和配置Tripwire,如何生成Tripwire密钥文件,配置和添加tripwire策略,检查系统以及为tripwire和cron设置启用电子邮件通知。html

咱们将要作什么

  1. 在CentOS 7上安装Tripwire
  2. 为CentOS 7配置Tripwire策略
  3. 验证Tripwire配置
  4. 向Tripwire政策添加新规则
  5. 设置Tripwire电子邮件通知和Cron

先决条件

  • CentOS 7系统
  • 根特权

第1步 - 在CentOS 7上安装Tripwire

咱们必须作的第一步是将Tripwire安装到系统上。 默认状况下,tripwire在CentOS 7存储库中可用。git

登陆到您的服务器并更新全部软件包。github

ssh root@hakase-labs.co
sudo yum update -y数据库

如今使用yum安装Tripwire。vim

yum -y install tripwirecentos

安装完成后,咱们须要生成新的密钥文件。安全

Tripwire使用2个关键文件。bash

  1. site-key:它用于保护Tripwire配置。 所以,除非咱们再次生成配置,不然对tripwire配置所作的任何更改都不会生效,咱们会提示您输入“site-key”密码。
  2. local-key:它用于验证tripwire二进制文件。 当咱们想要更新tripwire系统数据库时,咱们须要运行tripwire命令,而且会提示咱们输入'local-key'的密码。

咱们使用下面的命令生成新的tripwire密钥文件(站点和本地密钥)。服务器

sudo tripwire-setup-keyfiles

该命令将生成两个密钥文件“site-key”和“local-key”,而且您将被要求输入每一个密码。

输入您本身的“ 网站密钥 ”密码,而后按Enter键。

设置sitekey密码

输入您本身的“ 本地密钥 ”密码并再次按Enter键。

设置本地密钥

接下来,使用'site-key'签署tripwire配置。

输入您的“ 网站密钥 ”密码。

配置站点密钥

如今,为了签署Tripwire政策,请输入您的“ 本地密钥 ”密码。

签署tripwire政策

Tripwire已安装在CentOS 7上,新的tripwire配置和密钥位于'/ etc / tripwire'目录中。

第2步 - 为CentOS 7配置Tripwire策略

在咱们第一步讨论的tripwire安装以后,咱们须要初始化tripwire数据库并确保没有错误。

使用下面的tripwire命令初始化tripwire数据库。

sudo tripwire --init

您将被问到“local-key”密码短语,您可能会收到错误消息“no such directory”,以下所示。

在CentOS上配置tripwire策略

咱们获得错误是由于系统没有在tripwire配置中已经定义的目录和文件。 为了解决这个错误,咱们须要编辑tripwire配置'twpol.txt'并从新签署tripwire配置。

如今使用下面的命令从tripwire生成日志错误。

sudo sh -c "tripwire --check | grep Filename > no-directory.txt"

全部不存在于CentOS 7系统上的目录和文件都列在文件'mo-directory.txt'中

cat no-directory.txt

cat no-directory.txt

使用如下bash脚本编辑tripwire配置'twpol.txt' - 在终端上运行此脚本。

for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done

毕竟,咱们须要使用twadmin命令从新生成并从新签署tripwire配置,以下所示。

sudo twadmin -m P /etc/tripwire/twpol.txt

输入您的“网站密钥”密码。

从新初始化tripwire数据库,并确保没有错误。

sudo tripwire --init

从新初始化tripwire数据库,没有任何错误。

twadmin命令

第3步 - 验证Tripwire配置和检查系统

要验证tripwire配置,咱们能够运行系统检查命令以下。

sudo tripwire --check

你应该获得相似于如下的结果。

验证Tripwire配置和检查系统

因此这意味着在咱们的系统上没有发现错误和系统违规。

如今咱们将尝试在根目录下添加一个新文件,并使用tripwire再次检查。

转到根目录并建立一个新文件'hakase-labs.txt'。

cd ~/
touch hakase-labs.txt

如今使用tripwire命令再次检查系统。

sudo tripwire --check

您将在系统中获得严重程度为100的新违规的结果,以下所示。

tripwire检查

在这个阶段,Tripwire为CentOS 7系统安装和配置。

第4步 - 将新规则添加到Tripwire策略

在这一步中,咱们将向您展现如何将新规则添加到tripwire策略配置“twpol.txt”。

要执行这项工做,咱们须要定义规则名称,严重程度,监视目录和文件类型。 在这一步中,咱们将在'/ var / www /'目录下为咱们的WordPress安装建立一个名为'Wordpress Data'的新规则,严重程度为'HIGH / SIG_HI',而且该目录中的全部文件都是关键的以及源代码不能更改)。

转到tripwire配置目录'/ etc / tripwire'并使用vim编辑配置文件'twpol.txt'。

cd /etc/tripwire/
vim twpol.txt

转到该行的末尾,并在那里粘贴如下WordPress规则。

# Ruleset for Wordpress
 (
   rulename = "Wordpress Data",
   severity= $(SIG_HI)
 )
 {
         /var/www        -> $(SEC_CRIT);
 }

保存并退出。

使用twadmin命令从新生成并从新签名配置,以下所示。

sudo twadmin -m P /etc/tripwire/twpol.txt

输入您的“网站密钥”密码。

如今咱们须要再次从新生成tripwire数据库。

sudo tripwire --init

输入“本地密钥”密码。

新的规则集已添加并应用于Tripwire策略配置。

从新签署配置

使用下面的tripwire命令检查您的系统。

sudo tripwire --check

你应该获得结果说没有错误和违反。

使用tripwire检查违规行为

如今进入'/ var / www /'目录并在其中建立一个新文件。

cd /var/www/
touch hakase-labs.php

建立一个测试文件

再次使用tripwire进行系统检查。

sudo tripwire --check

而且您将在安全级别为高100的'/ var / www /'目录中获得说明系统违规的结果。

测试结果

新规则已添加并应用于Tripwire策略配置。

第5步 - 安装Tripwire电子邮件通知和Cron

在这一步中,咱们将为特定tripwire规则集策略配置通知,并配置用于自动系统检查的cronjob。 咱们会将任何违反'WordPress数据'规则的报告发送到电子邮件地址' myemail@gmail.com '。

对于电子邮件通知,tripwire在配置中提供了一个'emailto'功能。 默认状况下,tripwire使用Postfix或Sendmail经过电子邮件发送报告。

在配置电子邮件通知以前,请使用如下命令测试tripwire通知功能。

sudo tripwire --test --email email@gmail.com

检查你的电子邮件,你应该从你的服务器获得电子邮件报告以下。

Tripwire经过电子邮件报告

如今进入'/ etc / tripwire'目录并编辑'twpol.txt'配置。

cd /etc/tripwire/
vim twpol.txt

在'WordPress数据'规则中添加新行'emailto',以下所示。

# Ruleset for Wordpress
 (
   rulename = "Wordpress Data",
   severity= $(SIG_HI),
   emailto = myemail@gmail.com
 )
 {
         /var/www        -> $(SEC_CRIT);
 }

保存并退出。

使用twadmin命令从新生成并签署配置。

sudo twadmin -m P /etc/tripwire/twpol.txt

输入您的“网站密钥”密码。

并从新生成tripwire数据库。

sudo tripwire --init

输入您的tripwire'local-key'密码。

Tripwire电子邮件通知的配置已完成。

生成并签署配置

如今经过在'/ var / www /'目录中再次建立一个新文件来作一些测试。

cd /var/www/
touch hakase.txt

使用下面的命令再次检查您的系统。

sudo tripwire --check --email-report

注意:

  • --email-report:将系统报告发送到每一个规则中定义的电子邮件地址。

检查你的电子邮件,你应该在电子邮件中获得以下结果。

电邮报告

Tripwire的电子邮件通知已启用并应用。

接下来,咱们将使用cron setup启用自动Tripwire系统检查。 为此,请使用下面的crontab命令在root用户下建立一个新的cron脚本。

sudo crontab -e -u root

粘贴如下cron配置。

0 0 * * * tripwire --check --email-report

保存并退出。

注意:

  • - cron脚本将天天进行tripwire系统检查。

如今从新启动CentOS 7上的crond服务。

systemctl restart crond

设置tripwire cronjob

如今,您将天天收到tripwire报告通知到您的电子邮件。

Tripwire已经安装并配置用于CentOS 7系统。

参考:

相关文章
相关标签/搜索