检测到循环重定向_CentOS7 - 使用Tripwire检测已修改的文件

Using Tripwire to detect modified files

本文介绍了如何设置Tripwire,这是一种用于检测对系统上文件所做更改的审核工具。 大多数情况下,Tripwire被定位为入侵检测系统,因为重要配置文件的意外修改通常是入侵或恶意活动的标志。 能够监控此类更改使您能够在发生恶意活动时及时检测并制止恶意活动.

准备

此配方需要具有有效网络连接的CentOS系统。 tripwirepackage位于EPEL存储库中,因此必须按照第4章“软件安装管理”中的讨论注册存储库。 通过使用root帐户登录或使用sudo,还需要管理权限.

怎么做

按照以下步骤使用Tripwire监视系统入侵:

  • 从EPEL存储库安装tripwire软件包:
yum install tripwire
  • 运行tripwire-setup-keyfiles以生成Tripwire的密钥文件以及配置和策略文件:
tripwire-setup-keyfiles
  • 系统将提示您为站点密钥文件和本地密钥文件提供密码,然后再次为站点密码提供签名,以对生成的配置和策略文件进行签名。
  • 初始化Tripwire的数据库。 系统将提示您提供本地密码:
tripwire --init 2>output.txt
  • 查看输出中的警告,以识别策略中定义但系统上不存在的文件:
cat output.txt
  • 注释掉/etc/tripwire/twpol.txt中引用output.txt中不存在的文件的条目。 如果output.txt中的所有警告都是由不存在的文件引起的,那么您可以按如下方式自动执行此步骤:
for f in $(grep "Filename:" output.txt | cut -f2 -d:); do sed -i "s|($f) |#1|g" /etc/tripwire/twpol.txtdone
  • 重新生成已签名的策略文件。 出现提示时,提供站点密钥文件的密码:
twadmin --create-polfile -S /etc/tripwire/site.key  /etc/tripwire/twpol.txt
  • 删除原始数据库并初始化一个新数据库。 这一次,该过程应该完成而不会产生任何警告:
rm /var/lib/tripwire/benito.twdtripwire --init

工作原理

Tripwire会审核您的系统以检测哪些文件已更改。 这背后的想法是,如果攻击者获得对您系统的访问权限,他们将不可避免地创建或修改密钥文件以确保其存在。 但是,攻击者修改Tripwire的策略文件以创建没有任何改变的幻觉是微不足道的; 因此,配置和策略文件使用密钥文件进行签名。 我们运行时都会生成配置文件,策略文件和密钥文件:

tripwire-setup-keyfiles

由于默认策略尝试对大多数用户尽可能全面,因此将有一些条目不适用于我们的CentOS系统。 如果我们使用未修改的默认值运行,那么Tripwire将报告丢失的文件,筛选误报列表将使识别某人是否删除了合法关注的文件变得更加困难。 而不是手动查看策略文件,特别是如果您不是专家并且熟悉某些文件,最好的方法是在已知干净的系统上运行初始扫描,然后让Tripwire报告不存在的文件。 当我们尝试为我们的系统定制策略时,这将有助于节省时间.

初始化Tripwire的数据库是使用tripwire --init完成的。 该程序将扫描系统,将文件系统与其在策略文件中知道的内容进行比较,并收集有关存在的文件的统计信息。 这些统计信息作为基准度量存储在数据库中,以便在下次Tripwire运行时进行比较,以查看是否有更改。 配方将包含缺失文件列表的错误输出重定向到单独的文本文件有两个原因:列表将很长并且有时比通过滚动终端会话更容易翻阅文件,我们可以编写自定义过程的脚本。 基于该输出的政策:

tripwire --init 2>output.txt

sed是传统的搜索和替换主力,grep非常适合查找和提取感兴趣的行,因此我们可以使用这两个工具来更新策略/etc/tripwire/twpol.txt。 首先,我们需要知道output.txt中的消息是什么样的:

cat output.txt
49b65880d29410f28dcf9b9f09d0d9a8.png

初始化Tripwire数据库时,不存在的文件会生成警告

注意

如果输出文件中的所有警告都与不存在的文件相关,则可以安全地自动更新策略。 这就是为什么我们在继续之前仔细审查了内容.

我们使用grep来定位包含Filename:的行,然后使用cut来分割冒号上的行并捕获第二部分 - 不存在的文件的名称。 for循环捕获每个文件名并将其分配给变量f,然后我们可以在我们的模式中将其引用到sed。 该模式使用捕获括号和数字反向引用执行全局搜索和替换,以使用前导#覆盖文件名#:

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

注意

重要的是在文件名后面的搜索空间中有一个空格,以确保我们只匹配整个文件。 例如,我们希望避免因为公共前缀而/etc/rc.d也匹配/etc/rc.d/init的情况。

该策略的未签名,纯文本副本存储在/etc/tripwire/twpol.txt中。 在我们进行更改之后,我们想要创建一个签名的策略文件,Tripwire出于前面提到的安全原因使用该文件。 这是通过twadmin和--create-policyargument完成的。 -S参数为命令提供签名密钥的路径,然后我们提供策略的普通文本副本作为输入:

twadmin --create-polfile -S /etc/tripwire/site.key/etc/tripwire/twpol.txt

twadmin将签署该政策并将结果写入/etc/tripwire/tw.pol。 修改策略文件后,我们可以重新初始化数据库。 实际上,每当更新策略文件时,您都应该重新生成数据库,该数据库存储在/ var / lib / tripwire中并使用系统的主机名命名:

rm /var/lib/tripwire/benito.twdtripwire --init

要扫描系统是否存在违规,请使用--check选项运行Tripwire:

tripwire --check
70f98b9c178030b586f13fcf45bc004a.png

Tripwire在扫描完成后报告其发现

当然,为了有效,必须每天至少进行一次扫描。 出于这个原因,一个cron作业由tripwire软件包安装在/etc/cron.daily中,该软件包运行Tripwire扫描。 根据cron的配置方式,扫描的输出可能会由cron通过电子邮件发送给系统的root用户(并且最有可能最终在/ var / spool / mail / root中)。 您可以编辑/etc/cron.daily/tripwire-check,以便输出通过电子邮件发送给您:

test -f /etc/tripwire/tw.cfg && /usr/sbin/tripwire --check | /bin/mailx -s "Tripwire Report" tboronczyk@example.com 2>&1

如果您愿意,还可以将Tripwire配置为自行发送电子邮件。 首先,您需要确保Tripwire可以将邮件发送到您的地址。 发出以下内容以发送测试消息,然后检查以确保它到达您的收件箱:

tripwire --test --email tboronczyk@example.com

注意

您可以在运行手动扫描时使用--email-report选项,以使Tripwire将其结果发送到您的电子邮件.

tripwire --check --email-report

默认情况下,Tripwire将尝试通过sendmail(或Postfix的sendmail界面)发送电子邮件。 如果您需要通过SMTP服务器发送邮件,请查看man 4 twconfig中的“电子邮件通知变量”部分.

Tripwire的配置中更多地涉及指定目标电子邮件地址。 Tripwire策略文件中定义的测试分组为规则集,允许文件以逻辑方式组合在一起。 例如,有一个规则集可以测试Tripwire二进制文件本身的完整性,它与测试系统管理程序的规则集是分开的。 每个规则集都可以有一个定义的电子邮件地址来发送通知,这对于灵活性非常有用,应该通知一个管理员修改一组文件,另一个管理员应该通知其他人:

( rulename = "Tripwire Binaries
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值