首页 > 系统相关 >Linux服务器开启审计

Linux服务器开启审计

时间:2024-09-07 17:23:03浏览次数:6  
标签:audit 审计 log 开启 设置 Linux action 服务器 日志

  1. Linux审计说明
Linux 用户空间审计系统由 auditd、audispd、auditctl、autrace、ausearch 和 aureport 等应用程序组成。下面依次说明:

auditctl : 即时控制审计守护进程的行为的工具,如添加规则等。
auditd :audit 守护进程负责把内核产生的信息写入到硬盘上,这些信息由应用程序和系统活动触发产生。用户空间审计系统通过 auditd 后台进程接收内核审计系统传送来的审计信息,将信息写入到 /var/log/audit/audit.log。
aureport : 查看和生成审计报告的工具。
ausearch : 查找审计事件的工具
auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
autrace : 一个用于跟踪进程的命令。类似于 strace,跟踪某一个进程,并将跟踪的结果写入日志文件之中。
  1. 安装审计
yum -y install audit
  1. 编辑审计配置文件
	1) etc/audit/auditd.conf 是守护程序的默认配置文件
	local_events = yes
	write_logs = yes
	log_file = /var/log/audit/audit.log   #审计日志的位置
	log_group = root
	log_format = ENRICHED   #审计日志格式,当设置为RAW时,数据会以从内核中检索到的格式写到日志文件中。当设置为NOLOG时,数据不会写到日志文件中,但是如果用dispatcher选项指定了一个,则数据仍然会发送到审计事件调度程序中。
	
	flush = INCREMENTAL_ASYNC   #多长时间向日志文件中写一次数据。值可以是NONE、INCREMENTAL、DATA和SYNC之一。如果设置为NONE,则不需要做特殊努力来将数据 刷新到日志文件中。如果设置为INCREMENTAL,则用freq选项的值确定多长时间发生一次向磁盘的刷新。如果设置为DATA,则审计数据和日志文件一直是同步的。如果设置为SYNC,则每次写到日志文件时,数据和元数据是同步的。
	
	freq = 50  #如果flush设置为INCREMETNAL,审计守护进程在写到日志文件中前从内核中接收的记录数。
	max_log_file = 8 #设置日志文件大小,以兆字节表示的最大日志文件容量。当达到这个容量时,会执行 max_log_file_action 指定的动作
	
	num_logs = 5  #设置日志文件轮询的数目,它是 0~99 之间的数。如果设置为小于 2,则不会循环日志。如果没有设置 num_logs 值,它就默认为 0,意味着从来不循环日志文件 
	
	priority_boost = 4    #审计应采用多少优先级推进守护进程。必须是非负数。0表示没有变化。
	name_format = NONE
	##name = mydomain
	max_log_file_action = ROTATE  #日志达到指定的max_log_file大小之后开始轮转
	space_left = 75  #以兆字节表示的磁盘空间数量。当达到这个水平时,会采取space_left_action参数中的动作。
	
	space_left_action = SYSLOG   #当磁盘空间量达到space_left中的值时,采取这个动作。有效值为IGNORE、SYSLOG、EMAIL、SUSPEND、SINGLE和 HALT。如果设置为IGNORE,则不采取动作。如果设置为SYSLOG,则向系统日志/var/log/messages写一条警告消息。如果设置为 EMAIL,则从action_mail_acct向这个地址发送一封电子邮件,并向/var/log/messages中写一条警告消息。如果设置为 SUSPEND,则不再向审计日志文件中写警告消息。如果设置为SINGLE,则系统将在单用户模式下。如果设置为HALT,则系统会关闭。
	
	verify_email = yes
	
	action_mail_acct = root   #负责维护审计守护进程和日志的管理员的电子邮件地址。如果地址没有主机名,则假定主机名为本地地址,比如root。必须安装sendmail并配置为向指定电子邮件地址发送电子邮件。
	
	admin_space_left = 50  #以兆字节表示的磁盘空间数量。用这个选项设置比space_left_action更多的主动性动作,以防万一space_left_action没有让 管理员释放任何磁盘空间。这个值应小于space_left_action。如果达到这个水平,则会采取admin_space_left_ action所指定的动作。
	
	admin_space_left_action = SUSPEND  #当自由磁盘空间量达到admin_space_left指定的值时,则采取动作。有效值为IGNORE、SYSLOG、EMAIL、SUSPEND、SINGLE和HALT。与这些值关联的动作与space_left_action中的相同。
	
	disk_full_action = SUSPEND   #如果含有这个审计文件的分区已满,则采取这个动作。可能值为IGNORE、SYSLOG、SUSPEND、SINGLE和HALT。与这些值关联的动作与space_left _action中的相同
	
	disk_error_action = SUSPEND   #如果在写审计日志或循环日志文件时检测到错误时采取的动作。值必须是IGNORE、SYSLOG、SUSPEND、SINGLE和HALT之一。与这些值关的动作与space_left_action中的相同。
	
	use_libwrap = yes
	##tcp_listen_port = 60   #审计服务的监听端口,作为审计服务器使用的时候可以开启
	tcp_listen_queue = 5
	tcp_max_per_addr = 1
	##tcp_client_ports = 1024-65535
	tcp_client_max_idle = 0
	transport = TCP
	krb5_principal = auditd
	##krb5_key_file = /etc/audit/audit.key
	distribute_network = no
	q_depth = 1200
	overflow_action = SYSLOG
	max_restarts = 10
	plugin_dir = /etc/audit/plugins.d
	end_of_event_timeout = 2
	2) /etc/audit/audit.rules 是记录审计规则的文件。首次安装 audit 后, 审计规则文件是空的
	3) /etc/audit/audit.rules     # 根据/etc/audit/rules.d/audit.rules自动生成
  1. 审计服务
