一、AIDE

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

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那就需要进一步确认这些工具是否被感染或者被替换。

设置任务计划,定期检测

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那就需要进一步确认这些工具是否被感染或者被替换。

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

rkhunter --check --skip-keypress

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

crontab -e

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

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

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

  1. linux的八进制文件模式,linux od-输出文件的八进制、十六进制等格式编码的字节...

    博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全 od命令用于输出文件的八进制.十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符. 常见的文件为文 ...

  2. linux系统中文件编程,Linux当中的文件系统

    1. 设备专用文件(设备文件) 设备专用文件与系统的某个设备相对应.在内核中,每种设备类型都有阈值向对应的设备驱动程序,用来处理设备的所有I/O请求.可以将设备划分为字符设备和块设备两种. 每个设备文 ...

  3. linux 开机启动文件夹,Linux开机启动流程

    linux开机启动详细流程图: 一.BIOS 加电自检 当你按电源开关开机时,电脑会首先去启动BIOS(基本输入输出系统),BIOS一般是集成在主板上的. BIOS 的工作 1.检测连接硬件,比如显卡 ...

  4. linux命令看文件内容,Linux文件内容查看相关命令

    1.more命令 在Linux中,more命令是一个基于vi编辑器的文本过滤器,它能以全屏的方式按页显示文本文件的内容,more里面内置了一些快捷键. (1)命令语法 more(选项)(参数) (2) ...

  5. mysql linux附加数据库文件夹,Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  6. linux轮训创建文件夹,Linux文件和目录管理相关命令(三)

    通过前两篇的文章分享大家是否对Linux文件和目录管理的相关命令有所了解了呢?今天小编将继续为大家带来Linux文件和目录管理相关命令的第三篇文章,想要做Linux运维工程师的小伙伴,来看一看,希望能 ...

  7. 删除 linux的ln文件夹,linux下添加链接与删除链接(ln命令的用法)

    添加链接使用ln命令 用法: #ln --help 用法:ln [选项]... 目标 [链接名] 或:ln [选项]... 目标... 目录 或:ln [选项]... --target-directo ...

  8. linux 4g大小文件夹,Linux: 如何分割文件,不再被 4G 大小限制了

    单文件 4G 限制 FAT32 4G 限制 百度网盘超出 4G 限制 单文件分割与合并 单文件,如:archive.tar.gz 分割 split -b 3000M -d -a 1 archive.t ...

  9. linux scp 过滤文件夹,linux中使用scp远程拷贝文件及文件夹

    linux中使用scp远程拷贝文件及文件夹 linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/roo ...

  10. linux自动挂载文件修复,Linux文件系统管理 开机自动挂载及fstab文件修复

    概述 开机自动挂载及fstab文件修复 开机自动挂载 实现开机后自动挂载,就需要修改系统的自动挂载文件 /etc/fstab.因为系统就是依赖这个文件决定启动时加载的文件系统的. 通过vi 打开/et ...

最新文章

  1. 我自己写的第一个Xslt
  2. 20145201 《信息安全系统设计基础》课程总结
  3. 【深度学习】270篇CVPR 2020代码开源的论文,全在这里了!
  4. SubVersion服务器Windows安装过程
  5. python观察日志(part23)--更改图片尺寸并保存
  6. win7开机按F8后,为什么没有修复计算机的选项
  7. 阿里开发者招聘节 | 面试题01:如何实现一个高效的单向链表逆序输出?
  8. 十八般武艺玩转GaussDB(DWS)性能调优:路径干预
  9. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property
  10. 打包巨慢怎么办?这些工具让你爱不释手
  11. 一个免费、大小仅几MB但超好用的卸载工具——Geek Uninstaller
  12. 云服务器子系统,超详尽教程!在Windows 10内置Ubuntu子系统上搭建私有云
  13. OPNET出错集锦:)
  14. WWW 2022 推荐系统和广告相关论文整理分类
  15. onenote怎么同步到电脑_如何同步手机和电脑 onenote
  16. 使用Memberane Moniter监控HTTP SOAP requests
  17. laravel中提供DB facade(原始查找)、查询构造器、Eloquent ORM三种操作数据库方式
  18. 斯坦福大学秋季课程《深度学习理论》STATS 385开讲
  19. matlab simulink 代数环问题解决
  20. fe_sendauth: no password supplied报错

热门文章

  1. 【原创】StreamInsight查询系列(十九)——查询模式之检测异常
  2. Jetty 服务器架构分析(中)
  3. [能力提升][费曼学习法]学习方法
  4. [Leetcode][第95题][JAVA][不同的二叉搜索树 II][递归]
  5. Java虚拟机(JVM)面试题大集合
  6. python 获取字符串中的字典_python cookies提取——从字符串到字典(一行Python代码)...
  7. jedispool redis哨兵_Redis详解(九)------ 哨兵(Sentinel)模式详解
  8. 蓝桥杯第六届C语言B——积分之谜
  9. 计算机网络项目实训教程课后答案,计算机网络项目实训教程
  10. sprintf函数_三分钟学 Go 语言——函数深度解析(下) 可变参数