linux怎么检测文件完整性,Linux如何基于AIDE检测文件系统完整性

一、AIDE

AIDE(Advanced Intrusion Detection Environment)是一款针对文件和目录进行完整性对比检查的程序,它被开发成Tripwire的一个替代品。

0adb14448f45808e0dc2a0ca263ce68b.png

AIDE如何工作

AIDE通过构造指定文件的完整性样本库(快照),作为比对标准,当这些文件发生改动时,其对应的校验值也必然随之变化,AIDE可以识别这些变化从而提醒管理员。AIDE监控的属性变化主要包括:权限、属主、属组、文件大小、创建时间、最后修改时间、最后访问时间、增加的大小以及链接数,并能够使用SHA1、MD5等算法为每个文件生成校验码。

这款工具年纪也不小了,相对来同类工具Tripwire说,它的操作也更加简单。它需要对系统做快照,记录下HASH值,修改时间,以及管理员对文件做的预处理。这个快照可以让管理员建立一个数据库,然后存储到外部设备进行保管。

当管理员想要对系统进行一个完整性检测时,管理员会将之前构建的数据库放置一个当前系统可访问的区域,然后用AIDE将当前系统的状态和数据库进行对比,最后将检测到的当前系统的变更情况报告给管理员。另外,AIDE可以配置为定时运行,利用cron等日程调度技术,每日对系统进行检测报告。

这个系统主要用于运维安全检测,AIDE会向管理员报告系统里所有的恶意更迭情况。

AIDE的特性

支持消息摘要算法:md5, sha1, rmd160, tiger, crc32, sha256, sha512, whirlpool

支持文件属性:文件类型,文件权限,索引节点,UID,GID,链接名称,文件大小,块大小,链接数量,Mtime,Ctime,Atime

支持Posix ACL,SELinux,XAttrs,扩展文件系统属性

纯文本的配置文件,精简型的数据库

强大的正则表达式,轻松筛选要监视的文件和目录

支持Gzip数据库压缩

独立二进制静态编译的客户端/服务器监控配置装

[root@centos7 ~]$yuminstall-y aide

安装AIDE

yum install aide

vi /etc/aide.conf

database=file:@@{DBDIR}/aide.db.gz #系统镜像库位置

database_out=file:@@{DBDIR}/aide.db.new.gz #新生成系统镜像库,默认在/var/lib/aide/下

# Next decide whatdirectories/files you want in the database.

/boot NORMAL

/bin NORMAL

/sbin NORMAL

/lib NORMAL

/lib64 NORMAL

#/opt NORMAL #注释不检查目录

/usr NORMAL

/root NORMAL

# These are too volatile ,排除掉个别不检查的目录

!/usr/src

!/usr/tmp

#根据需求在下面添加新的检测目录

/etc/exports NORMAL

/etc/fstab NORMAL

/etc/passwd NORMA

配置文件详解#定义了数据库路径的变量与日志路径的变量

@@define DBDIR /var/lib/aide

@@define LOGDIR /var/log/aide

#开启压缩

gzip_dbout=yes

# 将多个权限定义成规则赋给变量,便于后面引用

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

CONTENT = sha256+ftype

PERMS = p+u+g+acl+selinux+xattrs

# 采用哪种规则对哪些文件进行监控

/boot/ CONTENT_EX

/bin/ CONTENT_EX

/sbin/ CONTENT_EX

/lib/ CONTENT_EX

/lib64/ CONTENT_EX #采用CONTENT_EX定义的规则进行监测

/opt/ CONTENT #仅对opt目录进行校验码与文件类型监测

/root/\..* PERMS #PERMS并没有hash校验值,因为/root下的数据会经常变化

# 不监控的文件

!/etc/.*~

#p: permissions

#i: inode:

#n: number of links

#u: user

#g: group

#s: size

#b: block count

#m: mtime

#a: atime

#c: ctime

#S: check for growing size

#acl: Access Control Lists

#selinux SELinux security context

#xattrs: Extended file attributes

