参考: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. @property和@score.setter的用法

    @property 把属性装饰成get方法 给属性赋值时,会自动调用@property装饰的方法 只设置属性的@property 时,属性为只读 @score.setter 把属性装饰成set方法 给 ...

  2. 强化学习(四)—— DQN系列(DQN, Nature DQN, DDQN, Dueling DQN等)

    1 概述 在之前介绍的几种方法,我们对值函数一直有一个很大的限制,那就是它们需要用表格的形式表示.虽说表格形式对于求解有很大的帮助,但它也有自己的缺点.如果问题的状态和行动的空间非常大,使用表格表示难 ...

  3. sqlplus编译失效对象

    原文整理自:http://www.51testing.com/?uid-16403-action-viewspace-itemid-98161:http://www.eygle.com/archive ...

  4. oracle(环境搭建二)

    Configuration oracle database Password file(非必要)        cd $ORACLE_HOME/dbs/ ls 查看是否有init.ora 创建密码文件 ...

  5. Luogu2792 [JSOI2008]小店购物

    Luogu2792 [JSOI2008]小店购物 重题 bzoj4349 最小树形图 有 \(n\) 个物品,每个物品有价格 \(c_i\) 和所需个数 \(k_i\) ,所有物品必须恰好买 \(k_ ...

  6. Luogu2860 [USACO06JAN]冗余路径Redundant Paths

    Luogu2860 [USACO06JAN]冗余路径Redundant Paths 给定一个连通无向图,求至少加多少条边才能使得原图变为边双连通分量 \(1\leq n\leq5000,\ n-1\l ...

  7. Sqlserver内存管理:限制最大占用内存(转载)

    一.Sqlserver对系统内存的管理原则是:按需分配,且贪婪(用完不还).它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限 ...

  8. NetCore实践篇:分布式监控客户端ZipkinTracer从入门到放弃之路

    前言 本文紧接上篇.Net架构篇:思考如何设计一款实用的分布式监控系统?,上篇仅仅是个思考篇,跟本文没有太大的关系.但有思考,结合现有的开源组件,实践起来更易理解起来,所以看本文之前,应该先看下上篇博 ...

  9. 《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程

    好消息,<Python从菜鸟到高手>已经出版!!!   JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送2400分钟同步视频课程!500个案例,400道P ...

  10. WPF仿网易云音乐系列(二、歌单创建窗口+登录设置模块)

    老衲牺牲午休时间写博客,都快把自己感动了,-_-!! 之前上一篇随笔,我看了下评论,有部分人说WPF已经凉凉了,这个我觉得,这只是一个达到自己目的的工具而已,只要自己能用这个工具,得心应手的做出自己想 ...