systemctl status auditd.service
  1. 审计日志
/var/log/audit/audit.log
  1. 审计规则
vi /etc/audit/rules.d/audit.rules

	1) audit 审计规则分成三个部分:
		a. 控制规则:这些规则用于更改审计系统本身的配置和设置。
		b. 文件系统规则:这些是文件或目录监视。 使用这些规则,我们可以审核对特定文件或目录的任何类型的访问。
		c. 系统调用规则:这些规则用于监视由任何进程或特定用户进行的系统调用。
	2) 控制规则
	控制规则可以在/etc/audit/audit.rules 中设置。主要包括:
	
	-D #删除所有当前装载的审核规则#
	-b 8192 #在内核中设定最大数量的已存在的审核缓冲区为8Mb
	-e 2 #设置使能标志,设置为0,为关闭了audit,设置为1,则开启audit;当设置为2时,表示锁定,一般在设置完其他规则后最后设置,防止其他人修改规则;任何修改规则的行为都会被拒绝,并且记录审计日志,只有当重启系统后,这个使能标志才可以被修改
	-f 1 #这个选项来决定内核如何处理critical erros:0=silent 1=print  2=panic.默认值为1。设置failure mode to syslog
	
  3) 文件系统规则
	可以通过 auditctl 命令设置。监控文件系统行为(依靠文件、目录的权限属性来识别)
	
	auditctl -w path -p permissions -k key_name
	-w : 目录或者文件路径
	-p: 描述文件系统监视将触发的权限访问类型,r=读取,w=写入,x=执行,a=属性更改。
	-k:  设置审核规则的筛选关键字
	
	要监控/etc/passwd 文件的修改行为,可以使用这个命令: 
	#auditctl -w /etc/passwd -p wa
	
	审核规则记录了每次读取或者修改/etc/hosts 文件的尝试
	#auditctl -w /etc/hosts -p wa -k hosts_change
	
  4) 系统调用规则
	监控系统调用可能会引起高负荷的日志活动,这会让内核承受更大的负荷。所以要慎重衡量哪些系统调用需要放到 audit.rules 中。如果审计的是目录的话,只能对该目录本身的属性进行审计。如果想审计下面的文件,需要一一列出。
	auditctl -a [list,action|action,list] -S [Syscall name or number|all] -F field=value -k key_name
	-a: action和list 明确一个事件被记录。action可以为always或者never,list明确出对应的匹配过滤,list可以为:task,exit,user,exclude,filesystem。
	-S: system_call 明确出系统调用的名字,几个系统调用可以写在一个规则里,如-S xxx -S xxx。系统调用的名字可以通过cat /proc/kallsyms | grep sys_  (sys_开头的都表示一个调用)
	-F:  field=value 作为附加选项,修改规则以匹配特定架构、GroupID,ProcessID等的事件。
	

	#示例
	定义记录有哪些文件,特定用户(UID 为 10001)访问和标签的日志条目的规则
	# auditctl -a always,exit -F arch=b64 -F auid=10001 -S open -k userfile 
	说明:userfile 是用户自己设置的一个规则名字,以上的都设置完毕了,就可以生成各种报告了。
  1. 注意事项
