• Linux操作系统之安全审计功能


    内核编译时,一般打开NET选项就打开AUDIT选项了。
    在系统中查看audit是否打开,root 用户执行:
    service auditd status

    我们知道在Linux系统中有大量的日志文件可以用于查看应用程序的各种信息,
    但是对于用户的操作行为(如某用户修改删除了某文件)却无法通过这些日志文件来查看,
    如果我们想实现监管企业员工的操作行为就需要开启审计功能,也就是auditd。

    1、首先执行以下命令开启auditd服务

    service auditd start

    2、接着查看看auditd的服务状态,有两种方法可以实现,使用auditctl命令时主要看enabled是否为1,1为开启,0为关闭
    [root@ns-master-c01 ~]# service auditd status
    auditd (pid  20594) is running...

    [root@ns-master-c01 ~]# auditctl -s
    AUDIT_STATUS: enabled=1 flag=1 pid=20594 rate_limit=0 backlog_limit=320 lost=0 backlog=0

    3、开启了auditd服务后,所有的审计日志会记录在/var/log/audit/audit.log文件中,
    该文件记录格式是每行以type开头,
    其中红框处是事件发生的时间(代表从1970年1月1日到现在过了多久,可以用date命令转换格式),
    冒号后面的数字是事件ID,同一个事件ID是一样的。

    4、audit可以自定义对指定的文件或命令进行审计(如监视rm命令被执行、/etc/passwd文件内容被改变),
    只要配置好对应规则即可,配置规则可以通过命令行(临时生效)或者编辑配置文件(永久生效)两种方式来实现。
     
    编辑配置文件(永久生效):

    auditd的配置文件为/etc/audit/audit下的auditd.conf 和audit.rules
    auditd.conf 主要是定义了auditd服务日志和性能等相关配置,
    audit.rules才是定义规则的文件,

     
    修改完后重启服务
    service auditd restart
     
     
    5.如果直接使用tailf等查看工具进行日志分析会比较麻烦,
    好在audit已经提供了一个更好的事件查看工具——ausearch,使用auserach -h查看下该命令的用法:

    这里列出几个常用的选项:

    -a number  #只显示事件ID为指定数字的日志信息,如只显示926事件:ausearch -a 926

    -c  commond  #只显示和指定命令有关的事件,如只显示rm命令产生的事件:auserach  -c  rm

    -i  #显示出的信息更清晰,如事件时间、相关用户名都会直接显示出来,而不再是数字形式

    -k  #显示出和之前auditctl -k所定义的关键词相匹配的事件信息
     
     
    6、使用auditctl还可以查看和清空规则

    auditctl -l 查看定义的规则
    auditctl -D 清空定义的规则

     
    -------------------
    安装 auditd

    REL/centos默认已经安装了此套件,如果你使用ubuntu server,则要手工安装它:
    sudo apt-get install auditd
    它包括以下内容:
    auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。
    /etc/audit/audit.rules : 记录审计规则的文件。
    aureport : 查看和生成审计报告的工具。
    ausearch : 查找审计事件的工具
    auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
    autrace : 一个用于跟踪进程的命令。
    /etc/audit/auditd.conf : auditd工具的配置文件。



    Auditd文件和目录访问审计

    首次安装 auditd 后, 审计规则是空的。可以用 sudo auditctl -l 查看规则。文件审计用于保护敏感的文件,如保存系统用户名密码的passwd文件,文件访问审计方法:
    sudo auditctl -w /etc/passwd -p rwxa

    -w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
    -p : 指定触发审计的文件/目录的访问权限
    rwxa : 指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)

    目录进行审计和文件审计相似,方法如下:
    $ sudo auditctl -w /production/
    以上命令对/production目录进行保护。


    查看审计日志
    添加规则后,我们可以查看 auditd 的日志。使用 ausearch 工具可以查看auditd日志。
    sudo ausearch -f /etc/passwd

    -f 设定ausearch 调出 /etc/passwd文件的审计内容

    查看审计报告

    以上命令返回log如下:
    time->Mon Dec 22 09:39:16 2016
    type=PATH msg=audit(1419215956.471:194): item=0 name="/etc/passwd"
    inode=142512 dev=08:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
    type=CWD msg=audit(1419215956.471:194): cwd="/home/somebody"
    type=SYSCALL msg=audit(1419215956.471:194): arch=40000003 syscall=5
    success=yes exit=3 a0=b779694b a1=80000 a2=1b6 a3=b8776aa8 items=1 ppid=2090 pid=2231 auid=4294967295
    uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000 tty=pts0 ses=4294967295

    comm="sudo" exe="/usr/bin/sudo" key=(null)
    time : 审计时间。
    name : 审计对象
    cwd : 当前路径
    syscall : 相关的系统调用
    auid : 审计用户ID
    uid 和 gid : 访问文件的用户ID和用户组ID
    comm : 用户访问文件的命令
    exe : 上面命令的可执行文件路径

    备注:随笔中内容来源于网上资料整理,仅供参考。

  • 相关阅读:
    2. Redis哨兵、复制、集群的设计原理与区别
    1. 详解Redis的存储类型、集群架构、以及应用场景
    博客园主题优化
    【Java基础】Java面试题精选
    【Java集合】——集合类分析总结
    新零售供应链的三大闭环
    Comparable和Comparator比较实现排序 场景分析
    Java基础-枚举类
    Java基础-泛型
    微服务架构~BFF和网关
  • 原文地址:https://www.cnblogs.com/Alanf/p/8653395.html
Copyright © 2020-2023  润新知