SELinux(Security-Enhanced Linux)是一种内核安全模块,它可以限制Linux用户的权限,以提供更细粒度的访问控制。以下是使用SELinux限制Linux用户权限的步骤:
首先,确保你的Linux系统已经安装并启用了SELinux。大多数现代Linux发行版默认启用SELinux。
sestatus
你可以将SELinux设置为以下三种模式之一:
设置SELinux模式:
setenforce 1 # 强制模式
setenforce 0 # 宽容模式
SELinux使用策略文件来定义哪些操作是允许的,哪些是被禁止的。你可以通过编辑这些策略文件来限制用户的权限。
cat /etc/selinux/config
通常,策略文件位于 /etc/selinux/ 目录下。你可以使用 audit2allow 工具来生成自定义策略模块。
audit2allow收集SELinux拒绝日志:
ausearch -m avc -ts recent
生成自定义策略模块:
ausearch -m avc -ts recent | audit2allow -M mypol
加载自定义策略模块:
semodule -i mypol.pp
SELinux用户映射允许你将Linux用户映射到SELinux用户,从而限制这些用户的权限。
getenforce
semanage login -l
semanage login -a -s user_u -r user_r -d /home/username username
SELinux文件上下文可以限制用户对文件的访问权限。
ls -Z /path/to/file
chcon user_home_t /path/to/file
SELinux可以限制用户对特定端口的访问。
semanage port -l | grep http_port_t
semanage port -a -t http_port_t -p tcp 8080
定期监控和审计SELinux日志,以确保策略的有效性并及时发现潜在的安全问题。
cat /var/log/audit/audit.log | grep avc
通过以上步骤,你可以有效地使用SELinux来限制Linux用户的权限,提高系统的安全性。