#md5: md5 checksum

#sha1: sha1 checksum

#sha256: sha256 checksum

#sha512: sha512 checksum

#rmd160: rmd160 checksum

#tiger: tiger checksum

定义规则

编辑配置文件/etc/adie.conf,定义一个规则变量mon,监控/app目录下所有文件,不监控/app/saomiao.log。

[root@centos7 aide]$ vim /etc/aide.conf

mon = p+u+g+sha512+m+a+c

/app mon

!/app/juli.sh

创建数据库

生成数据库文件,在配置文件中定义各文件计算各校验码放入数据库中,用于以后比对。从提示中看出生成了一个/var/lib/aide/aide.db.new.gz数据库文件,这个数据库文件为初始数据库,如果进行入侵检测将与/var/lib/aide/aide.db.gz数据库文件作比对,如果发现两个数据库不一致则提示被入侵。

[root@centos7 aide]$aide --init

AIDE, version 0.15.1

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.

模拟文件被入侵更改

模拟文件被修改 : 向saomiao.sh文件添加换行,促使更改校验码、Mtime、Ctime

[root@centos7 aide]$ echo >> /app/saomiao.sh

检测:AIDE的检测机制是计算出现在的数据库后与aide.db.gz比对。aide.db.gz默认又不存在,所以要将之前的创建的初始化数据库aide.db.new.gz改名为aide.db.gz。

[root@centos7 aide]$mv aide.db.new.gz aide.db.gz

入侵检测

最后使用aide -C注意是大写,将现在计算出的数据与aide.db.new.gz比对,查看数saomiao.sh文件的Mtime、CtimeSHA512被更改过

设置任务计划,定期检测

crontab –e

30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #每天早上08:30执行一次

也可以将信息发送到邮件:

30 08 * * * /usr/sbin/aide --check| mail –s “AIDE report“ test@163.co

二、RKHunter

RKHunter工具时专门检测系统是否遭受rootkit的一个工具,他通过自动执行一系列的脚本来全面的检测服务器是否感染rootkit。

RKHunter的功能

检测易受攻击的文件;

检测隐藏文件;

检测重要文件的权限;

检测系统端口号;

安装

[root@centos7 aide]$yum install rkhunter

检测

使用命令rkhunker -c对系统进行检测。RKHunter检测会分几部分,第一部分主要检测系统的二进制工具,因为这些工具时rootkit的首要感染目标。每检测完一部分需要Enter来确认继续。

[ ok ] 表示没有异常

[ no found ] 是没有找到此工具,不用理会

[ warning ] 如果是红色的Warnning那就需要进一步确认这些工具是否被感染或者被替换。

5b7d345ca7a75a2d6738094ba2cabfcf.png

设置任务计划,定期检测

crontab –e

30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #每天早上08:30执行一次

也可以将信息发送到邮件:

30 08 * * * /usr/sbin/aide --check| mail –s “AIDE report“ test@163.co

二、RKHunter

RKHunter工具时专门检测系统是否遭受rootkit的一个工具,他通过自动执行一系列的脚本来全面的检测服务器是否感染rootkit。

RKHunter的功能

检测易受攻击的文件;

检测隐藏文件;

检测重要文件的权限;

检测系统端口号;

安装

[root@centos7 aide]$yum install rkhunter

检测

使用命令rkhunker -c对系统进行检测。RKHunter检测会分几部分,第一部分主要检测系统的二进制工具,因为这些工具时rootkit的首要感染目标。每检测完一部分需要Enter来确认继续。

[ ok ] 表示没有异常

[ no found ] 是没有找到此工具,不用理会

[ warning ] 如果是红色的Warnning那就需要进一步确认这些工具是否被感染或者被替换。

ae4cf7ba921afd3ce51fe9499e7ec84f.png

如果想让程序自动检测而不是每检测完一部分就让用户确认,可以使用

rkhunter --check --skip-keypress

同时如果要想达到每周或者每月自动检测就可以将他加入到计划任务中自动执行

