参考:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/sec-defining_audit_rules_and_controls

1、启动audit内核模块    

有些系统audit的内核模块时默认关闭的。可以查看/proc/cmdline,看audit=0,如果为0,则默认不启动audit。通过设置/boot/grub2/grub.cfg文件,使audit=1,或者去掉audit=0,然后重启系统,使audit内核模块启动。再次查看/proc/cmdline已修改为audit=1。

如果audit的内核模块启动了,用auditctl -s查询enabled为1,但是用户空间的auditd守护进程没有运行,审计日志无人接管,就会被写到/var/log/messages中。

2、启动auditd守护进程

我们习惯使用systemctl start xxx来启动一个服务,但是auditd手册中,明确指出使用service命令是唯一一个正确开启auditd守护进程的方式。使用systemctl只是enable,status这两个动作可以。

正常一个服务,我们使用service xx start时都会显示Redirecting to /bin/systemctl start xxx.service。我们可以通过which service来查看这个命令的源文件,/usr/sbin/service。这里对于不同的情况,有不同的处理。1)/etc/init.d目录下有这个服务;2)/usr/libexec/initscripts/legacy-actions目录下有这个服务;3)除了以上两种情况,其他情况下会定向到systemctl cmd xxx.service。auditd属于第二种情况,/usr/libexec/initscripts/legacy-actions目录有auditd目录,如下:

linux-xdYUnA:/usr/libexec/initscripts/legacy-actions/auditd # ls
condrestart restart resume rotate stop

1)设置开机启动/不启动

systemctl enable auditd
systemctl disable auditd

2)stop

service auditd stop

3) reload

service auditd reload

重新加载auditd的配置文件/etc/audit/auditd.conf。使用systemctl reload auditd也是生效的。

4)rotate

 service auditd rotate

在/var/log/audit/目录下rotate。

5)resume

service auditd resume

当日志记录停止时,用于恢复日志记录。

6)condrestart

service auditd condrestart

当服务正在运行时,重启服务。

3、auditd的服务文件如下:

[Unit]
Description=Security Auditing Service
DefaultDependencies=no

## If auditd.conf has tcp_listen_port enabled, copy this file to
## /etc/systemd/system/auditd.service and add network-online.target
## to the next line so it waits for the network to start before launching.

## 如果在auditd.conf中已经配置了tcp_listen_port,那么需要在After后面增加network-online.target,保证先启动网络,后再启动auditd
After=local-fs.target systemd-tmpfiles-setup.service
Conflicts=shutdown.target
Before=sysinit.target shutdown.target
RefuseManualStop=yes
ConditionKernelCommandLine=!audit=
Documentation=man:auditd() https://github.com/linux-audit/audit-documentation [Service]
Type=forking
PIDFile=/var/run/auditd.pid
ExecStart=/sbin/auditd

## To not use augenrules, copy this file to /etc/systemd/system/auditd.service
## and comment/delete the next line and uncomment the auditctl line.
## NOTE: augenrules expect any rules to be added to /etc/audit/rules.d/

## ungenrules这个工具是把/etc/audit/rules.d/目录下的规则文件,按照顺序加载进来,写入到/etc/audit/audit.rules文件中。如果不使用这个工具,下面这一行需要注释或删掉。auditctl那一行取消注释。
ExecStartPost=-/sbin/augenrules --load
#ExecStartPost=-/sbin/auditctl -R /etc/audit/audit.rules
ExecReload=/bin/kill -HUP $MAINPID
# By default we don't clear the rules on exit. To enable this, uncomment
# the next line after copying the file to /etc/systemd/system/auditd.service ## 这个是stop后执行的动作。stop.rulse主要是 -e 0 disable 和-D删除所有规则
## 如果不删除已经配置好的规则的话,在stop后,用auditctl -l查询可以看到有很多规则,并且enabled为1,这样的话,当auditd服务关闭了,但规则还在,那就会有大量的日志记录在messages中。stop.rules中通过-e 0使audit不工作,日志也不会记录在messages中
#ExecStopPost=/sbin/auditctl -R /etc/audit/audit-stop.rules [Install]
WantedBy=multi-user.target

4、audit的使能

通过auditctl -s查询可以看到audit的状态,这个是查询audit内核模块的状态。

linux-xdYUnA:/etc/audit # auditctl -s
enabled
failure
pid
rate_limit
backlog_limit
lost
backlog

其中“enabled”这个选项很重要的,如果为0,则audit就不工作了,看不到任何审计日志,哪怕是系统日志messages。所有的规则都不会生效,连没有设定规则时,su提权这样的操作也不会记录。无论是使用auditctl临设配置规则,还是用/etc/audit/audit.rules文件永久配置规则,所有规则设定都要在enabled为1时才可以生效。

当enabled为2时,则表示规则锁定,所有设置都不起作用,只有当系统重启后,enabled不为2了才可以。

