SLES 15 SP4

您所在的位置:网站首页 配置文件包含策略 SLES 15 SP4

SLES 15 SP4

2024-07-16 14:39| 来源: 网络整理| 查看: 265

40.8 查错 # 

默认情况下,如果 SELinux 是导致出错的原因,系统会将与此结果相关的日志消息发送到 /var/log/audit/audit.log 文件。这涉及到 auditd 服务是否正在运行。如果您发现 /var/log/audit 是空的,请使用以下命令启动 auditd 服务

> sudo systemctl start auditd

并使用以下命令在系统目标中启用它

> sudo systemctl enable auditd

例 40.8: “/etc/audit/audit.log 中的示例行”中提供了 /var/log/audit/audit.log 的部分示例内容

例 40.8︰ /etc/audit/audit.log 中的示例行 # type=DAEMON_START msg=audit(1348173810.874:6248): auditd start, ver=1.7.7 format=raw kernel=3.0.13-0.27-default auid=0 pid=4235 subj=system_u:system_r:auditd_t res=success type=AVC msg=audit(1348173901.081:292): avc: denied { write } for pid=3426 comm="smartd" name="smartmontools" dev=sda6 ino=581743 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=dir type=AVC msg=audit(1348173901.081:293): avc: denied { remove_name } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state~" dev=sda6 ino=582390 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=dir type=AVC msg=audit(1348173901.081:294): avc: denied { unlink } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state~" dev=sda6 ino=582390 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=file type=AVC msg=audit(1348173901.081:295): avc: denied { rename } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state" dev=sda6 ino=582373 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=file type=AVC msg=audit(1348173901.081:296): avc: denied { add_name } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state~" scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=dir type=AVC msg=audit(1348173901.081:297): avc: denied { create } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state" scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=file type=AVC msg=audit(1348173901.081:298): avc: denied { write open } for pid=3426 comm="smartd" name="smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state" dev=sda6 ino=582390 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=file type=AVC msg=audit(1348173901.081:299): avc: denied { getattr } for pid=3426 comm="smartd" path="/var/lib/smartmontools/smartd.WDC_WD2500BEKT_75PVMT0-WD_WXC1A21E0454.ata.state" dev=sda6 ino=582390 scontext=system_u:system_r:fsdaemon_t tcontext=system_u:object_r:var_lib_t tclass=file type=AVC msg=audit(1348173901.309:300): avc: denied { append } for pid=1316

乍看之下,audit.log 中的行读起来有点困难。但如果仔细分析,就会发现它们不是那么难以理解。每一行都可细分为不同的部分。例如,最后一行包含以下部分:

type=AVC:

每个 SELinux 相关审计日志行都以类型标识 type=AVC 开头

msg=audit(1348173901.309:300):

这是时戳,遗憾的是,它是以纪元时间(自 1970 年 1 月 1 日开始经过的秒数)写入的。您可以针对纪元时间表示法中点号前面的部分使用 date -d,以确定该事件是何时发生的:

> date -d @1348173901 Thu Sep 20 16:45:01 EDT 2012avc: denied { append }:

已被拒绝的特定操作。在本例中,系统已拒绝将数据追加到文件。在浏览审计日志文件时,您可以看到其他系统操作,例如 write open、getattr 等等。

for pid=1316:

发起操作的命令或进程的进程 ID

comm="rsyslogd":

与该 PID 关联的特定命令

name="smartmontools":

操作主体的名称

dev=sda6 ino=582296:

相关文件的块设备和 inode 编号

scontext=system_u:system_r:syslogd_t:

源环境,即操作发起者的环境

tclass=file:

主体的类标识

您可以采用另一种方法来取代在 audit.log 中自行截获事件的做法。您可以使用 audit2allow 命令,它会帮助分析 /var/log/audit/audit.log 中晦涩难懂的日志消息。audit2allow 查错会话一律由三个不同的命令组成。首先,您会使用 audit2allow -w -a 以更易于理解的方式显示审计信息。audit2allow -w -a 默认对 audit.log 文件运行。如果您要分析 audit.log 文件中的特定消息,请将此消息复制到临时文件,然后使用以下命令分析该临时文件:

> sudo audit2allow -w -i FILENAME例 40.9︰ 分析审计消息 # > sudo audit2allow -w -i testfile type=AVC msg=audit(1348173901.309:300): avc: denied { append } for pid=1316 comm="rsyslogd" name="acpid" dev=sda6 ino=582296 scontext=system_u:system_r:syslogd_t tcontext=system_u:object_r:apmd_log_t tclass=file发生此问题的原因是:

缺少类型强制 (TE) 允许规则。

要生成可装载的模块以允许这种访问,请运行

> sudo audit2allow

要确定具体哪条规则拒绝了访问,您可以使用 audit2allow -a 显示已记录到 audit.log 文件的所有事件中的强制规则,或使用 audit2allow -i FILENAME 显示应用于您储存在特定文件中的消息的规则:

例 40.10︰ 查看哪些行拒绝了访问 # > sudo audit2allow -i testfile #============= syslogd_t ============== allow syslogd_t apmd_log_t:file append;

要创建您可以装载以允许先前被拒绝的访问的 SELinux 模块 mymodule,请运行

> sudo audit2allow -a -R -M mymodule

如果您要对已记录到 audit.log 的所有事件执行此操作,请使用 -a -M 命令参数。要仅针对特定文件中的特定消息执行此操作,请按下面的示例所示使用 -i -M:

例 40.11︰ 创建允许先前被拒绝的操作的策略模块 # > sudo audit2allow -i testfile -M example ******************** IMPORTANT *********************** To make this policy package active, execute: semodule -i example.pp

如 audit2allow 命令所示,您现在可按以下方式运行此模块:使用 semodule -i 命令,后接 audit2allow 为您创建的模块的名称(在上例中为 example.pp)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3