一、selinux的定义

  • selinux: 一种控制服务安全,是内核上面的一个插件,也叫做内核级加强型火墙,是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统

  • SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到,SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统,对于目前可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的

  • SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念`

  • 对访问的控制彻底化,对于所有的文件,目录,端口这类的资源的访问,都可以是基于策略设定的,这些策略是由管理员定制的

  • 对于进程只赋予最小的权限,对所有的文件都赋予一个叫type的文件类型标签,对于所有的进程也赋予各自的一个叫 domain的 标签。Domain标签能够执行的操作也是由access vector在策略里定好的

二、selinux的状态及其影响

1、selinux的状态

  • selinux的配置文件:/etc/sysconfig/selinux
状态 含义
enforceing 强制
permissive 警告
disabled 关闭
  • 注意:enforceing与permissive二者可以直接进行切换,但是二者与disable(关闭selinux)进行切换时要重启reboot
  • enforceing与permissive二者通过setenforce切换,setenforce=0切换为警告模式,setenforce=1切换为强制模式
  • getenforce :查看selinux的状态

2、在selinux开启和关闭的情况下对安全上下文的影响

  • selinux对文件的影响: selinux给每个文件加标签
    标签匹配才能被访问,每个程序安全上下文要匹配(在/var/ftp/下看mv过去的能不能看到)

2.1 selinux关闭的情况下

Linux下的selinux

Linux下的selinux

2.2 selinux开启的情况下

  • 当selinux对文件有影响时,是因为文件上面的标签不一样,因此当selinux开启时在默认发布目录下就不能看到刚才mv的文件,因为/var/ftp/这个默认发布目录与mv进去的文件标签不一样

Linux下的selinux

Linux下的selinux

Linux下的selinux

三、解决安全上下文不一致问题

3.1 临时更改

  • 临时更改适用于更该文件 chcon -t 安全上下文 文件 ,selinux重启之后就不会再生效

(1)chcon -t public_content_t /var/ftp/file

Linux下的selinux

3.2 永久更改

  • 不管selinux是开启还是关闭,永久设置都会生效

(1)semanage fcontext -l | grep /var/ftp 查看系统默认发布目录设置的标签
Linux下的selinux

(2)semanage fcontext -l | grep /ftpdir 发现我们自己新建的并没有这个标签
(3)semanage fcontext -a -t public_context_t ‘/ftpdir(/.*)?’ 将自己建立的发布目录加上标签(目录里面的内容)
(4)semanage fcontext -l | grep /ftpdir 这此查看就可以看到我们自己新建的ftp发布目录标签也是public了

Linux下的selinux
(5)ls -Zd /ftpdir/
(6)restorecon -RvvF /ftpdir/ 刷新
Linux下的selinux

3.3 selinux设置为enforceing仍然可以上传文件

  • getsebool -a | grep ftp 查看匿名用户的能力
  • sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值,sebool值是控制服务功能开关
  • getsebool | grep 服务名称
  • setsebool -P bool值 on |off

(1)getsebool | grep ftp
(2)setsebool -P(永久设置) ftpd_anon_write 1(on)   让匿名用户可以上传
Linux下的selinux

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

(4)还要结合之前在配置文件里写的东西和给予pub的权限等,这样,即使在selinux为enforcing的情况下仍然能够上传文件
Linux下的selinux

四、 与selinux相关的两个日志

  • /var/log/messages 系统日志,提供解决方案,需要安装服务才能提供解决方案
  • /var/audit/audit.log为selinux真正的日志,不提供解决方案

相关文章:

  • 2021-07-08
  • 2021-09-28
  • 2022-02-02
  • 2022-12-23
  • 2021-10-14
  • 2021-05-24
猜你喜欢
  • 2021-08-07
  • 2022-01-08
  • 2021-04-16
  • 2021-06-07
  • 2021-10-14
相关资源
相似解决方案