在CentOS上配置基于主机的入侵检测系统(IDS)

所有系统管理员想要在他们生产服务器上首先要部署的安全手段之一,就是检测文件篡改的机制——不仅仅是文件内容,而且也包括它们的属性。

AIDE (“高级入侵检测环境”的简称)是一个开源的基于主机的入侵检测系统。AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整 性,这些文件属性包括权限、文件类型、索引节点、链接数、链接名、用户、组、文件大小、块计数、修改时间、添加时间、创建时间、acl、SELinux安 全上下文、xattrs,以及md5/sha校验值在内的各种特征。

AIDE通过扫描一台(未被篡改)的Linux服务器的文件系统来 构建文件属性数据库,以后将服务器文件属性与数据库中的进行校对,然后在服务器运行时对被修改的索引了的文件发出警告。出于这个原因,AIDE必须在系统 更新后或其配置文件进行合法修改后重新对受保护的文件做索引。

对于某些客户,他们可能会根据他们的安全策略在他们的服务器上强制安装某种入侵检测系统。但是,不管客户是否要求,系统管理员都应该部署一个入侵检测系统,这通常是一个很好的做法。

在 CentOS或RHEL 上安装AIDE

AIDE 的初始安装(同时是首次运行)最好是在系统刚安装完后,并且没有任何服务暴露在互联网甚至局域网时。在这个早期阶段,我们可以将来自外部的一切闯入和破坏 风险降到最低限度。事实上,这也是确保系统在AIDE构建其初始数据库时保持干净的唯一途径。(LCTT 译注:当然,如果你的安装源本身就存在安全隐患,则无法建立可信的数据记录)

出于上面的原因,在安装完系统后,我们可以执行下面的命令安装AIDE:

# yum install aide

我们需要将我们的机器从网络断开,并实施下面所述的一些基本配置任务。

配置AIDE

默认配置文件是/etc/aide.conf,该文件介绍了几个示例保护规则(如FIPSR,NORMAL,DIR,DATAONLY),各个规则后面跟着一个等号以及要检查的文件属性列表,或者某些预定义的规则(由+分隔)。你也可以使用此种格式自定义规则。

FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
NORMAL = FIPSR+sha512

例 如,上面的例子说明,NORMAL规则将检查下列属性的不一致性:权限(p)、索引节点(i)、链接数(n)、用户(u)、组(g)、大小(s)、修改时 间(m)、创建时间(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA256/SHA512校验和 (sha256和sha512)。

定义的规则可灵活地用于不同的目录和文件(用正则表达式表示)。

条目之前的感叹号(!)告诉AIDE忽略子目录(或目录中的文件),对于这些可以另外定义规则。

在 上面的例子中,PERMS是用于/etc机器子目录和文件的默认规则。然而,对于/etc中的备份文件(如/etc/.*~)则不应用任何规则,也没有规 则用于/etc/mtab文件。对于/etc中的其它一些选定的子目录或文件,使用NORMAL规则替代默认规则PERMS。

定义并应用 正确的规则到系统中正确的位置,是使用AIDE最难的一部分,但作一个好的判断是一个良好的开始。作为首要的一条规则,不要检查不必要的属性。例如,检查 /var/log或/var/spool里头的文件的修改时间将导致大量误报,因为许多的应用程序和守护进程经常会写入内容到该位置,而这些内容都没有问 题。此外,检查多个校验值可能会加强安全性,但随之而来的是AIDE的运行时间的增加。

可选的,如果你使用MAILTO变量指定电子邮件地址,就可以将检查结果发送到你的邮箱。将下面这一行放到/etc/aide.conf中的任何位置即可。

MAILTO=[email protected]

首次运行AIDE

运行以下命令来初始化AIDE数据库:

# aide --init

根据/etc/aide.conf生成的/var/lib/aide/aide.db.new.gz文件需要被重命名为/var/lib/aide/aide.db.gz,以便AIDE能读取它:

javascript">
# mv /var/lib/aide/aide.db.new.gz /var/lib/aide.db.gz

现在,是时候来将我们的系统与数据库进行第一次校对了。任务很简单,只需运行:

# aide

在没有选项时,AIDE假定使用了--check选项。

如果在数据库创建后没有对系统做过任何修改,AIDE将会以OK信息来结束本次校对。

生产环境中管理AIDE

在构建了一个初始AIDE数据库后,作为不断进行的系统管理活动,你常常需要因为某些合法的理由更新受保护的服务器。每次服务器更新后,你必须重新构建AIDE数据库,以更新数据库内容。要完成该任务,请执行以下命令:

# aide --update

要使用AIDE保护生产系统,可能最好通过任务计划调用AIDE来周期性检查不一致性。例如,要让AIDE每天运行一次,并将结果发送到邮箱:

# crontab -e
0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE run for $HOSTNAME" your@email.com

测试AIDE检查文件篡改

下面的测试环境将演示AIDE是如何来检查文件的完整性的。

测试环境 1

让我们添加一个新文件(如/etc/fake)。

# cat /dev/null > /etc/fake

测试环境 2

让我们修改文件权限,然后看看它是否被检测到。

# chmod 644 /etc/aide.conf

测试环境 3

最后,让我们修改文件内容(如,添加一个注释行到/etc/aide.conf)。

echo "#This is a comment" >> /etc/aide.conf

上面的截图中,第一栏显示了文件的属性,第二栏是AIDE数据库中的值,而第三栏是更新后的值。第三栏中空白部分表示该属性没有改动(如本例中的ACL)。

结尾

如果你曾经发现你自己有很好的理由确信系统被入侵了,但是第一眼又不能确定到底哪些东西被改动了,那么像AIDE这样一个基于主机的入侵检测系统就会很有帮助了,因为它可以帮助你很快识别出哪些东西被改动过,而不是通过猜测来浪费宝贵的时间。

时间: 2024-10-09 12:36:11

在CentOS上配置基于主机的入侵检测系统(IDS)的相关文章

在CentOS6.5上配置基于主机的入侵检测系统(IDS)

项目背景: AIDE ("高级入侵检测环境"的简称)是一个开源的基于主机的入侵检测系统.AIDE通过检查大量文件属性的不一致性来检查系统二进制文件和基本配置文件的完整性,这些文件属性包括权限.文件类型.索引节点.链接数.链接名.用户.组.文件大小.块计数.修改时间.添加时间.创建时间.acl.SELinux安全上下文.xattrs,以及md5/sha校验值在内的各种特征. AIDE通过扫描一台(未被篡改)的Linux服务器的文件系统来构建文件属性数据库,以后将服务器文件属性与数据库中的

如何在CentOS上配置基于主机的入侵检测系统?

任何系统管理员想要在其生产服务器上最先部署的安全措施之一就是检测文件篡改的机制――不法分子篡改的不仅仅是文件内容,还有文件属性. AIDE(全称“高级入侵检测环境”)是一种基于主机的开源入侵检测系统.AIDE通过检查许多文件属性的不一致性来检查系统二进制文件和基本配 置文件的完整性,这些文件属性包括权限.文件类型.索引节点(inode).链接数量.链接名称.用户.用户组.文件大小.块计数.修改时间.访问时间. 创建时间.访问控制列表(acl).SELinux安全上下文.xattrs以及md5/s

CentOS上配置Cacti监控MySQL

防伪码:即使没有辉煌的未来.如果能有无悔的往昔.   第九章 CentOS上配置Cacti监控MySQL 前言:在企业网络运维过程中,管理员必须随时关注服务器和网络的运行状况.以便及时发现问题,尽可能减少故障的发生.当网络中的设备.服务器等数量较多时,为了更加方便.快捷的获得各种监控信息,通常会借助于一些集中检测软件.本章将以著名的Cacti套件为例,介绍服务器集中监控体系的构建和使用. 一.Cacti官方简介: 1.Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且

Laravel学习笔记(三)--在CentOS上配置Laravel

在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚. 今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下. 1)系统上已经安装了Apache.PHP.mysql,安装命令为yum install httpd php mysql 因为CentOS 7自带的php模块很少,如果需要增加模块,需要编译才行,所以需要php-devel模块,用yum install php-devel命令就可以了. 2)安装laravel a)安装com

