一、AIDE的作用

   AIDE(Adevanced Intrusion Detection Environment) 高级非法***检测环境,是一个检测工具,主要用途是检查文件的完整性,当一个非法用户者进入了你的系统并且种植了病毒,通常会想办法来隐蔽这个病毒(除了自身的一些隐蔽特性外,他会尽量给你检查系统的过程设置障碍),通常会修改一些文件,比如管理员通常用ps -aux 来查看系统进程,那么很可能用自己经过修改的ps程序来替换掉你系统上的ps程序,以使用ps命令查不到正在运行的病毒程序。如果发现管理员正在运行crontab作业,也有可能替换掉crontab程序等,AIDE是一款免费的但功能也很强大的工具,主要就是审计计算机上的哪些文件被更改过。

   AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。 AIDE数据库能够保存文件的各种属性,包括:权限(permission)、索引节点 序号(inode number)、所属用户(user)、所属用户组(group)、文件大小、最 后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小 以及连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密 文形式建立每个文件的校验码或散列号。

   注:rpm -V 也可以查看文件的修改状况,但是查看的信息不如AIDE的详细,且rpm -V 只能查看rpm包的信息。

二、安装AIDE

1、AIDE系统默认未被安装,需要通过手动安装:yum install aide

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers

2、修改配置文件:vim /etc/aide.conf,该文件规定了一些默认规则,和设置的策略。

            默认规则: # These are the default rules.  

                    #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

在配置文件中添加一条策略:策略名=默认规则 ,如下图。

AIDE、sudo、TCP_Wrappers的基本使用_TCP_02

为需要检测的文件添加该策略:文件名  策略名;若是某些文件不需要检测需要在前加!,如下图:!/usr/src

AIDE、sudo、TCP_Wrappers的基本使用_TCP_03

3、在/app目录下做一些修改操作后:aide --init/aide -i生成数据库(/var/lib/aide下)。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_04

4、查看文件做了哪些修改操作 ,在该实验中提前修改/app/file1、file2、file3的数据:aide -C进行校验不同,查看修改的信息,会发现只显示file1和file2的数据发生了改变,而file3的数据更改后未被提示,这是因为在aide.conf文件中设置成不检测该文件。

AIDE、sudo、TCP_Wrappers的基本使用_AIDE_05

更新数据库,会重新生成一会数据库,但结果不会覆盖原数据:aide -u 需要手动修改。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_06

三、sudo

   sudo系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。减少root用户的登录和管理时间,同时也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用sudo,会提示x联系管理员。sudo可以提供日志,记录每个用户使用sudo操作。sudo为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机 。

         通过visudo命令编辑主配置文件,且具有语法检查功能 。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_07

visudo与vim的不同的是其具备语法检测功能,但是不像vim有色彩功能,可以后续操作使其具备颜色。永久生效可以写如/etc/profile.d/下,soucre该文件。具体如下图操作。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_08

当提示语法出错时,可输入e进入编辑模式。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_09

主配置文件:/etc/sudoers  子配置文件:/etc/sudoers.d/

时间戳文件:/var/db/sudo 

日志文件:/var/log/secure 

配置文件支持使用通配符glob:

 ?:任意单一字符

 * :匹配任意长度字符(不能匹配空)

 [wxc]:匹配其中一个字符

 [!wxc]:除了这三个字符的其它字符

 \x : 转义 [[alpha]] :字母 示例: /bin/ls [[alpha]]* 

配置文件规则有两类:1、别名定义:不是必须的 

             2、授权规则:必须的


规定的授权格式;用户 登入主机=(代表用户) 命令   

注:登陆主机也可以是ip地址,且授权的命令必须是绝对路径,因为只要是命令写入文件里必须是绝对路径,脚本除外。另授权时大的权限要写在前,禁大的权限中的某些权限卸载其后。在匹配字符时*可以匹配任意字符但不包括空字符。

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_10

eg:解析ip地址、主机名

AIDE、sudo、TCP_Wrappers的基本使用_TCP_11

