CentOS下audit的介绍

本文最后更新于2017年7月15日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

=Start=

缘由:

Linux 审计系统(audit)为追踪系统中与安全相关的信息提供了途径。基于预配置原则,audit将生成日志项从而记录尽可能多的在系统中发生的事件。这一信息对执行关键任务的环境尤其重要,它可以确定那些违反安全策略的人以及他们的行为。audit不会为系统提供额外的安全保护;相反,它只是用来发现系统中违反安全策略的行为。通过额外的措施例如 SELinux 可以进一步地防止这些违反行为。

正文:

参考解答:

audit审计系统主要由以下几部分组成:

  • audit内核模块(kauditd);
  • audit用户态守护进程(auditd);
  • audit用户态实用工具(auditctl/audispd/aureport/ausearch/…);

Linux的audit审计系统提供了一种记录系统安全信息的方法,为系统管理员在用户违反系统安全规则时提供及时的警告信息。内核其他线程通过内核审计API写入套接字缓冲区队列audit_skb_queue中,内核线程kauditd通过netlink机制(NETLINK_AUDIT)将审计消息定向发送给用户态的审计后台auditd的主线程auditd主线程再通过事件队列将审计消息传给审计后台的写log文件线程,写入log文件。另一方面,审计后台还通过一个与套接字绑定的管道将审计消息发送给audispd应用程序,可把事件传送给其他应用程序做进一步处理

下面用一张图说明一下audit审计系统的大体架构:

RedHat官方给出的那个架构图觉得没有上面这张图清晰易懂,就不放了,感兴趣的可以自己去看看。

参考链接:

第 5 章 系统审核
https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Security_Guide/chap-system_auditing.html

linux服务之audit
http://www.cnblogs.com/createyuan/p/3861149.html

linux Audit 介绍【架构篇】
http://blog.chinaunix.net/uid-20786165-id-3166587.html

audispd – Unix,Linux命令
http://tutorialspoint.howtolib.com/unix_commands/audispd.htm
http://www.man7.org/linux/man-pages/man8/audispd.8.html

=END=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/3421.html

《CentOS下audit的介绍》上有9条评论


  1. Audit框架的核心主要是由内核源代码树中的 audit.c / auditsc.c / audit_tree.c / audit_watch.c 和 auditfilter.c 这5个文件来实现的。Audit子系统提供可由内核其他部分使用的功能,可以使用审计功能。这些功能已经被导出,允许内核的其他部分(内部或外部)访问,例如可加载模块或Linux安全模块。
    为了记录内核中的事件,开发人员只需要调用 audit_log() 函数,该函数将消息交给Linux审计系统进行处理。从源代码中可以看出,audit_log()函数是一个方便的函数,它主要包含 audit_log_start() / audit_log_vformat() 和 audit_log_end() 函数,这些函数负责执行实际的日志记录。

    每个文件的功能和目的的简单说明:
    audit.c
        基本功能,如初始化,创建netlink套接字,审计日志生成和与用户空间的通信
    auditsc.c
        系统调用审计功能
    audit_tree.c
        用于管理框架内部使用的数据结构的辅助功能
    audit_watch.c
        执行监控功能(文件规则)
    auditfilter.c
        执行过滤器的功能(系统调用规则)

  2. lkm入门&netlink通信示例
    https://blog.spoock.com/2019/11/25/lkm/

    1. 说明
    2. 基本介绍
    3. 内核模块和应用程序的区别
    4. LKM入门编写
    4.1. 简单的lkm
    4.2. 查看运行结果
    4.2.1. modinfo查看信息
    4.2.2. insmod 加载模块
    4.2.3. 查看模块运行信息
    5. 用户态通过netlink与LKM通信
    5.1. 示例程序
    5.2. 代码说明
    5.2.1. netlink_kernel_create
    5.2.2. netlink type
    6. 总结
    7. 参考

发表评论

电子邮件地址不会被公开。 必填项已用*标注