关于linux下的selinux

1.selinux的概念

  • SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统
  • SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到
  • SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念
  • selinux是一种控制服务安全,是内核上面的一个插件,也叫做内核加强型火墙
  • SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统
  • SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念

2.selinux特点

1.MAC:对访问的控制彻底化,对所有的文件、目录、端口的访问都是基于策略设定的,可由管理员时行设定

2.RBAC:对于用户只赋予最小权限。用户被划分成了一些role(角色),即使是root用户,如果不具有sysadm_r角色的话,也不是执行相关的管理。哪里role可以执行哪些domain,也是可以修改的

3.安全上下文:所有的操作系统访问控制都是主体和客体的相关访问控制属性,在SELINUX,访问控制属性称为安全上下文,安全上下文是一个简单的、一致的访问控制属性,所有客体(文件,进程间通信,通信管道,套接字,网络主机等)和主体(进程)有一个和客体和他们相关的单一安全上下文,一个进程的类型通常称为域,域和域类型都一样,即都是安全上下文的’TYPE’,一个安全上下文是由角色,用户和类型标识符

3.查看、更改seliunx状态

  • getenforce ###查看SELinux当前状态
enforceing表示强制
permissive表示警告
disabled表示关闭
  • 如果是Enforcing和Permissive模式之间的转化,利用命令即可生效:setenforce 0 (宽容模式)| 1 (强制模式)
    在这里插入图片描述
  • 而这两种模式想切换到disbaled,需在文件vim /etc/sysconfig/selinux 中修改:SELINUX=disabled且修改后重启才能生效。

4.对安全上下文的修改

1.当selinux开启时,每个程序每个文件都有特定的安全上下文。特定安全上下文的程序只能访问特定安全上下文的文件。如果我们可以改变安全上下文,使得程序可以访问目标文件。
在这里插入图片描述
在这里插入图片描述

2.解决方法一:临时修改安全上下文

  • chcon -t public_content_t 文件 #将复制进去的文件的标签改成与发布目录一致的就可以了

  • 但是chcon这个更改标签的方式是临时的,selinux重启之后就不会再生效

  • selinux这个插件被禁用又被启用
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3.解决方法二:永久修改安全上下文

  • mkdir /westos #创建新目录

  • touch /westos/file{1,2} #创建新目录下的文件

  • semanage fcontext -l |grep /var/ftp #查看有关/var/ftp的安全上下文

  • semanage fcontext -a -t public_content_t '/westos(/.*)?' #将目录里的所有文件修改为指定的安全上下文

  • restorecon -RvvF /westos #重新加载目录文件的安全上下文
    在这里插入图片描述
    在这里插入图片描述

5.修改程序的bool值

  • chcon -t public_content _rw_t /var/ftp/pub/ #让匿名用户具有读写这个目录的权力(必须设置)

  • getsebool -a | grep ftp #查看ftp匿名用户能干的事情的状态为off还是on
    在这里插入图片描述

  • setsebool -P ftpd_anon_write on #永久设置让匿名用户可以上传

  • vim /etc/vsftpd/vsftpd.conf #编辑配置文件设置匿名用户可以上传

  • systemctl restart vsftpd ##重启服务

  • chgrp ftp /var/ftp/pub/

  • chmod 775 /var/ftp/pub/
    在这里插入图片描述

  • setsebool -P ftp_home_dir on #将本地用户的家目录永久开启
    在这里插入图片描述

  • 注意:
    0=off 1=on
    要注意vsftpd版本与主机版本是否一致的问题
    之前上传文件需要在disable状态下设置配置文件等等一些操作,现在直接在enforceing状态下设置也可以上传文件

6.报错及解决方法

/var/log/messages 为系统日志,提供一些解决方案 ,需要安装服务才能提供解决方案
/var/audit/audit.log 为selinux真正的日志,不提供解决方案
yum search selinux 
yum install setroubleshoot-server.x86_64 -y

1.有setroubleshoot这个软件服务的情况下:

cd /mnt/
touch /mnt/westosfile
mv /mnt/westosfile /var/ftp/
> /var/log/messages
  • 在客户端lftp 172.25.254.111查看:并没有复制过来的文件
    在这里插入图片描述
cat /var/log/messages  #可以看到日志提供的解决办法 然后就能看到mv过去的了
restorecon -vR /var/ftp/   #刷新(-v不行)利用这个更改标签
ls -Z /var/ftp/   #查看标签是否一致(只有标签一致的时候才能看见复制过去的文件)

在这里插入图片描述

  • 在客户端lftp 172.25.254.111查看:出现复制过来的文件
    在这里插入图片描述

2.没有setroubleshoot 时日志不提供解决办法:

yum search selinux
yum -qa | grep setroubleshoot
yum remove setroubleshoot-server.x86_64  -y
将上述步骤重新使用一遍,就看不到messages日志提供的解决办法
再次安装软件
yum install setroubleshoot-server.x86_64  -y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值