SELinux

本文深入介绍SELinux(Security-Enhanced Linux),这是一种由美国国家安全局开发的强制访问控制系统,旨在增强Linux系统的安全性。SELinux通过控制进程对文件的访问权限,防止未授权访问,是Linux系统中重要的安全组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELinux简介

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的 实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的 任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。 [1] 

大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、DebianCentos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。


seLinux内核级加强型火墙作用:

1.每个文件有一个标签CONTEXT(安全上下文),一个文件的安全上下文和程序的安全上下文匹配时,访问时被允许的,否则访问失败(这个程序可以看什么类型的文件)  
 2.默认情况下,ftp一些功能开启,给程序加了sebool开关,可以控制服务功能的开启和关闭
 
命令:

 setenforce 0  #设置selinux为警告
 setenforce 1  #设置selinux为强制
 getenforce    #查看selinux的状态


 注意:
          seLinux的配置文件为/etc/sysconfig/selinux,更改selinux的状态后要reboot重启,否则不会生效
          enforcing 和 permissing都是开启,disabled是关闭
          enforcing(强制)  访问被拒绝,也会产生警告信息,查看/var/log/messages
          permissing(警告) 访问不被拒绝,但是会产生警告信息
 
实验1:将别的目录下的文件移动到/var/ftp目录下,在disable的状态下可以看到文件,但是在enforcing下不能看见文件

在selinux=disabled时,可以看见文件hellofile2


 
 

在selinux=enforcing时,不能看见hellofile2文件

安全上下文不一致

 

怎么处理SELinux中出现的问题

在enforcing状态下会有安全上下文显示,但是在disabled状态下没有安全上下显示

ls -Z  查看文件的安全上下文


 

临时更改安全上下文

chcon  -t   public_content_t     /mnt/   -R   

注意:将/etc/sysconfig/selinux更改为disabled,重启,再改为enforcing,设置消失
 

永久更改安全上下文

semanage fcontext -a -t public_content_t '/mnt(/.*)?'


 在selinux=enforcing状态下如何上传??

第一步:在/etc/vsftpd/vsftpd.conf文件中设定

anon_upload_enable=YES

第二步:更改权限

chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

此时在disable或者permissing情况下可以上传
更改为enforcing,不能上传,这就需要执行接下来的一步

第三步:设定匿名用户可以上传

setsebool ftp_home_dir on   #本地用户可以上传 
setsebool ftpd_anon_write   #匿名可以上传

 

第四步:再一次更改/var/ftp/pub的权限

chcon -t public_content_rw_t    /var/ftp/pub

注意:如果不添加这一条命令,则会出现553的错误
 

 

在客户端测试:可以在/var/ftp目录下上传文件
 
 
 

setroubleshoot软件

作用:做selinux排错
/var/log/audit/audit.log中是selinux的日志
软件分析报错日志,生成解决方案/var/log/messages中会有解决方法


 
 
 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值