Linux下SElinux的解决方案

一、Selinux的功能及其对系统的影响:

1、Selinux的概念及模式:

       Selinux,内核级加强型防火墙。它是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统。对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统。

       Selinux三个模式:

       1> Enforcing 强制(强制模式)— SELinux 策略强制执行,基于 SELinux 策略规则授予或拒绝主体对目标的访问;
       2> Permissive 宽容(警告模式)— SELinux 策略不强制执行,不实际拒绝访问,但会有拒绝信息写入日志;
       3> Disabled 禁用(关闭模式)— 完全禁用SELinux;


2、Selinux级别的管理:

    
       在配置文件"/etc/sysconfig/selinux"下将"SELINUX=enforcing"改为"SELINUX=disabled",因为SElinux是基于内核的安全系统,所以在设置完成之后需要用命令 reboot 重启内核,即需要重启电脑才可以生效。
         用命令 vim /etc/sysconfig/selinux 打开编辑文件:

selinux=disabled      关闭状态
selinux=Enforcing强制状态
selinux=Permissive警告状态

3、Selinux的功能及其对系统的影响:

       举例说明:比如在做ftp服务时,我将selinux设置为关闭状态,ftp服务的功能可以正常使用,但我现在将selinux设置为开启状态,ftp的一些服务就不能正常使用了。


4、显示及更改Selinux模式:

1> 用命令 vim /etc/sysconfig/selinux  可编辑selinux配置文件;
2>用命令 getenforce 查看selinux状态;
3>用命令 setenforce  加 0 或1 来 改变selinux的状态 ,0 表示 Permissive, 1表示Enforcing。
       注意:命令方式只能使selinux在警告状态和强制状态中切换,设置selinunx开启到关闭或关闭到开启,必须用更改配置文件的方式。


5、Selinux中对文件安全上下文的设定:

1>用命令 ls -Zd /dir 显示指定目录安全上下文 ,其中 “Z”表示显示Selinux 上下文;
2>临时更改:
       用命令 chcon -t  加安全上下文文件可临时更改文件安全上下文,例如用命令 chcon -t public_content_t /westos/ -R 可临时更改westos安全上下文为public_content_t,其中 -R 表示递归。

       注意:/var/ftp/… 这个目录里面的文件,安全上下文是固定的,而其他目录中的文件安全上下文不是固定的,所以更改是临时的,在更改状态并重启后设定会还原。

3>永久更改:
1>>用命令 semanage fcontext -l 查看安全上下文文件目录;
2>>用命令 semanage fcontext -a -t public_content_t '/westos(/.*)?' 设定westos目录下的文件安全上下文为public_content_t;其中(/.*)表示目录本身和里面的所有内容。
3>>用命令 semanage fcontext -l | grep westos 查看目录中westos安全上下文;
4>>用命令 restorecon -RvvF /westos/  进行刷新;

5>>用命令 ls -Zd /westos 进行查看,此时安全上下文被固定为 public content t:s。


6、管理Selinux布尔值bool:

1>sebool值是控制服务功能的开关;

2>用命令 getsebool -a | grep 后加服务名称来查看指定服务布尔值;例如用命令 getsebool -a | grep ftp 来查看ftp服务布尔值;
3>用命令 setsebool -P 服务名称 on|off  来打开或者关闭某个具体的服务,在这里on=1表示开启,off=0表示关闭;
4>用命令 setsebool -P ftpd_anon_write on  来打开匿名用户上传功能;但此时仍不能完成写功能,需要输入命令 semanage fcontext -a -t public_content_rw_t  "/var/ftp/pub(/.*)?"来增加 /var/ftp/pub下上下文的写权限,用命令 restorecon -RvvF /进行刷新,此时,就可以完成写功能。

测试1:
在设置bool值之前使用本地用户无法上传文件,设置后可以上传,同时bool值是selinux给系统附加的一个开关,要实现功能必须保证功能本身是开启的,再设定bool值,功能才能正常使用;

测试2:
在设置bool值之前使用匿名用户无法上传文件,设置后发现也不能上传,此时我们就需要用到安全上下文中的内容,去更改pub目录的安全上下文,更改后才可以正常上传。


7、Selinux的排错:


1>软件安装:
       用命令 yum install setroubleshoot-server -y   安装此软件,这个软件会提供解决策略;
       用命令 cat /var/log/messages  查看日志(日志中有解决策略);
2>工作原理:
setroubleshoot-server 侦听 /var/log/audit/audit.log 中的审核信息并将简短摘要发送至 /var/log/messages
/var/log/audit/audit.log 用于在该文件中生成所有事件的报告

3>测试:
用命令 touch /mnt/file 创建 /mnt/ 目录下的 file 文件;
用命令 mv /mnt/file   /var/ftp/pub 移动 /mnt/file 到 /var/ftp/pub;
用命令 > /var/log/audit/audit.log 清空该日志文件中的内容;
用命令 > /var/log/messages 清空该日志文件中的内容;
用命令 lftp ip 查看pub目录下的文件没有看到file;
用命令cat /var/log/audit/audit.log 可以看到查看mnt被拒绝的记录;
用命令 cat /var/log/messages 可以看到解决策略;
然后,执行 restorecon -v ‘/pub/file’。

4>解决:

用命令 restorecon -v /var/ftp/pub/file来解决此类问题,此时,再进入lftp就可以看到file。

注意:必须安装 setroubleshoot-server 软件包 , 才能将SELinux消息发送至 /var/log/messages


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值