crontab -e

1 10 7 * * * root /usr/bin/rkhunter --check --cronjob

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/438523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第八节: EF的性能篇(一) 之 EF自有方法的性能测试

一. 开发中常见的性能问题 我们在日常开发过程中,由于一些不好的习惯,经常会导致所写的代码性能低下,却毫无发觉,下面就总结一下常见的一些性能问题。 1. 真假分页 ① 假分页: db.xxx.toList().Skip(2).take(4) 。 ②…

linux 中将文件设置密码,linux – 如何使用公钥在openssl中加密大文件

如何使用公钥加密大文件,以便没有人除了拥有私钥的人能够解密?我可以使RSA公钥和私钥,但当涉及到使用此命令加密大文件:openssl rsautl -encrypt -pubin -inkey public.pem -in myLargeFile.xml -out myLargeFile_encrypted.xml和…

如何查看自己linux版本,如何查看Linux操作系统版本?

1. 查看内核版本命令$ cat /proc/versionLinux version 2.6.32-358.el6.x86_64 (mockbuildc6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Fri Feb 22 00:31:26 UTC 2013$ uname -aLinux 192.168.1.10 2.6.32-358.el6.x86_64 #1 SMP…

第九节: EF的性能篇(二) 之 Z.EntityFramework.Extensions程序集解决EF的性能问题

一. 综述 该模块主要介绍:EF的性能优化插件Z.EntityFramework.Extensions,该插件收费。 (一). 简介 1. 相关网站:http://www.zzzprojects.com/ 2. 下载途径:通过Nuget直接下载或者去官网下载(要注意更新最新版本,可…

linux ssh非交互脚本,sshpass实现shell脚本非交互密码验证

1、sshpass的简介OpenSSH 自带的 ssh 客户端程序,默认不允许以非交互的方式传递密码,所以需要远程登录服务器进行批处理就无法进行。sshpass 的出现,解决了这一问题。它允许你用 -p 参数指定明文密码,然后直接登录远程服务器。2、…

第十节: EF的三种追踪实体状态变化方式(DBEntityEntry、ChangeTracker、Local)

一. 简介 我们在前面章节介绍EF基本增删改的时候,曾说过EF的SaveChanges()方法,会一次性的将所有的实体的状态变化统一提交到数据库,那么你是否想过EF的实体会有哪些状态变化呢?什么原因会导致其变化呢?我们怎么来追踪…

mathematica在linux上运行,Mathematica在Ubuntu中的表现及修正

Mathematica在Ubuntu中的表现及修正发布时间:2008-03-11 16:13:58来源:红联作者:verytow在Ubuntu-feisy中,使用Mathematica有一段时间了,由于Linux系统内存管理机制的优越性(具体的,我得去查资料,只是据说;用于计算大型…

第十一节: EF的三种模式(一) 之 DBFirst模式(SQLServer和MySQL两套方案)

一. 简介 EF连接数据库有三种模式,分别是DBFirst、ModelFirst、CodeFirst,分别适用于不同的开发场景。 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和MySql数据库两种操作方式 该模式在EF中出现的出现的最早,符合我们的传统…

linux禁止u盘自动运行,求设置U盘自动运行和禁止运行的方法。

方法一:这种方法比较简单,就是用户在放入U盘同时,按住Shift键直至U盘的指示灯熄灭,然后松开Shift键即可。这种方法是一种临时应急法,如果拥护之是偶尔项禁止自动播放功能,这种方法比较合适。方法二&#xf…

第十二节: EF的三种模式(二) 之 ModelFirst模式(SQLServer为例)

一. 简介 顾名思义,ModelFirst是模型优先,是DBFirst的逆向模式,先建立实体数据模型,然后根据实体数据模型来生成数据库,从而驱动整个开发流程.(生成一个空的edmx文件,手动在里面建立实体模型&am…

linux 查看zookeepr所在路径,Linux系统:Centos7下搭建ZooKeeper3.4中间件,常用命令总结...

本文源码:[GitHub点这里](https://github.com/cicadasmile/linux-system-base) || [GitEE点这里](https://gitee.com/cicadasmile/linux-system-base)# 一、下载解压##1、Zookeeper简介Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用…

第十三节: EF的三种模式(三) 之 来自数据库的CodeFirst模式

一. 简介 【来自数据库的Code First模式】实质上并不是CodeFirst模式,而是DBFirst模式的轻量级版本,在该模式中取消了edmx模型和T4模板,直接生成了EF上下文和相应的类,该模式出现在VS2015版本以后。 该模式也是适用于数据库已经设…

第十四节: EF的三种模式(四) 之 原生正宗的 CodeFirst模式的默认约定

一. 简介 1. 正宗的CodeFirst模式是不含有edmx模型,需要手动创建实体、创建EF上下文,然后生成通过代码来自动映射生成数据库。 2. 旨在:忘记SQL、忘记数据库。 3. 三类配置:One To One(one-to-zero-or-one)、One To Many、Many To…

查看linux硬核上的线程,给大家分享一点基础硬核知识哦 Linux的基础指令操作Lin...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼给大家分享一点基础硬核知识哦Linux的基础指令操作Linux的基础指令操作Linux的指令下达方式很简单,只需要记得几个重要的概念就可以l: command:指令,一行指令中第一个输入的部分绝对是指令2&…

第十五节: EF的CodeFirst模式通过DataAnnotations修改默认协定

一. 简介 1. DataAnnotations说明:EF提供以特性的方式添加到 domain classes上,其中包括两类: A:System.ComponentModel.DataAnnotations命名空间下的特性是表中列的属性的。 包括:Key、Required、MinLength和MaxLength、StringL…

linux 性能测试iostat,Linux性能分析之二(iostat)

前言在之前的博客中我们详细的说明了性能瓶颈的解决思路,也详细介绍了Vmstat的使用,今天我们就详细说说磁盘IO的那些事,磁盘IO是我们最常遇到的瓶颈,下面我们根据iostat详细聊聊磁盘IO一、磁盘IO性能指标1.1、每秒IO数(tps)对于磁…

第十六节: EF的CodeFirst模式通过Fluent API修改默认协定

一. 简介 1. 优先级&#xff1a;Fluent API > data annotations > default conventions. 2. 所有的Fluent API配置都要在 OnModelCreating这个重写方法中进行 3. 常见的配置&#xff1a; ① 获取表对应的配置根&#xff1a; var stu modelBuilder.Entity<XXX>(); ②…

安卓手机挂载Linux,android 挂载NFS教程

0&#xff0c;在Ubuntu新建nfs目录:#mkdir /home/shuimu/arm_project/rootfs将FORLINX_6410_yaffs2_v1.0.tgz复制到rootfs中&#xff0c;解压当前文件夹#tar–zxf FORLINX_6410_yaffs2_v1.0.tgz1.烧写mmc&#xff0c;uboot&#xff0c;zImage到开发板。2&#xff0c;在ubuntu上…

linux apache jk,Linux下Apache+Tomcat+JK实现负载均衡和群集的完整过程

感谢chaijunkun的精彩大作&#xff0c;真的辛苦了。最近在开发的项目需要承受很高的并发量。综合各种情况&#xff0c;决定使用ApacheTomcatJK的方式实现负载均衡&#xff0c;并且作为一个统一的服务还要实现群集(同步Session)。在网上找了很多资料&#xff0c;都是零零散散的&…

第十七节: EF的CodeFirst模式的四种初始化策略和通过Migration进行数据的迁移

一. 四种初始化策略 EF的CodeFirst模式下数据库的初始化有四种策略&#xff1a; 1. CreateDatabaseIfNotExists&#xff1a;EF的默认策略&#xff0c;数据库不存在,生成数据库&#xff1b;一旦model发生变化,抛异常&#xff0c;提示走数据迁移 2. DropCreateDatabaseIfModelCha…