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 keynamelist: 列表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: 事件结束时的超时时间,单位秒。