首页 网络安全 安全学院 查看内容

基于主机的入侵检测tripwire

2013-9-25 14:33 763 0

摘要: tripwire是一个基于主机的入侵检测系统,主要手段是在系统初始化后生成一个指纹库,通过定期检查校验文件,如果发生变化,则会触发邮件报警。 tripwire 运行方式并不是服务,而是crontab脚...
关键词: nbsp tripwire 文件 配置 twpol 运行 命令 策略 一个 txt

tripwire是一个基于主机的入侵检测系统,主要手段是在系统初始化后生成一个指纹库,通过定期检查校验文件,如果发生变化,则会触发邮件报警。 tripwire 运行方式并不是服务,而是crontab脚本,详见/etc/cron.daliy/tripwire-check,默认每天运行一次。 安装tripwire 安装tripwire十分容易,它已经包含在了EPEL仓库中。 yum install tripwire  --enablerepo=epel  配置详解 安装tripwire后会在/etc/tripwire/下生成两个文件,一个是程序配置文件,一个是入侵检测策略文件,twcfg.txt (tripwire configure)和 twpol.txt(tripwire policy)。 为了防止自身遭篡改,tripwire两个管理密码,一个叫站点密钥(site key),用于更新配置文件和入侵检测策略。另一个叫本地密钥(local key),用于更新本地数据库。 因此在运行tripwire之前必须创建key文件,运行命令:tripwire-setup-keyfiles (除了分别要求输入两次密码外,还要求用站点密码来给配置文件签名)  接下来初始化tripwire,运行命令tripwire --init (输入站点密码,开始扫描并建立数据库,扫描期间会报错,主要是twpol.txt文件里定义了一些不存在的文件,请根据需要调整twpol文件。) 检查方法,运行命令: tripwire --check   这样会有大量输出,可以直接用管道过滤,找到系统中不存在而策略里却存在的文件 tripwire --check |grep -w "Filename:"   根据上文过滤结果,删除其在策略文件里的定义,修改twpol.txt文件后,需要更新策略,运行命令:tripwire -m p  /etc/tripwire/twpol.txt   默认的twpol.txt 实际上是个使用手册,又臭又长,建议读一读,理解下原理。 根据twpol.txt,tripwire 把文件定义成如下类型: SEC_CRIT      = $(IgnoreNone)-SHa ;  # 重要文件,写死了但又不应改被修改,比如bashrc   SEC_SUID      = $(IgnoreNone)-SHa ;  # 设置了SUID和SGID的二进制文件,比如/usr/sbin/里的文件   SEC_BIN       = $(ReadOnly) ;        # 普通的二进制文件,比如/usr/bin/里的文件   SEC_CONFIG    = $(Dynamic) ;         # 读多写少的配置,比如httpd.conf   SEC_LOG       = $(Growing) ;         # 日志文件,经常写,但是属性应该是固定的,比如/var/log/message   SEC_INVARIANT = +tpug ;              # 固定属性的重要目录,比如用户家目录   SIG_LOW       = 33 ;                 # 安全等级较低的文件   SIG_MED       = 66 ;                 # 安全等级中等的文件   SIG_HI        = 100 ;                # 安全等级最高的重要文件   以上是默认文件定义的类型,可以根据需要自定义。 规则格式(配置文件中摘取的实例) (     rulename = "Kernel Administration Programs",  这里是规则名称    severity = $(SIG_HI) ,   这里是安全级别    emailto=root@localhost  邮件支持  (这里比较坑爹,因为加上了emailto,所以severity后面必须加上逗号,需要注意)  )   {     /sbin/adjtimex            -> $(SEC_CRIT) ;  文件 ->级别  }   twpol.txt默认的规则很多很多,我们修改twpol.txt 应该只要替换自己想要的规则即可,不需要大动作。  按照我们通用的要求,监视/etc和/usr/bin、/usr/sbin、/sbin里的文件即可。 逐个列出那些目录的文件有些困难,需要借助find命令。 find /usr/bin -type f -exec ls {} \; |sed 's/$/\t\t\t->\$(SYSBIN);/g;s/^/\t/g'   find /bin -type f -exec ls {} \; |sed 's/$/\t\t\t->\$(SYSBIN);/g;s/^/\t/g'   find /usr/sbin -type f -exec ls {} \; |sed 's/$/\t\t\t->\$(SYSBIN);/g;s/^/\t/g'   find /sbin -type f -exec ls {} \; |sed 's/$/\t\t\t->\$(SYSBIN);/g;s/^/\t/g'    简单的命令行使用方法 tripwire -m i  等效于  tripwire –-init   初始化  tripwire -m c 等效于  tripwire –-check  测试  tripwire -m p  等效于  tripwire --update-policy  更新策略  tripwire -m u  等效于 tripwire --update  更新数据库   跟rkhunter的区别,rkhunter的功能比较单一,可配置性比较差,只检查校验/usr/sbin之类的可执行文件的md5,防止篡改。而tripwire除了rkhunter的功能外,还可以监控目录,新产生的文件等,有专门的配置文件可供修改。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部