SELinux(Security-Enhanced Linux)是Linux内核中的强制访问控制(MAC)系统,通过限制进程的权限,保护系统的安全性。
主要作用:
- 限制进程的访问权限:在Linux系统中,每个进程需要访问一些资源(如文件、设备等),SELinux可以根据安全策略限制进程对这些资源的访问权限。比如,某个程序只能访问特定的文件或目录。
示例:限制httpd进程只能访问/var/www/html目录下的文件
# 切换到root用户
sudo su
# 创建一个目录httpd_html
mkdir /var/www/html/httpd_html
# 更改httpd_html目录的SELinux上下文
chcon -R -t httpd_sys_content_t /var/www/html/httpd_html
# 修改httpd进程的SELinux上下文,指定只能读取httpd_html目录下的内容
semanage fcontext -a -t httpd_sys_content_t /var/www/html/httpd_html(/.*)?
# 重新载入httpd_html的SELinux上下文
restorecon -Rv /var/www/html/httpd_html
# 重启httpd服务
systemctl restart httpd.service
- 控制用户的访问权限:SELinux可以根据安全策略控制用户对文件、目录等资源的访问权限。比如,某个用户只能读取特定的文件或目录,而不能修改或删除。
示例:控制用户jerry只能访问/home/jerry目录下的文件夹和文件
# 切换到root用户
sudo su
# 创建一个文件夹并赋予jerry用户所有权
mkdir /home/jerry/test && chown jerry:jerry /home/jerry/test
# 更改/home/jerry/test目录的SELinux上下文
chcon -R -t user_home_dir_t /home/jerry/test
# 把jerry用户添加到SELinux中,并指定只能访问/home/jerry/test目录及其下的内容
semanage login -a -s user_u -r s0 -f 'jerry' -P 'unconfined_u:unconfined_r:user_t:s0-s15:c0.c1023'
setsebool -P user_use_full_access off
setsebool -P user_use_homedirs on
# 重新载入所有用户的SELinux上下文
restorecon -Rv /home
# 切换回jerry用户
su jerry
# 验证是否成功
echo 'hello world' > /home/jerry/test/test.txt
echo 'failed' > /home/jerry/test.txt #提示没有权限
- 记录敏感操作日志:SELinux可以记录系统中的敏感操作,如对安全上下文的修改、对受保护文件的访问等,以便进行审计和保护系统安全性。
示例:记录用户jerry尝试访问/var/www/html目录的操作
# 切换到root用户
sudo su
# 开启SELinux的审计功能,记录用户和进程的操作
semodule -i /usr/share/selinux/targeted/auditd.pp
auditctl -w /var/www/html -p r -k httpd_read
ausearch -k httpd_read #查看记录的操作日志
以上是SELinux的主要作用及实例说明,通过配置SELinux,可以更好地保障系统的安全性,控制进程和用户的访问权限,并及时记录敏感操作日志。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SELinux的主要作用 - Python技术站