SharePoint 2013 为站点配置基于主机标头的双域名

SharePoint的应用中,经常需要配置双域名,为不同的认证方式提供访问入口,下面简单介绍下,如何以主机标头的方式为SharePoint配置双域名: 配置基于主机标头的双域名 1.原本可以访问的测试站点,如下图 2.去管理中心,为应用程序创建扩展应用程序,如下图: 3.填写扩展应用程序的名字,也就是第二个域名,如下图: 4.可以到IIS中查看,多出来一个Web站点,如下图: 5.然后就可以访问这个站点的地址了,如下图: 修改SharePoint站点主机标头 1.进入IIS,站点,如下图: 点击

配置基于主机名的虚拟主机及HTTPD 加密SSL配置以及HTTPS强制跳转

配置基于主机名的虚拟主机   1.先配置DNS DNS 安装 yum install bind* -y 开户防火墙 iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT service

[入侵检测系统][IDS]CentOS6.6搭建基于snort+barnyard2+base的入侵检测系统

CentOS6.6搭建基于snort+barnyard2+base的入侵检测系统 由于网上对于linux下搭建基于snort的入侵检测系统不是很详细,这里我写个文档给大家参考参考: 本文档主要使用的软件已上传至百度云:http://pan.baidu.com/s/1qWui0c0 密码:y80f,其他软件可以根据文档中的命令在线下载安装: 文档中的命令大多可以直接使用(除非时间太久导致系统/软件/链接失去支持等),顺利的话,可以在2小时内搭建完毕: 如果安装报错,请检查步骤是否正确,然后百度/g

在 Tomcat 上配置虚拟主机

1.Tomcat 服务器的server.xml文件   (1)Tomcat 组件 Tomcat服务器是由一系列可配置的组件构成,其中核心组件是 Catalina Servlet 容器,它是所有其他 Tomcat 组件的顶层容器.Tomcat 的组件可以在 <CATALINA_HOME>/conf/server.xml 文件中进行配置,每个 Tomcat 组件在 server.xml 文件中对应一种配置元素.   (2)Tomcat 组件之间的关系 以下代码以 XML 的形式展示了各种 Tomc

在centos上配置IP

当我们安装好系统后,最先做的应该就是配置IP了,因为无论是要下载工具软件.还是远程链接,网络必不可少,所以我们要先来配置IP! 一.查看IP 如何在centos上查看IP呢,使用 ifconfig 命令 常用参数:-a 查看所有网卡(包括在使用和未使用的) 二.临时获得IP 使用dhclient 命令,自动获得IP,不过只是暂时的 三.通过配置文件获得IP 配置文件位置为: /etc/sysconfig/network-scripts/ifcfg-eth0 (在更改配置文件前最好备份一次,防止修