相关概念

  • EVENT

    • 事件,审计系统计录的对象,包括用户登陆、网络与文件操作等各方面
  • CLASS
    • 类,对具有相同或类似属性的事件的分組
  • RECORD
    • 记录,审计系统生成的日志中的每一条信息
  • TRAIL
    • 账目,即日志文件
  • SELECTION EXPRESSION
    • 筛选表达式,用于提取有效审计信息的語法
  • PRESELECTION
    • 預设筛选,用于指定审计日志的记录范围
  • REDUCTION
    • 简化,或称为浓縮,是指从日志中提取重要内容的过程,也包括经过一段較长时间之后,对旧的审计日志中非重要部分进行清除以释放磁盘空间的行为

系统支持

  • # /etc/rc.conf[.local]
    auditd_enable="YES"
    # /usr/src/sys/amd64/conf/
    MyKernel
    options AUDIT 

配置

  • CONFIG FILE:/etc/security/audit_*
    • audit_class:类定义,其包含的具体内容定义在 audit_event 中,可以自定义其归属关系
    • audit_control:行为控制,针对整个系统
    • audit_event:可审计事件信息表
    • audit_user:对具体每个用户的行为控制
    • audit_warn:自带的警示脚本
  • 預置的 CLASS 定义
  • all    all    #匹配所有事件类别
    aa authentication and authorization #认証
    ad administrative #系统管理行为
    ap application #应用程序定义的行为
    cl file close #关闭文件相关的系统調用
    ex exec Audit program execution #程序运行
    fa file attribute access #文件属性查看,即 stat 之类的系统調用
    fc file create #文件创建
    fd file delete #文件册除
    fm file attribute modify #文件属性更改
    fr file read #文件防问/读取
    fw file write #文件更改或写入
    io ioctl #针对 ioctl 系统調用
    ip ipc #进程间通信,包括 POSIX 与 SYSTEM V 两类
    lo login_logout #系统登入与登出
    na non attributable #无属主事件,即登陆之前的行为,如失败的登陆尝试等
    no invalid class #无效事件,无关归类的事件
    nt network #网络请求与接受事件
    ot other #其它小概率事件
    pc process #审计进程的行为,如某进程調用 exec 类系统調用执行了哪些額外操作
  • /etc/security/audit_user
    • 以冒号分割为三个字段,分别为用户名、总是审计的事件、从不审计的事件
    • # 留空  表示记录成功或失败的事件
      # +  表示仅记录执行成功的事件
      # -  表示仅记录执行失败的事件
      # ^  表示记录既没有返回成功也没有返回失败的事件
      # ^-  没有返回失败信号的事件
      # ^+  没有返回成功信号的事件
      # 以上规则同样适用于 audit_control 文件中的 flags 与 naflags 字段
      John:lo,+ex:no #对 John 用户的登入登出及成功执行的程序进行审计;无法归类的事件不审计
      www:fc,+ex:no #对 www 用户的文件创建与成功执行程序事件进行审计;无法归类的事件不审计
  • /etc/security/audit_control
    • 参数含义
    • dir:/var/audit  #存放审计日志的目录
      dist:off  #当设定为 on 或 yes 时,所有审计日志文件都会在 /var/audit/dist 下创建更链接,供 auditdistd 使用,通过网络进行安全的分布式存储
      flags:lo,aa  #指定对所有用户都审计的事件类别
      host:10.1.1.2  #指定主机名称 或 IP,追加在每条审计记录的 header 之前;若使用主机名,在 /etc/hosts 中静态添加,不要依靠 DNS
      naflags:lo  #指定对哪些类别中的无法判定执行主体的事件进行审计
      minfree:5  #存放日志的目录所在文件系统需要为其它应用保留的空间百分比,如 5 代表預留 5%
      policy:cnt,argv  #全局策略参数(cnt:某个事件审计失败时継续运行,argv:)
      filesz:10M  #指日志大小上限, 表示不限制;达到指定大小时,会创建一个新文件継续记录,可以使用的单位:B(Bytes)、K(Kilobytes)、M(Megabytes)、G(Gigabytes),指定的值小于 512K 时,会被忽略
      expire-after:60d AND 1G  #指定审计日志失效条件,可以为时间(单位:y/d/h/s)或 size (单位:G/M/K/B)形式,可以用 AND、OR 逻辑进行組合,如本例指创建时间超过 60 天的日志会被清除,但如果所有日志的总大小没有超过 1G,则不清除,直到总大小达到 1G 

