setroubleshoot --> 错误讯息写入 /var/log/messages
几乎所有 SELinux 相关的程序都会以 se 为开头,这个服务也是以 se 为开头。troubleshoot是错误克服,因此setroubleshoot要启动。这个服务会将关于 SELinux 的错误讯息与克服方法记录到 /var/log/messages 与/var/log/setroubleshoot/* 里头,所以你一定得要启动这个服务才好。安装需要setroublshoot 与 setroubleshoot-server,用yum自行安装。
此外,原本的 SELinux 信息本来是以两个服务来记录的,分别是 auditd 与setroubleshootd。既然是同样的信息,因此 CentOS 6.x (含 7.x) 以后将两者整合在 auditd当中。所以,并没有 setroubleshootd 的服务存在了,因此,当你安装好了setroubleshoot-server 之后,请记得要重新启动 auditd,否则 setroubleshootd 的功能不会被启动的。
CentOS 7.x 对 setroubleshootd 的运行方式是: (1)先由 auditd 去调用audispd 服务, (2)然后 audispd 服务去启动 sedispatch 程序, (3)sedispatch 再将原本的 auditd 讯息转成 setroubleshootd 的讯息,进一步储存下来的!
16.6 重点回顾
程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘、光盘、软盘、磁带等),为实体文件的型态存在;
程序 (process):程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中, 操作系统并给予这个内存内的单元一个识别码 (PID),可以说,程序就是一个正在运行中的程序。
程序彼此之间是有相关性的,故有父程序与子程序之分。而 Linux 系统所有程序的父程序就是 init 这个 PID 为 1 号的程序。
在 Linux 的程序调用通常称为 fork-and-exec 的流程!程序都会借由父程序以复制(fork) 的方式产生一个一模一样的子程序, 然后被复制出来的子程序再以 exec 的方式来执行实际要进行的程序,最终就成为一个子程序的存在。
常驻在内存当中的程序通常都是负责一些系统所提供的功能以服务使用者各项任务,因此这些常驻程序就会被我们称为:服务 (daemon)。
在工作管理 (job control) 中,可以出现提示字符让你操作的环境就称为前景(foreground),至于其他工作就可以让你放入背景 (background) 去暂停或运行。
与 job control 有关的按键与关键字有: &, [ctrl]-z, jobs, fg, bg, kill %n 等;
程序管理的观察指令有: ps, top, pstree 等等;
程序之间是可以互相控制的,传递的讯息 (signal) 主要通过 kill 这个指令在处理;
程序是有优先顺序的,该项目为 Priority,但 PRI 是核心动态调整的,使用者只能使用nice 值去微调 PRI
nice 的给予可以有: nice, renice, top 等指令;
vmstat 为相当好用的系统资源使用情况观察指令;
SELinux 当初的设计是为了避免使用者资源的误用,而 SELinux 使用的是 MAC 委任式存取设置;
SELinux 的运行中,重点在于主体程序 (Subject) 能否存取目标文件资源 (Object),这中间牵涉到政策 (Policy) 内的规则, 以及实际的安全性本文类别 (type);
安全性本文的一般设置为:“Identify:role:type”其中又以 type 最重要;
SELinux 的模式有: enforcing, permissive, disabled 三种,而启动的政策 (Policy) 主要是 targeted
SELinux 启动与关闭的配置文件在: /etc/selinux/config
SELinux 的启动与观察: getenforce, sestatus 等指令
重设 SELinux 的安全性本文可使用 restorecon 与 chcon
在 SELinux 有启动时,必备的服务至少要启动 auditd 这个!
若要管理默认的 SELinux 布林值,可使用 getsebool, setsebool 来管理!