在 Oracle® Solaris 11.2 中管理审计

退出打印视图

更新时间: 2014 年 7 月
 
 

如何审计用户执行的所有命令

作为站点安全策略的一部分,有些站点会需要 root 帐户和管理角色运行的所有命令的审计记录。一些站点可能会需要所有用户运行的所有命令的审计记录。此外,站点可能还会要求记录命令参数和环境。

开始之前

要预选审计类和设置审计策略,您必须是指定有 "Audit Configuration"(审计配置)权限配置文件的管理员。要将审计标志指定给用户、角色和权限配置文件,您必须承担 root 角色。

  1. 显示 loex 类的用户级别事件信息。

    ex 类审计对 exec()execve() 函数的所有调用。

    lo 类审计登录、注销和屏幕锁定。以下输出列出了 exlo 类中的所有事件。

    % auditconfig -lsevent | grep " lo "
    AUE_login                       6152 lo login - local
    AUE_logout                      6153 lo logout
    AUE_telnet                      6154 lo login - telnet
    AUE_rlogin                      6155 lo login - rlogin
    AUE_rshd                        6158 lo rsh access
    AUE_su                          6159 lo su
    AUE_rexecd                      6162 lo rexecd
    AUE_passwd                      6163 lo passwd
    AUE_rexd                        6164 lo rexd
    AUE_ftpd                        6165 lo ftp access
    AUE_ftpd_logout                 6171 lo ftp logout
    AUE_ssh                         6172 lo login - ssh
    AUE_role_login                  6173 lo role login
    AUE_newgrp_login                6212 lo newgrp login
    AUE_admin_authenticate          6213 lo admin login
    AUE_screenlock                  6221 lo screenlock - lock
    AUE_screenunlock                6222 lo screenlock - unlock
    AUE_zlogin                      6227 lo login - zlogin
    AUE_su_logout                   6228 lo su logout
    AUE_role_logout                 6229 lo role logout
    AUE_smbd_session                6244 lo smbd(1m) session setup
    AUE_smbd_logoff                 6245 lo smbd(1m) session logoff
    AUE_ClientConnect               9101 lo client connection to x server
    AUE_ClientDisconnect            9102 lo client disconn. from x server
    
    % auditconfig -lsevent | egrep " ex |,ex |ex,"
    AUE_EXECVE                        23 ex,ps execve(2)
  2. 审计 loex 类。
    • 要审计管理角色的这些类,请修改角色的安全属性。

      在以下示例中,root 是一个角色。站点已创建 sysadmauditadmnetadm 三个角色。针对 exlo 类中的成功事件和失败事件审计所有角色。

      # rolemod -K audit_flags=lo,ex:no root
      
      # rolemod -K audit_flags=lo,ex:no sysadm
      
      # rolemod -K audit_flags=lo,ex:no auditadm
      
      # rolemod -K audit_flags=lo,ex:no netadm
      
    • 要审计所有用户的这些类,请设置系统范围的标志。
      # auditconfig -setflags lo,ex
      

      输出内容类似如下:

      header,129,2,AUE_EXECVE,,mach1,2010-10-14 12:17:12.616 -07:00
      path,/usr/bin/ls
      attribute,100555,root,bin,21,320271,18446744073709551615
      subject,jdoe,root,root,root,root,2486,50036632,82 0 mach1
      return,success,0
      
  3. 指定要记录的、与命令用法有关的其他信息。
    • 要记录命令参数,请添加 argv 策略。
      # auditconfig -setpolicy +argv

      exec_args 标记用于记录命令参数:

      header,151,2,AUE_EXECVE,,mach1,2010-10-14 12:26:17.373 -07:00
      path,/usr/bin/ls
      attribute,100555,root,bin,21,320271,18446744073709551615
      exec_args
      ,2,ls,/etc/security
      subject,jdoe,root,root,root,root,2494,50036632,82 0 mach1
      return,success,0
    • 要记录命令的运行环境,请添加 arge 策略。
      # auditconfig -setpolicy +arge
      

      exec_env 标记用于记录命令环境:

      header,1460,2,AUE_EXECVE,,mach1,2010-10-14 12:29:39.679 -07:00
      path,/usr/bin/ls
      attribute,100555,root,bin,21,320271,18446744073709551615
      exec_args,2,ls,/etc/security
      exec_env
      ,49,MANPATH=/usr/share/man,USER=jdoe,GDM_KEYBOARD_LAYOUT=us,EDITOR=gedit,
      LANG=en_US.UTF-8,GDM_LANG=en_US.UTF-8,PS1=#,GDMSESSION=gnome,SESSIONTYPE=1,SHLVL=2,
      HOME=/home/jdoe,LOGNAME=jdoe,G_FILENAME_ENCODING=@locale,UTF-8,
      PRINTER=example-dbl,...,_=/usr/bin/ls
      subject,jdoe,root,root,root,root,2502,50036632,82 0 mach1
      return,success,0