管理

  • audit 用户組中的成员拥有对 /var/audit 下审计日志的查看权限
  • 审计日志文件是以 BSD 二进制形式存储的,必須使务对应的工具进行管理:praudit、auditreduce
  • praudit
  • #将审计日志文件转换为可读文件格式,每个事件的记录起始位置用 header 与 trailer 标识;-x 表示转换为 xml 格式
    praudit [-x] /var/audit/AUDITFILE
    #示例:

    header,,,execve(),,Mon Sep :: , + msec
    exec arg,finger,John #命令及参数,此处意为执行了 finger John 命令
    path,/usr/bin/finger #所执行的命令的绝对路径
    attribute,,root,wheel,,, #这是对 finger 二进制文件当时的属性的描述
    subject,robert,root,wheel,root,wheel,,,,128.232.9.100 #audit user ID, effective user ID and group ID, real user ID and group ID, process ID, session ID, port ID, and login address
    return,success, #执行結果
    trailer, #結束标识
    # 仅提取 John 用户的审计日志
    auditreduce -u John /var/audit/AUDITFILE | praudit
    # 以类似于 top 命令的界面形式动态监控
    # 注意:监控行为本身会产生大量审计记录,影响视图可读性,此方法不适用于过于精细的审计对象
    praudit /dev/auditpipe #auditpipe 设备默认只有 root 可以訪问,若要授权 audit 用户組中的成员使用,在 /etc/devfs.rules 中添加 add path 'auditpipe*' mode 0440 group audit
  • 日志轮转(rotate)
    • 审计日志的分段存储,由 audit 自身管理,不能使用 newsyslog
    • 手动分段的命令是:audit -n,执行后会创建一个新的日志文件供内核写入;可以写入 crontab 中定时轮转
  • 日志压缩
    • 可以在 /etc/security/audit_warn 中添加自定义脚本内容
    • # 日志文件会在正常关闭的时候执行压缩
      # 如:关机或到达临界条件需要关闭旧的日志文件进行 rotate 时
      if [ "$1" = closefile ]; then #其中的 $1、closefile、$2 等是系统預先定义好的变量与标识
      xz $
      fi 

...

FreeBSD_11-系统管理——{Part_7 - AUDIT}的更多相关文章

  1. FreeBSD_11 - 系统管理——{ Part_5 - ZFS }

    参考資料 http://docs.oracle.com/cd/E37934_01/html/E36658/toc.html https://www.freebsd.org/doc/en_US.ISO8 ...

  2. linux服务之audit

    http://blog.chinaunix.net/uid-20786165-id-3167391.html http://blog.chinaunix.net/uid-8389195-id-1741 ...

  3. Linux 系统管理04--账号管理

    Linux系统管理04--账号管理 一.用户账号管理 1.用户账号概述 (1)用户账号的常见分类: 1>超级用户:root uid=0 gid=0 权限最大. 2>普通用户:uid> ...

  4. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  5. linux常用命令与系统管理常用命令

    linux命令:切换用户:开启ftp服务:service vsftpd start 开启ssh服务:service sshd start普通用户切换到超级用户:su rootlogout:(注销)un ...

  6. 第一篇 Entity Framework Plus 之 Audit

    一般系统会有登陆日志,操作日志,异常日志,已经满足大部分的需求了.但是有时候,还是需要Audit 审计日志,审计日志,主要针对数据增,改,删操作数据变化的记录,主要是对数据变化的一个追踪过程.其中主要 ...

  7. 1-linux系统管理(一)之安装RHEL 6.4

    linux系统管理之安装RHEL 6.4 进入安装界面 这里选择跳过 点击下一步 选择安装语言 选择键盘 选择系统储存方式 选择是否格式化储存设备 给安装的系统一个计算机名 选择时区 给root一个密 ...

  8. SQL Server Audit监控触发器状态

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 注意事项(Attention) 疑问(Questions) 参 ...

  9. Linux常用系统管理命令(top、free、kill、df)

    top   -c    #任务管理器 free  -m    #查看内存使用情况 kill  -9   2312 (说明:强制杀死进程 kill  -9  pid ) df   -h    #查看磁盘 ...

随机推荐

  1. 转:看看 Delphi XE2 为 VCL 提供的 14 种样式

    http://www.linuxso.com/linuxbiancheng/8889.html 其实只提供了 个 vsf 样式文件, 还有默认的 Windows 样式, 共 种. 在空白窗体上添加 L ...

  2. 2.1 -1.0 Xcode(发布时间、使用、快捷键、插件相关)

    本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书” 1.0 Xcode 发布时间 版本 iOS 版本 手机 日期 特殊介绍 Xcode 3.1 ...

  3. 2632: [neerc2011]Gcd guessing game

    2632: [neerc2011]Gcd guessing game Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 144  Solved: 84[S ...

  4. Cannot attach the file ‘{0}' as database '{1}'

    EF使用CodeFirst,当使用localDB时,删除mdf文件,会报“Cannot attach the file ‘{0}' as database '{1}'”错误. 解决方法如下: 1.打开 ...

  5. jquery 获取奇数索引的元素

    $(".btn-xs:odd").click(function(){ var $buy_num=$(this).prev("#buy_num").val(); ...

  6. iOS推送原理

    1.首先app会和apns建立长连接,会发送 udid和 bundle id给apns 2.apns会返回给app一个device token 3.用会把device token 发给自己的服务器 4 ...

  7. 《社交网络》里的评分公式——ELO排名系统

    <社交网络>里的Mark Zackburg被女朋友甩后,在舍友的启发下,充分发挥了技术宅男自娱自乐的恶搞天分,做出了Facemash网站,对学校女生的相貌进行排名打分,结果网站访问流量过大 ...

  8. python中的参数问题

    python中的有默认参数和可变参数之分 默认参数arg 可变参数args, kargs 默认参数arg就是调用指定参数 可变参数*arg调用时传入的的参数会被python自动包装为列表 可变参数ka ...

  9. iOS 属性修饰符记录 --不定时更新

    重新审视了一下OC在属性修饰符,特意记录一下来.以后不定时更新 > retain:只有在非ARC下才会有效,所有如果在ARC下使用了retain修饰也白搭 如以下的data属性用retain修饰 ...

  10. 工作中那些提高你效率的神器(第一篇)_Everything

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...