通过 auditctl 命令添加的规则不是永久有效的。 为了让他们在重新启动后有效的,可以将其添加到文件/etc/audit/rules.d/audit.rules 中。


标签:audit,审计,log,开启,设置,Linux,action,服务器,日志
From: https://blog.51cto.com/ablewang/11945459

相关文章

  • 服务器虚拟化
    服务器虚拟化是一种逻辑角度出发的资源配置技术,是物理实际的逻辑抽象。对于用户,虚拟化技术实现了软件跟硬件分离,用户不需要考虑后台的具体硬件实现,而只需在虚拟层环境上运行自己的系统和软件。说起服务器虚拟化这个技术,最早在19世纪60年代就提出了,由于当时的机器都是......
  • 服务器宽带速度
    服务器网络速度,简单来说,就是要提高速度!影响网站速度的因素有很多,这里主要针对网络通信方面来介绍,即“带宽”与“延迟”。“网络带宽”和“网络延迟”有时可互换使用,但它们实际上描述了两个独立的概念,那么如何判断服务器的速度呢?为大家来介绍:一、服务器带宽如何影响网络速度?......
  • Linux命令分享 三 (ubuntu 16.04)
    1、‘>’'>>'输出重定向用法:命令参数>文件ls>a.txt‘>’将一个命令的结果不输出到屏幕上,输出到文件中,如果文件不存在就创建文件,如果存在就覆盖文件。ls>>a.txt‘>>’如果文件不存在就创建文件,如果存在就追加在文件后面。2、echo回显字符你在echo后面输入......
  • Linux shell编程学习笔记77:tar命令——快照 & 备份(下)
     0 前言在Linuxshell编程学习笔记76:tar命令——快照&备份(上)中我们研究了 tar命令 的功能、格式、选项说明。现在我们来实践一下。1 应用实例1.1 创建演示文件和目录我们使用echo 命令和输出重定向创建文件f1 和f2,使用mkdir命令创建目录d1[purpleendurer@bash~]e......
  • Linux shell编程学习笔记76:tar命令——快照 & 备份(上)
    0 前言提取系统快照和备份文件都是我们的日常工作。在Windows中,我们可以创建系统还原点,在需要的时候可以把系统还原回去。在Linux中,我们可以使用tar命令来实现。1tar命令的功能,帮助信息,格式,选项和参数说明1.1 tar命令的功能tar名字来自"tapearchive"(磁带归档),最初用于将文件......
  • 嵌入式Linux系统开发学习--Linux系统及其操作部分
    0.前言    由于毕业了工作原因,转行做嵌入式了,现在开始学习嵌入式Linux系统开发,后面也会学习单片机部分的知识,我也会陆续的将我的学习历程发送出来,迟迟不发文就是工作太忙了,现在进了家小企业,我负责的模块公司也没有人会,虽然是开源的,但是网上一堆牛鬼蛇神的资料,让我吃了......
  • Linux日志搜索 grep
    ##--且的关系--##先过滤第一步,然后基于第一步再过滤第二步,且的关系。catmyLogFile.log|grep"6dc7e0a484d5a7cc"|grep"369698634">>myLogFileGps-240816.log##--或的关系--##搜索结果为空catmyLogFile.log|grep"6dc7e0a484d5a7cc|369698634">>my......
  • 服务器环境配置
    写在前面!!!由于一般服务器都是基于Linux系统的,因此本文章都是基于Linux系统进行环境配置的。在此之前,默认你已经拥有了Linux账号。一、安装Pycharm专业版操作步骤1、前往Pycharm官网下载pycharm的Linux版本软件安装包(文件后缀名为.sh),建议选择2022版或更往前的版本。2、进入安装......
  • Linux网络操作的通用接口:Socket是怎么使用的?
    前言如果你在工作学习中经常见到socket相关的字眼,但总是未曾深究过其本质,相信这篇文章能够给你带来一些帮助。网络是计算机体系中绕不开的一环,而socket作为计算机网络体系的重要组成部分,也具备着相当重要的地位。但很多时候,虽然在书本或课堂上了解了TCP、IP等基础网络内容......
  • Proteus 仿真设计:开启电子工程创新之门
    摘要: 本文详细介绍了Proteus仿真软件在电子工程领域的广泛应用。从Proteus的功能特点、安装与使用方法入手,深入探讨了其在电路设计、单片机系统仿真、PCB设计等方面的强大优势。通过具体的案例分析,展示了如何利用Proteus进行高效的电子系统设计与验证。同时,也分析了Pr......