Make Selinux Enforce Again
- SELinux权限设置
- 查看SELinux权限
SELinux(Security-Enhanced Linux)是一个Linux内核安全模块,它提供了一种强制访问控制(MAC)机制,用于增强Linux系统的安全性。SELinux通过定义安全策略来限制进程、用户和文件系统对象的访问权限,从而防止潜在的安全威胁。
SELinux权限设置
-
启用SELinux
在大多数Linux发行版中,SELinux默认是启用的。你可以通过以下命令检查SELinux的状态:sestatus
如果SELinux是禁用的,你可以通过编辑
/etc/selinux/config
文件并设置SELINUX=enforcing
来启用它。 -
设置SELinux模式
SELinux有三种模式:enforcing
:强制执行安全策略,并拒绝不符合策略的访问。permissive
:不拒绝访问,但会记录不符合策略的访问尝试。disabled
:禁用SELinux。
你可以通过以下命令临时更改SELinux模式:
setenforce 0 # 设置为permissive模式 setenforce 1 # 设置为enforcing模式
-
定义安全策略
SELinux的安全策略通常存储在/etc/selinux/<policy_type>/
目录下。常见的策略类型有targeted
和mls
。你可以通过编辑这些文件来定义和修改安全策略。 -
标签文件系统对象
SELinux通过标签(context)来识别文件系统对象。你可以使用ls -Z
命令查看文件或目录的SELinux上下文:ls -Z /path/to/file
例如,输出可能类似于:
-rw-r--r--. root root unconfined_u:object_r:user_home_t:s0 /home/user/file.txt
-
修改文件或目录的SELinux上下文
你可以使用chcon
命令来修改文件或目录的SELinux上下文:chcon -t httpd_sys_content_t /var/www/html/index.html
这会将
/var/www/html/index.html
文件的上下文更改为httpd_sys_content_t
。 -
持久化SELinux上下文
使用chcon
命令修改的上下文在文件系统重启后会丢失。为了持久化上下文,你可以使用semanage fcontext
命令:semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" restorecon -Rv /var/www/html
这会将
/var/www/html
目录及其子目录和文件的上下文持久化为httpd_sys_content_t
。
查看SELinux权限
-
查看SELinux状态
sestatus
这将显示SELinux的当前状态、模式和策略类型。
-
查看SELinux日志
SELinux的日志通常存储在/var/log/audit/audit.log
文件中。你可以使用grep
命令查找与SELinux相关的日志条目:grep AVC /var/log/audit/audit.log
AVC(Access Vector Cache)日志记录了SELinux拒绝访问的尝试。
-
查看文件或目录的SELinux上下文
ls -Z /path/to/file
-
查看进程的SELinux上下文
ps -eZ
这将显示所有进程的SELinux上下文。
通过以上步骤,你可以设置和查看SELinux的权限,从而增强系统的安全性。