SELinux是一种强制访问控制(MAC)机制,它是Linux系统安全性的重要组成部分。配置SELinux需要编辑/etc/selinux/config
文件,下面是SELinux配置文件的完整攻略分为以下几个部分:
配置文件基本结构
/etc/selinux/config
文件的基本结构如下:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
该文件有两个配置项SELINUX
和SELINUXTYPE
,它们分别控制SELinux的状态和策略类型。SELINUX
有三个可选值,分别是enforcing
表示强制执行SELinux策略、permissive
表示仅记录违规行为而不会阻止其执行、disabled
表示禁用SELinux。SELINUXTYPE
有两个可选值,分别是targeted
表示针对特定进程的策略和mls
表示多级安全保护策略。
设置SELinux启动方式
通常SELINUX
配置项设置为enforcing
,表示启用强制执行SELinux策略。修改SELINUX
配置项的值需要重启系统才能生效。如果想要立即禁用SELinux,可以将SELINUX
配置项设置为disabled
。
启用或禁用扩展安全权限(SEEP)
SELinux提供了扩展安全权限(SEEP),也称为安全上下文权限,可以工作在当前用户态应用程序和内核态之间。可以通过修改SEEP
配置项的值来启用或禁用SEEP功能。可以将SEEP
配置项设置为1
来启用SEEP,设置为0
来禁用SEEP。
配置SELinux策略类型
SELINUXTYPE
配置项用于指定SELinux策略的类型,可以设置为targeted
或mls
。targeted
策略是最常见的,用于保护特定进程和服务,是默认选项。mls
策略用于多级安全保护,可以提供更高级别的安全保护,但在使用时需要特殊设置。
修改selinux用户及角色定义
SELinux提供了用户和角色机制,可以为系统中的实体分配访问权限。用户通常是系统中的特定进程或服务,而角色是更抽象的概念,需要根据具体情况进行设置。可以通过修改以下配置项定义SELinux用户和角色:
SELINUXTYPE=targeted
SETLOCALDEFS=0
配置SELinux标记和booleans(布尔状态)
SELinux可以为文件和进程打上安全标记,以确保它们符合SELinux的策略要求。可以通过以下配置项设置SELinux标记:
# This file defines the mapping for SELinux port to Linux port.
# Ports are used by IANA-registered services.
seport=0
此外,还可以通过/usr/sbin/sestatus
命令或/usr/sbin/getsebool
命令来查看或设置SELinux布尔状态。例如,使用以下命令来查看当前SELinux是否启用FTP服务:
getsebool -a | grep ftp
配置SELinux日志记录
SELinux会将访问请求记录到系统日志中,便于后续审核和排查问题。可以通过以下配置项设置SELinux日志记录方式:
logdir=/
# Sets the memory and disk space limits for the audit daemon.
# If auditd crashes, the limit values will be used to aid in restart.
max_log_file=5
max_log_file_action=ROTATE
其中,logdir
配置项用于指定SELinux日志文件的存放路径,max_log_file
和max_log_file_action
配置项用于设置SELinux日志文件的大小和滚动策略。
示例
下面是一个SELinux配置文件的示例:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0
# SEEP enables Discretionary Access Control (DAC) overrides
# to provide user-space applications with additional flexibility.
SEEP=1
# This file defines the mapping for SELinux port to Linux port.
# Ports are used by IANA-registered services.
seport=0
# SELinux boolean values
FTPD_ENABLE_HOME_DIR=1
FTPD_FULL_ACCESS=0
# Do not audit the passwd command
passwd_no_audit=1
# SELinux logging options
logdir=/
max_log_file=5
max_log_file_action=ROTATE
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SELinux配置文件(/etc/selinux/config) - Python技术站