Tripwire是一个免费的开源入侵检测系统(IDS)。 它是用于监视和警告系统上文件更改的安全工具。 Tripwire是一个功能强大的IDS,可以保护您的系统免受不必要的更改。 您可以使用它来监控您的系统文件,包括网站文件,因此当有不需要的文件更改时,Tripwire会检查您的系统,如果设置正确,可以通过电子邮件提醒您。
在CentOS 7上安装Tripwire
1 | yum update |
安装完成后,我们需要生成新的密钥文件。
Tripwire使用2个关键文件。
- site-key:它用于保护Tripwire配置。 因此,除非我们再次生成配置,否则对tripwire配置所做的任何更改都不会生效,我们会提示您输入“site-key”密码。
- local-key:它用于验证tripwire二进制文件。 当我们想要更新tripwire系统数据库时,我们需要运行tripwire命令,并且会提示我们输入’local-key’的密码。
我们使用下面的命令生成新的tripwire密钥文件(站点和本地密钥)。
1 | tripwire-setup-keyfiles |
该命令将生成两个密钥文件“site-key”和“local-key”,并且您将被要求输入每个密码。
输入您自己的“ 网站密钥 ”密码,然后按Enter键。
输入您自己的“ 本地密钥 ”密码并再次按Enter键。
接下来,使用’site-key’签署tripwire配置,输入您的“ 网站密钥 ”密码。
现在,为了签署Tripwire政策,请输入您的“ 本地密钥 ”密码。
配置Tripwire策略
使用下面的tripwire命令初始化tripwire数据库。
1 | tripwire --init |
您可能会收到错误消息“no such directory”,如下所示
是因为系统没有在tripwire配置中已经定义的目录和文件。 为了解决这个错误,我们需要编辑tripwire配置'twpol.txt'并重新签署tripwire配置。现在使用下面的命令从tripwire生成日志错误。
1 | sh -c "tripwire --check | grep Filename > no-directory.txt" |
所有不存在于CentOS 7系统上的目录和文件都列在文件no-directory.txt中
使用以下bash脚本编辑tripwire配置’twpol.txt’ - 在终端上运行此脚本。
1 | for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do |
毕竟,我们需要使用twadmin命令重新生成并重新签署tripwire配置,如下所示。
1 | twadmin -m P /etc/tripwire/twpol.txt |
输入您的“网站密钥”密码。重新初始化tripwire数据库,并确保没有错误。
1 | tripwire --init |
验证Tripwire配置和检查系统
要验证tripwire配置,我们可以运行系统检查命令如下。
1 | tripwire --check |
将新规则添加到Tripwire策略
在这一步中,我们将向您展示如何将新规则添加到tripwire策略配置“twpol.txt”。
要执行这项工作,我们需要定义规则名称,严重程度,监视目录和文件类型。 在这一步中,我们将在/var/www/目录下为我们的WordPress安装创建一个名为Wordpress Data的新规则,严重程度为HIGH/SIG_HI,并且该目录中的所有文件都是关键的以及源代码不能更改)。
转到tripwire配置目录/etc/tripwire并使用vim编辑配置文件twpol.txt。
1 | cd /etc/tripwire/ |
转到该行的末尾,并在那里粘贴以下WordPress规则。
1 | # Ruleset for Wordpress |
保存并退出。
使用twadmin命令重新生成并重新签名配置,如下所示。
1 | twadmin -m P /etc/tripwire/twpol.txt |
输入您的“网站密钥”密码。现在我们需要再次重新生成tripwire数据库。
1 | tripwire --init |
输入“本地密钥”密码。新的规则集已添加并应用于Tripwire策略配置。
安装Tripwire电子邮件通知和Cron
在这一步中,我们将为特定tripwire规则集策略配置通知,并配置用于自动系统检查的cronjob。 我们会将任何违反WordPress数据规则的报告发送到电子邮件地址myemail@gmail.com。
对于电子邮件通知,tripwire在配置中提供了一个emailto功能。 默认情况下,tripwire使用Postfix或Sendmail通过电子邮件发送报告。
在配置电子邮件通知之前,请使用以下命令测试tripwire通知功能。
1 | tripwire --test --email email@gmail.com |
现在进入/etc/tripwire目录并编辑twpol.txt配置。
1 | cd /etc/tripwire/ |
在WordPress数据规则中添加新行emailto,如下所示。
1 | # Ruleset for Wordpress |
保存并退出。使用twadmin命令重新生成并签署配置。
1 | twadmin -m P /etc/tripwire/twpol.txt |
输入您的“网站密钥”密码。并重新生成tripwire数据库。
1 | tripwire --init |
输入您的tripwire’local-key’密码。Tripwire电子邮件通知的配置已完成。
注意:
- –email-report:将系统报告发送到每个规则中定义的电子邮件地址。
接下来,我们将使用cron setup启用自动Tripwire系统检查。 为此,请使用下面的crontab命令在root用户下创建一个新的cron脚本。
1 | crontab -e -u root |
粘贴以下cron配置。
1 | 0 0 * * * tripwire --check --email-report |
保存并退出。