9.10. 使用 SELinux 策略
SELinux 是强制访问控制规则的集合,用于限制未经授权的访问和篡改。SELinux 对服务器上的文件、目录、端口、进程、用户和其他对象进行分类。每个对象放置在适当的安全上下文中,以定义对象如何通过角色、用户和安全级别在服务器的行为中。这些角色在域中分组,SELinux 规则定义如何允许一个域中的对象与另一个域中的对象交互。
目录服务器有以下域:
- Directory 服务器的 dirsrv_t
- SNMP 的 dirsrv_snmp_t
目录服务器还使用一个额外的默认域用于 LDAP 端口: ldap_port_t
图 9.4. 编辑目录服务器文件标签
这些域为 Directory 服务器的所有进程、文件、目录、端口、套接字和用户提供安全上下文。
- 每个实例的文件和目录都带有特定的 SELinux 上下文。( Directory Server 使用的大多数主要目录具有所有本地实例的子目录,无论多少次,一个策略都轻松应用到新实例。)
- 每个实例的端口使用特定的 SELinux 上下文标记。
- 所有目录服务器进程都在适当的域中进行限制。
- 每个域具有特定的规则,它们定义域授权了哪些操作。
- SELinux 策略中没有指定的访问权限将拒绝实例。
SELinux 有三个不同的执行级别:禁用(没有 SELinux)、permissive(规则会被处理但不强制这些规则)和 enforcing(所有规则都强制)。Red Hat Directory Server 定义了 SELinux 策略,允许它在严格的 SELinux enforcing 模式下以正常方式运行。目录服务器可以在不同的模式下运行,一个用于正常操作,一个用于导入等数据库操作(ldif2db 模式)。Directory 服务器的 SELinux 策略仅适用于正常模式。
默认情况下,Directory 服务器会受 SELinux 策略限制。