服务是服务,enable是enable,这两者并没有关系,服务启动或停止是针对auditd这个守护进程。auditctl -s查询的enabled的状态为audit内核模块的状态。内核模块主要用来获取审计信息,用户态的守护进程主要用来收集信息和记录日志。enabled为1,服务停止,日志会记录在messages中;enable为0,服务启动,没有任何审计信息,不会记录日志。也就是auditd服务是否启动,决定日志记录在哪里,启动了,日志记录在配置文件指定的路径,没有启动,记录在messages日志中。enable决定内核是否开始审计,为0,不启动,为1,启动。

可以通过auditctl -e改变状态,0 不使能,1 使能,2 锁定配置。如果在/boot/grub2/grub.cfg里配置的audit=1,当系统重启后,enable默认为1,如果没有配置audit,则enable为0。

当然了,如果audit的内核模块不加载(即在/boot/grub2/grub.cfg中配置为audit=0),与内核模块交互的auditctl也就无法工作了,状态当然也无法查询。

linux-xdYUnA:~ # auditctl -s
Error - audit support not in kernel
Cannot open netlink audit socket

linux audit审计(2)--audit启动的更多相关文章

  1. linux audit审计(5)--audit规则配置

    audit可以配置规则,这个规则主要是给内核模块下发的,内核audit模块会按照这个规则获取审计信息,发送给auditd来记录日志. 规则类型可分为: 1.控制规则:控制audit系统的规则: 2.文 ...

  2. linux的审计功能(audit)

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

  3. linux audit审计(4)--audit的日志切分,以及与rsyslog的切分协同使用

    audit的规则配置稍微不当,就会短时间内产生大量日志,所以这个规则配置一定要当心.当audit日志写满后,可以看到如下场景: -r-------- 1 root root 8388609 Mar 3 ...

  4. ORACLE AUDIT 审计

    转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...

  5. Oracle Audit 审计功能的认识与使用

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

  6. MySQL审计工具Audit Plugin安装使用

    本实验的审计插件均是安装在 mysql-community-server-5.7.9 的服务器上. 插件安装(社区版) 插件下载地址: https://bintray.com/mcafee/mysql ...

  7. Oracle11g温习-第十九章:审计(audit)

    2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...

  8. Linux selinux 规则导致audit拒绝

    Linux selinux 规则导致audit拒绝 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-09-26. 查看 audit2why -d audit2allow 这两个命令. ...

  9. SQL Server 审计(Audit)

    审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审 ...

  10. Linux下memcached安装和启动方法

    Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...

随机推荐

  1. UVA1613-K-Graph Oddity(贪心)

    Problem UVA1613-K-Graph Oddity Accept: 108  Submit: 884Time Limit: 3000 mSec Problem Description Inp ...

  2. PHP json_encode 中文乱码

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code   在编码过程中.经常会用到json_encode来处理中文.但是.出现一个问题.中文 ...

  3. 极端恢复时用到的几个隐藏参数 Oracle hidden corruption recovery parameters

    Oracle hidden corruption recovery parameters Note: Oracle hidden parameters are undocumented and uns ...

  4. 摒弃FORM表单上传图片,异步批量上传照片

    之前作图像处理一直在用form表单做图片数据传输, 个人感觉low到爆炸而且用户体验极差,现在介绍一个一部批量上传图片的小技巧,忘帮助他人的同时也警醒自己在代码的编写时不要只顾着方便,也要考虑代码的健 ...

  5. Eclipse下关于The serializable class UsersServlet does not declare a static final serialVersionUID field of type的警告

    The serializable class XXX does not declare a static final serialVersionUID field of type long seria ...

  6. Spring Boot2.0 整合 Kafka

    Kafka 概述 Apache Kafka 是一个分布式流处理平台,用于构建实时的数据管道和流式的应用.它可以让你发布和订阅流式的记录,可以储存流式的记录,并且有较好的容错性,可以在流式记录产生时就进 ...

  7. 撒花!中文翻译仓库链接已加入 ML.NET 官方示例网站首页

    从2018年12月02日决定开始做ML.NET 示例中文版https://github.com/feiyun0112/machinelearning-samples.zh-cn,然后以每天一篇的速度进 ...

  8. 语法设计——基于LL(1)文法的预测分析表法

    实验二.语法设计--基于LL(1)文法的预测分析表法 一.实验目的 通过实验教学,加深学生对所学的关于编译的理论知识的理解,增强学生对所学知识的综合应用能力,并通过实践达到对所学的知识进行验证.通过对 ...

  9. Log4J.xml配置详解

    原文地址:https://blog.csdn.net/genyizha/article/details/74502812 Appender Appender:日志输出器,配置日志的输出级别.输出位置等 ...

  10. 写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接内容的本地查询

    始出处:http://www.cnblogs.com/Charltsing/p/APIViewer.html QQ:564955427,QQ群:550672198 世面上的API Viewer已经不少 ...