Tripwire入侵检测系统的搭建与应用
tripwire是一个开源的入侵检测系统,他的工作原理就是在初始化时,对每个需要进行检测的文件或目录做数字签名,并把数字签名存到数据库里,当需要检测文件或目录是否被修改过是,就会把当前文件或目录的数字签名和数据中的作对比,如果不一样了就说明被改动过了。
实验任务:
1、安装tripwire
2、配置tripwire策咯
3、验证配置
4、添加新规则
5、邮件通知
安装tripwire
Tripwire 官网:http://nchc.dl.sourceforge.net/project/tripwire
由于 centos 7 基本 yum 源没有 tripwire,所以我们可以用源码方式安装,或者使用第三方源安装。我在这里用的第三方 EPEL 源
首先配置yum源
下载软件包epel-release
wget https://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
解压软件包
rpm -ivh epel-release-7-11.noarch.rpm
安装tripwire
yum install tripwire --enablerepo=eple
安装完成后,会在/etc/tripwire/下生成两个关键性文件,分别是 twcfg.txt 和 twpol.txt,这两个文件一个是程序配置位置文件,另一个是入侵检测策略文件。到此, 安装成功。
配置tripwire策略
接下来开始使用tripwire。在使用之前要对tripwire进行一些配置。
Tripwire有两个管理密码,一个叫站点密钥(site key),用于更新配置文件和入侵检测策略。另一个叫本地密钥(local key),用于更新本地数据库。在以后配tripwire是会用到这两个密钥来验证身份。所以在运行tripwire之前必须创建key文件来配置这两个密钥。
创建key文件
tripwire-setup-keyfiles
在此处输入“site keyfile”口令(输入后不会显示),并且记住这个口令,然后再次确认口令,我的口令是123456。
在此处输入“local keyfile”口令(输入后不会显示),并且记住这个口令,然后再次确认口令,我的口令是654321
Tripwire为了自身安全,防止被篡改,会对这twpol.txt和twcfg.txt两个文件进行加密和签名。
用站点密码给配置文件签名,防止篡改。输入“site keyfile”口令(123456)
用站点密码给配置文件签名,防止篡改。输入“site keyfile”口令(123456)
我们可以看到,由twcfg.txt和twpol.txt生成了tw.cfg和tw.pol配置文件
查看 tw.cfg可以看到已经被加密,为乱码。
为了安全起见,一般在配置好tripwire后,会删除twcfg.txt和twpol.txt这两个文件,在这里我为了做以后的实验,保留这两个文件。
初始化tripwire,输入站点密码,扫描文件并建立数据库
tripwire --init
在执行命令过程中会有很多报错,这是因为twpol文件中定义了许多系统中没有的文件,可以在twpol.txt中删除或者注释掉没有的文件。下边我采用脚本形式,重新生成twpol文件。
使用下面的命令从tripwire生成日志错误。
把所有不存在的文件都列在no-directory.txt文件中。
sh -c "tripwire --check | grep Filename > no-directory.txt"
查看该文件,可以发现,没有的文件都列在no-directory.txt中了。
cat no-directory.txt
编辑脚本aaa.sh并修改权限,使之可以运行。
编写脚本内容:for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do
sed -i "s|\($f\) |#\\1|g" /etc/tripwire/twpol.txt
done
运行aaa.sh脚本,重新生成twpol.txt文件,去掉系统中没有的文件。
twadmin -m P /etc/tripwire/twpol.txt
重新初始化tripwire,我们发现,没有报错。
tripwire --init
现在,tripwire入侵检测系统基本已经配置完成了。
验证配置
我们检查系统,发现没有违反规则的报告。
tripwire --check
在/root/下创建haha.txt,再次检查系统,发现报告违反规则,级别为100,内容是增加了/root/haha.txt
tripwire --check
添加新的策咯
Twpol.txt文件是重要配置文件,定义了所有的检查策略,下面我们来查看一下。
查看twpol.txt文件
cat twpol.txt
tripwire所定义的文件类型
SEC_CRIT = $(IgnoreNone)-SHa ; #这个是重要文件,是写死了的,不能被修改。
SEC_SUID = $(IgnoreNone)-SHa ; #这个是设置SUID和SGID的二进制文件,例如/usr/sbin/里的文件。
SEC_BIN = $(ReadOnly) ; # 普通二进制文件。
SEC_CONFIG = $(Dynamic) ; # 经常进行读操作,写操作进行的少的文件。
SEC_LOG = $(Growing) ; # 经常写的文件,但是属性一般固定,较多见于日志文件。
SEC_INVARIANT = +tpug ; #很重要而且一定不能改变属性的文件,
SIG_LOW = 33 ; # 安全等级为低级的文件
SIG_MED = 66 ; # 安全等级为中级的文件
SIG_HI = 100 ; # 安全等级为高级的文件
这些文件的定义都是默认的,也可以根据自己需求进行定义。
某一条规则:
策略解读:
(
rulename = "Tripwire Binaries", #这是规则名称。
severity = $(SIG_HI) #这里是安全级别。
)
{ #这一部分写的是具体策略。
$(TWBIN)/siggen -> $(SEC_BIN) ; #下边是文件和对应的级别。
$(TWBIN)/tripwire -> $(SEC_BIN) ;
$(TWBIN)/twadmin -> $(SEC_BIN) ;
$(TWBIN)/twprint -> $(SEC_BIN) ;
}
注意除了最后一个其余每个()内容后都有一个逗号。
在实际应用中,我们往往要添加新的策略来满足要求。可以通过修改twpol.txt文件来实现。需要定义规则名称,严重程度,也就是级别,要监控的目录和文件类型。在这里,我创建一个新的规则叫webroot,严重程度为100(SIG_HI),文件类型为SEC_CRIT,即重要文件,不能被修改。
在/etc/tripwire/twpol.txt中添加新的规则Webroot,在最后一行添加,增加策略可以监控/var/www目录。
cd /etc/tripwire
vi twpol.txt
编辑添加内容:
(
rulename = "Webroot",
severity= $(SIG_HI)
)
{
/var/www ->$(SEC_CRIT);
}
重新生成twpol.txt文件。
twadmin -m P /etc/tripwire/twpol.txt
输入网站密钥
重新初始化数据库。
tripwire –init
输入本地密钥
检查系统,发现没有错误,说明新的规则策略已经被应用。
tripwire –check
在/var/www目录下,创建aaa.html文件。
再次使用tripwire检查,发现出现错误。错误级别100,显示/var/www目录发生改变,添加了aaa.html
tripwire --check
Tripwire检测后生成的报告放在/var/lib/tripwire/report 中,文件是加密的。如果要查看的话,需要用到Tripwire的解密工具:twprint,进入到/var/lib/tripwire/report 目录中,执行以下命令:
twprint --print-report --twrfile localhost.localdomain-20190620-201858.twr >/var/lib/tripwire/readable/tripwire_readable.txt
设置Tripwire电子邮件通知和Cron。
Tripwire系统还支持把特定错误报告以邮件形式发送给管理员邮箱的功能,极大方便了管理员的安全管理。在这里,我的管理员邮箱是dong_hzgg@qq.com。
想要支持发送邮件,我们依然需要修改配置文件twpol.txt
在配置前首先测试是否可以发送到管理员邮箱文件。
tripwire --test --email dong_hzgg@qq.com
修改twpol.txt文件,在刚才创建的Webroot规则里添加控制邮件发送的代码。如图发送给dong_hzgg@qq.com,表明把违反这条规则的报告发送到邮箱。
编辑添加
(
rulename = "Webroot",
severity= $(SIG_HI),
emailto = dong_hzgg@qq.com
)
{
/var/www ->$(SEC_CRIT);
}
重新生成twpol.txt文件。
twadmin -m P /etc/tripwire/twpol.txt
重新初始化数据库。
tripwire --init
在/var/www/的目录下修改aaa.html文件
检查并发送邮件给管理员邮箱。--emal-report的意思是将检查报告发送到每个规则定义的电子邮箱中,这里只配置了我的管理员邮箱。
tripwire –check –email-report
在管理员邮箱中可以发现,收到了检查报告,显示Webroot规则被违反,级别为100,目录为/var/www。,说明电子邮箱通知配置成功。
设置定时检查
设置定时器。在每天的0点和12点检查系统,并发送报告给管理员。
crontab -e -u root
添加以下的代码
编辑添加:0 0,12 * * * tripwire --check --email-report #代表每天0点和12点执行tripwire --check --email-report命令
重启crond服务。
systemctl restart crond
现在,整个开源入侵检测tripwire系统配置完毕,管理员将在每天中午12点和晚上0点收到检查报告,查看是否有人动过被监控的文件,当然也可以手动进行检查。
-----------------------------
参考资料
https://blog.csdn.net/weixin_34127717/article/details/90003361
https://www.cnblogs.com/jackyzm/p/9629608.html
-------
如有侵权,请联系我删除!
Tripwire入侵检测系统的搭建与应用相关推荐
- 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐)...
为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机器环境实验室的大数 ...
- snort create mysql_Snort入侵检测系统构建
Snort入侵检测系统构建 难度等级:中等 实验时长:200min [实验目的] 通过本实验掌握snort入侵检测系统的搭建以及相关配置. [实验环境] Snort服务器登录信息: 用户名: coll ...
- 入侵检测系统 FAQ
一.都有哪些重要的IDS系统? 根据监测对象不同,IDS系统分为很多种,以下是几种很重要的IDS系统: NIDS--NIDS是network intrusion detection system的缩写 ...
- 入侵检测系统原理和实践
标题:入侵检测系统原理和实践 时间:2004-06-13 来源:http://www.fanqiang.com 作者:David Elson 翻译:ishtar IDS:THEORY&PRAC ...
- 基于Snort的入侵检测系统_相关论文
摘 要 随着网络技术的发展,中小型企业已建设了属于自己的信息化业务平台与系统.中小型企业只有实现信息互通,资源共享,才能够在当今的竞争中生存下去,但信息的互通会面临一些安全问题,对此需要对其采取一些措 ...
- IDS(入侵检测系统)
目录 一.结合以下问题对当天内容进行总结 1. 什么是IDS? 2. IDS和防火墙有什么不同? 3. IDS工作原理? 4. IDS的主要检测方法有哪些详细说明? 5. IDS的部署方式有哪些? 6 ...
- 网络信息安全_网络攻防实验_snort+BASE入侵检测系统_snort规则_ICMP/TCP攻击
网络攻防实验 一.实验环境 二.实验步骤 1.搭建 snort+BASE 入侵检测系统 1.1 安装snort 1.2 安装Barnyard2 1.3 安装 PulledPork 1.4 创建服务 1 ...
- 【计算机网络】网络安全 : 入侵检测系统 ( 基于特征的入侵检测系统 | 基于异常的入侵检测系统 )
文章目录 一.入侵检测系统 引入 二.入侵检测系统 三.入侵检测系统分类 四.基于特征的入侵检测系统 五.基于异常的入侵检测系统 一.入侵检测系统 引入 入侵检测系统 引入 : ① 防火墙作用 : 防 ...
- 入侵检测系统基础知识
入侵检测是指在特定的网络环境中发现和识别未经授权的.恶意的入侵和攻击,并对此作出反应的过程.入侵检测系统(IDS,Intrusion Detecting System)是一套运用入侵检测技术对计算机或 ...
最新文章
- java一般会写javadoc吗_怎么写javadoc
- python资料库-python 资源库
- redis实现轮询算法_基于zookeeper或redis实现分布式锁
- Java基本语法(13)--条件分支switch-case结构
- Springboot 多线程的使用
- Docker for windows 容器内网通过独立IP直接访问的方法
- 【软件测试】你的简历出现这些问题?没人要也是有原因的
- 清华EMBA课程系列思考之二 -- 清华探究及信息战略与管理
- 晶体二极管的分类大全
- 计算机组成原理74138译码器连接,74138(74138译码器工作原理)
- 定时关机win10_巧用任务计划程序定时关机
- 搭建个人博客【搭建Hexo+Fluid博客并部署到GitHub/云服务器(阿里云/腾讯云)】
- 麻省理工学院:科技宠儿的摇篮
- SpringBoot 整合 Elasticsearch
- C#代码CRUD操作MySQL数据库
- 多元线性回归分析(Stata)
- win11系统用户账户控制总是弹出来?
- 复用-组合、继承、代理区别和用法
- 1060 爱丁顿数 (25分)
- 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(四)
热门文章
- [转载]vfw的AVI族函数读取AVI文件
- 可用作python变量名的是_Python编程4:什么是变量
- 【已解决】pycharm 远程服务器报错 Couldn‘t refresh skeletons for remote interpreter
- uvw77ay_aiffip
- 2022年中级会计实务考试精选复习题及答案
- FLANN 快速特征匹配
- android iphone 多核,苹果A11跑分对比Android各大处理器:神一般的处理器
- 差分ADC到单端ADC
- 华为汽车产业深度剖析
- c语言 文件课件,C语言课件第13章-文件操作.ppt