linux audit审计(2)--audit启动
参考: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启动的更多相关文章
- linux audit审计(5)--audit规则配置
audit可以配置规则,这个规则主要是给内核模块下发的,内核audit模块会按照这个规则获取审计信息,发送给auditd来记录日志. 规则类型可分为: 1.控制规则:控制audit系统的规则: 2.文 ...
- linux的审计功能(audit)
为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...
- linux audit审计(4)--audit的日志切分,以及与rsyslog的切分协同使用
audit的规则配置稍微不当,就会短时间内产生大量日志,所以这个规则配置一定要当心.当audit日志写满后,可以看到如下场景: -r-------- 1 root root 8388609 Mar 3 ...
- ORACLE AUDIT 审计
转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...
- Oracle Audit 审计功能的认识与使用
1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...
- MySQL审计工具Audit Plugin安装使用
本实验的审计插件均是安装在 mysql-community-server-5.7.9 的服务器上. 插件安装(社区版) 插件下载地址: https://bintray.com/mcafee/mysql ...
- Oracle11g温习-第十九章:审计(audit)
2013年4月27日 星期六 10:52 1.审计的功能:监控用户在database 的 action (操作) 2.审计分类 1) session :在同一个session,相同的语句只产生一个审计 ...
- Linux selinux 规则导致audit拒绝
Linux selinux 规则导致audit拒绝 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-09-26. 查看 audit2why -d audit2allow 这两个命令. ...
- SQL Server 审计(Audit)
审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审 ...
- Linux下memcached安装和启动方法
Linux下memcached安装和启动方法 1. 首先下载memcached 和 libevent 包. Memcached用到了libevent这个库用于Socket的处理.下面是下载的两个包文件 ...
随机推荐
- spool
一.常用设置 set lin 1000 --一行可容纳字符数{80|n};输出大于设置值,则折行显示set wrap on --输出行长度大于设置长度时(set lin n设置);值为on,多余字符另 ...
- Spring Security(十二):5. Java Configuration
General support for Java Configuration was added to Spring Framework in Spring 3.1. Since Spring Sec ...
- Python排序算法——选择排序
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10787340.html 一.选择排序(Sele ...
- JVM源码分析--ClassLoader类加载器
本人原创,转载请注明出处:https://www.cnblogs.com/javallh/p/10224187.html 1.JDK已有类加载器: BootStrap ClassLoader (启动类 ...
- Java技术——Java中的static关键字解析
)非静态内部类能够访问外部类的静态和非静态成员,显然一个非静态内部类不能脱离外部类实体被创建,而静态类不能访问外部类的非静态成员,它只能访问外部类的静态成员.这一点和上面static方法的性质类似. ...
- [Spark][kafka]kafka 的topic 创建和删除试验
kafka 的topic 创建和删除试验 zookeeper和kafka 的安装,参考: http://www.cnblogs.com/caoguo/p/5958608.html 参考上述URL后,在 ...
- 【精编重制版】JavaWeb 入门级项目实战 -- 文章发布系统 (第二节)
说明 本教程是,原文章发布系统教程的精编重制版,会包含每一节的源码,以及修正之前的一些错误.因为之前的教程只做到了评论模块,很多地方还不完美,因此重制版会修复之前的一些谬误和阐述不清的地方,而且,后期 ...
- Spark性能优化指南——高级篇(转载)
前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为<Spark性能优化指南>的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问 ...
- 序列化与ArrayList 的elementData的修饰关键字transient
transient用来表示一个域不是该对象序行化的一部分,当一个对象被序行化的时候,transient修饰的变量不会被序列化 ArrayList的动态数组elementData被transient ...
- 解析vue2.0的diff算法 虚拟DOM介绍
react虚拟dom:依据diff算法台 前端:更新状态.更新视图:所以前端页面的性能问题主要是由Dom操作引起的,解放Dom操作复杂性 刻不容缓 因为:Dom渲染慢,而JS解析编译相对非常非常非常快 ...