测试:新添一用户,使用普通用户liubei操作。如下图。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_12

为用户授权一定要注意排错,因为不注意的话很可能会成为第二个root,下图所示就是一个因授权而产生的bug。

AIDE、sudo、TCP_Wrappers的基本使用_AIDE_13

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_14

所以最好不要写太多选项,直接写要禁的内容。

AIDE、sudo、TCP_Wrappers的基本使用_TCP_15

别名规则

如果需要授权的用户/主机/命令较多,可以直接定义一个别名,写授权策略时可以直接引用

 Users和runas: username /#uid/%group_name/ %#gid user_alias|runas_alias 

 host: ip或hostname /network(/netmask) /host_alias 

command: command name directory sudoedit Cmnd_Alias

eg:设置用户别名(别名必须大写)

AIDE、sudo、TCP_Wrappers的基本使用_AIDE_16

visudo通常都会把授权规则写在主配置文件,此为也可以直接vim /etc/sudoers.d/*或visudo -f,使用授权规则时需要输入用户密码。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_17

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_18

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_19

5分钟“入场券”

       sudo使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”5分钟一过需要重新输入密码验证身份。

默认“票”的存放路经/var/run/sudo/ts,下图操作先修改时间戳,在5分钟内时免密码可执行其相应的授权操作,时间超过需再次输入密码。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_20

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_21

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_22

普通用户在下次执行所授权限时强制输入密码:sudo -k

删除"5分钟入场券"文件,强制再次使用输入密码:sudo -K

查看详细信息:sudo - V

给“5分钟入场卷“重新计时:sudo -v

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_23

sudo操作默认都是root身份执行,仿冒别的用户身份进行操作:sudo -u username,具体操作如下图。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_24


TCP_Wrappers

      默认工作在第四层(传输层)的TCP协议 ,对有状态连接的特定服务进行安全检测并实现访问控制;以库文件形式实现;某进程是否接受libwrap的控制取决于发起此进程的程序在编译时是否针对libwrap进行编译的。

判断服务程序是否能够由tcp_wrapper进行访问控制的方法:

             ldd /PATH/TO/PROGRAM|grep libwrap.so       ldd读取二进制文件内容

             strings PATH/TO/PROGRAM|grep libwrap.so   strings读取明文内容

eg:

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_25

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_26

查看二进制服务名如下图。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_27

TCP_Wrappers的使用

默认存在两个配置文件:/etc/hosts.allow     /etc/hosts.deny

检查顺序先读hosts.allow,再读hosts.deny(默认允许) 

注意:一旦前面规则匹配,直接生效,将不再继续


来波实验操作:以ftp服务段/客服端,在黑名单中禁掉主机地址为192.168.219.135的访问。

AIDE、sudo、TCP_Wrappers的基本使用_AIDE_28

在客户机中访问ftp服务器会出现如下图的情况。

AIDE、sudo、TCP_Wrappers的基本使用_Wrappers_29

在白名单中也可以添加拒绝的服务,如果同一条规则分别写入白名单和黑名单默认执行的时黑名单中的内容。

AIDE、sudo、TCP_Wrappers的基本使用_TCP_30

在白名单中下方图中的规则表示在192.168网段除了192.168.219.135地址拒绝所有主机的访问

AIDE、sudo、TCP_Wrappers的基本使用_AIDE_31

– 在/etc/hosts.allow中添加,允许登录,并记录日志 

– 在/etc/hosts.deny中添加,拒绝登录,并记录日志 

– %c 客户端信息 

– %s 服务器端信息 

– %d 服务名

 – %p 守护进程的PID 

另:spawn写到allow表示允许写到deny表示拒绝 

       twist实际动作是拒绝访问,使用指定的操作替换当前服务,标准I/O和 ERROR发送到客户端,默认至/dev/null 

AIDE、sudo、TCP_Wrappers的基本使用_TCP_32

AIDE、sudo、TCP_Wrappers的基本使用_SUDO_33