Linux日志
审计程序配置文件详解
/etc/audit/audit.rules
监控文件系统行为(依靠文件、目录的权限属性识别)
-w path-to-file -p permissions -k keyname>
path-to-file
: 文件路径permissions
权限 :r
读取 、w
写入 、x
执行 、a
属性修改keyname
: 关键字
注:如果没有-p
选项,则默认监视所有动作rwxa
例 :
# 监控 `passwd` 文件的修改行为(写入、属性修改)
-w /etc/passwd -p wa
监控系统调用行为(依靠系统调用来识别)
-a list,action -S syscall -F field=value -k keyname
list
: 列表task
: 监控每个系统调用任务的行为entry
: 监控系统调用的启动行为exit
: 监控系统调用的结束行为user
: 过滤仅将用户信息(uid
、auid
、gid
、pid
)传递给审计进程exclude
: 匹配事件类型,将其排除,通过msgtype
字段过滤不想看到的事件
action
: 行为never
: 不产生审计记录always
: 总是记录系统调用事件的启动和结束
syscall
: 根据名称或编号指定系统调用,all
表示所有系统调用,可通过auditctl
查看名称,可通过多个-S
指定多个field=value
: 指定规则字段
field
:pid
: 进程 IDppid
: 父进程 IDuid
: 用户 IDeuid
: 有效用户 IDsuid
: 设置用户 IDfsuid
: 文件系统用户 IDgid
: 组 IDegid
: 有效组 IDsgid
:设置组 IDfsgid
: 文件系统组 IDauid
: 用户登录时的初始 ID ,审计 IDarch
: CUP 架构 ,b32
、b64
- .....
- 更多 : auditctl(8) - Linux man page -F
例 :
# 监控主机名变化,修改主机名必须调用 sethostname
-a entry,always -S sethostname -S setdomainname
# 监控挂载
-a entry,always -S mount -S umount
审计策略配置文件详解
配置内容包含 : 选项名、等号、合规的配置值。选项名和配置值不区分大小写。每行应限于160个字符,否则将跳过该行。
local_events
: 是否记录本地事件,默认值 :yes
;设置为no
时,只收集来自网络的事件(通常是审计守护进程是在容器中运行时),该选项只能在守护进程启动时设置,重新加载配置文件无效果。log_file
: 指定日志文件路径。write_logs
: 是否将日志写入日志文件 , 默认值 :yes
。log_format
: 指定日志描述信息。RAW
,审计记录将以完全按照内核发送的格式存储。ENRICHED
: 审计记录将过筛选所有uid
、gid
、syscall
、architecture
和socket
等相关的信息,有助于分析的事件。
log_group
: 指定日志文件权限所属用户组。priority_boost
: 指定审计守护进程的优先级,值为正整数,默认值 4。flush
:none
: 不持续将审计记录写入文件。incremental
: 增量写入,由freq
参数决定写入条数。incremental_async
: 与incremental
相似,只是刷新是异步进行的,以提高性能。data
: 实时同步审计内容到文件。sync
: 每次写入时保持数据的完全同步。
freq
: 在flush
值为incremental
或incremental_async
时有效,该值将指定从缓存中写入日志文件的条数,值为正整数。num_logs
: 指定max_log_file_action
执行rotate
(循环覆盖)时要保留的日志文件的数量,值为 0 - 999。当值为1
和0
时将不执行rotate
。如果配置了日志的rotate
,守护进程将在启动或重新配置时检查多余的日志并将其删除,以确保存储空间的可用性。name_format
: 将指定内容(计算机节点名)插入审计事件流中,默认值:none
。none
: 表示不将计算机名插入到审计事件中。hostname
: 使用gethostname
返回的名称。fqd
: 采用主机名,并用dns
对该机器的完全合格域名进行解析。numeric
: 与fqd
类似,只是它解析的是机器的IP地址(使用hostname -i
或domainname -i
测试获取IP地址),如果使用dhcp
时,不建议使用这个选项,因为其地址可能会随时改变。user
: 采用name
选项的定义的字符串。
name
: 指定自定义的字符串。max_log_file
: 指定最大日志文件大小(以MB为单位),当达到这个限制时,将触发max_log_file_action
配置的动作。max_log_file_action
: 当日志文件达到max_log_file
限制值时,执行的动作。ignore
: 审计守护进程不做任何事情。syslog
: 意味着它将向syslog
发送警告。suspend
: 审计守护进程将停止向日志文件写入 内容,守护进程仍在运行。rotate
: 审计守护进程将循环覆盖日志文件。数字较高的日志比数字较低的日志要老,这与logrotate 工具所使用的惯例相同。keep_logs
: 与rotate
类似,只是它不使用num_logs
的设置,这可以防止审计日志被覆盖,日志只累积而不被删除,如果卷填满,将触发space_left_action
设置的动作。建议与脚本结合使用,定期对日志进行备份和删除。
verify_email
: 配置是否检查action_mail_acct
中给出的邮件地址的域名可不可以被解析,需要在action_mail_acct
之前给出,否则将使用默认值 :yes
。action_mail_acct
: 指定一个有效的邮件地址或别名,默认的地址是 root ,如果邮件地址不是本地地址,必须确保正确配置了邮件,注意:这个选项需要/usr/lib/sendmail
。space_left
: 当文件系统可用空间低于这个值时,审计进程就会执行space_left_action
所指定的动作。 可用值为一个数值(以MB为单位),也可是一个百分比 (%
,审计进程根据文件系统的大小计算其百分比后得到最终值,如文件系统 2GB 的 25% 就是 500 MB)。space_left_action
: 当可用空间达到space_left
设置的值时采取的动作。ignore
: 审计守护进程不做任何操作。syslog
: 仅向 syslog 发出警告。rotate
: 删除最老的日志释放空间。email
: 向action_mail_acct
中指定的邮件地址发送一个警告,同时将消息发送到syslog。exec
: 指定一个执行脚本,不能向脚本传递参数suspend
: 审计进程停止向磁盘写入记录,审计进程仍将运行。single
: 审计进程将系统设为单用户模式。halt
: 审计进程将关闭计算机系统。
admin_space_left
: 当文件系统可用空间低于这个值时,审计进程就会执行admin_space_left_action
所指定的动作,这是在磁盘空间耗尽之前执行动作的最后机会。这个数值应该低于space_left
的数值,可用值为一个数值(以MB为单位),也可是一个百分比 。admin_space_left_action
: 与space_left_action
类似,当检测到磁盘空间不足时,将执行相应的动作。disk_full_action
: 与space_left_action
类似,当检测到写入日志文件的分区已满时,将执行相应的动作。disk_error_action
: 与space_left_action
类似,在写入时检测到错误,将执行相应的动作。tcp_listen_port
: 指定监听一个 TCP 端口,接收来自远程的审计记录,审计进程可以与tcp_wrappers
连接,可通过hosts.allow
和hosts.deny
来控制访问。tcp_listen_queue
: 指定最大连接数。tcp_max_per_addr
: 指定同一 IP 可同时请求的连接数,默认值 1 ,最大 1024。use_libwrap
: 是否使用tcp_wrappers
来辨别被允许的机器的连接尝试,可用值yes
、no
,默认值 :yes
。tcp_client_ports
: 仅接收客户机从指定的一个或一段端口(如 90-120)发送来的日志内容,客户机通过audisp-remote.conf
文件中的local_port
选项配置特权端口。tcp_client_max_idle
: 客户机连接空闲秒数,超过这个时间将自动断开连接。默认值 0 表示不检测。transport
: 默认值是 TCP。TCP
: 使用明文 tcp 连接。KRB5
: 使用 Kerberos 5 认证和加密。
enable_krb5
: 已被启用,设置为yes
,Kerberos 5 将被用于认证和加密,默认是no
。krb5_principal
: 服务负责人, 默认是auditd
。krb5_key_file
: 钥匙的位置,该密钥文件必须由 root 拥有,权限:0400
,默认是/etc/audit/audit.key
。distribute_network
: 设置为yes
,网络事件将被分配到审计调度器进行处理,默认是no
。q_depth
: 指定审计事件分派器队列数,一个更大的队列可以更好地处理大量的事件,但当审计进程被终止时,可能会保留那些没有被处理的事件,如果 syslog 中得到关于事件被丢弃的消息,增加这个值,默认值是1200
。overflow_action
: 指定审计进程在内部队列溢出时应该执行的操作,当这种情况发生时,这意味着收到的事件比处理事件的进程的多,这将失去当前正在试图派发的事件。ignore
: 审计守护进程不做任何操作。syslog
: 仅向 syslog 发出警告。rotate
: 删除最老的日志释放空间。email
: 向action_mail_acct
中指定的邮件地址发送一个警告,同时将消息发送到syslog。exec
: 指定一个执行脚本,不能向脚本传递参数suspend
: 审计进程停止向磁盘写入记录,审计进程仍将运行。single
: 审计进程将系统设为单用户模式。halt
: 审计进程将关闭计算机系统。
max_restarts
: 指定审计进程尝试重新启动崩溃插件的次数,默认值是10
。plugin_dir
: 插件配置文件的位置。end_of_event_timeout
: 事件结束时的超时时间,单位秒。