18. Linux系统中的 selinux服务

Lesson18 Linux系统中的 selinux服务

1. 了解selinux
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 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念
由于selinux涉及安全上下文的问题,因此会使很多操作的结果不正确,如果要使用selinux,就需要修改对应文件的安全上下文,非常不方便,所以在企业中很少使用

2. selinux的开关
实验准备:1. 在真机里面reset server虚拟机,并且开启server虚拟机
2. 给server虚拟机配置ip为172.25.254.114
3. 给server虚拟机配置共享yum源
4. 给火墙加上永久允许ftp服务,再使用yum源安装lftp软件

下载ftp服务
在这里插入图片描述
给火墙加上永久允许ftp
在这里插入图片描述

查看selinux的状态

注意:1.selinux对服务访问文件以及功能有影响
2.enforceing与permissive二者可以直接进行切换,但是二者与disabled(关闭selinux)进行切换时要reboot

即selinux由开到关,或由关到开,都要reboot重启系统

状态说明
enforceing强制模式
permissive警告模式
disabled关闭模式

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

selinux对功能的影响:
在每不安全的功能上面加功能开关(默认关闭),安全性提高,0关闭,1开启(在/var/ftp/pub/能不能上传文件)
不是服务本身不允许,而是selinux不允许

3. 临时更改安全上下文(适用于文件)

开启selinux,开启vsftpd,建立文件/mnt/westos1,并且移动到/var/ftp
在这里插入图片描述
用匿名用户身份登录,可以看到,不能ls 查看到westos1
在这里插入图片描述
但是,/var/ftp/是有westos1文件的
在这里插入图片描述
在这里插入图片描述
可以看到,/var/ftp/westos1和pub的安全上下文是不一致的
将selinux的级别改为permissive警告模式
在这里插入图片描述
再次连接查看发现可以看到westos1文件
在这里插入图片描述
再次setenforce 1改为强制模式时,就不能看到westos1文件了
在这里插入图片描述在这里插入图片描述

chcon -t 安全上下文 文件
chcon -t public_content_t /var/ftp/westos1 #更改westos1的安全上下文与pub一致
在这里插入图片描述

更改了westos1的安全上下文,则可以查看到/var/ftp/westos1
在这里插入图片描述

开启selinux,在ftp服务器上也不能上传文件
在这里插入图片描述
在配置文件里设置允许匿名用户上传文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,不能上传文件
将selinux的状态切换到disabled
在这里插入图片描述
重启
在这里插入图片描述
在这里插入图片描述
可以看到,匿名用户可以上传

4. 永久更改安全上下文

semanage fcontext -l #查看系统默认发布目录设置的标签在这里插入图片描述
在这里插入图片描述
建立/westos,在这个目录下创建5个文件
在这里插入图片描述

但是我们自己建立的目录与默认发布目录的标签不一致

semanage fcontext -a -t public_content_t '/westos(/.*)?' #将自己建立的发布目录加上标签(目录里面的内容)
在这里插入图片描述
在这里插入图片描述

restorecon -RvvF /westos/ #刷新使其生效

在这里插入图片描述在这里插入图片描述
可以看到,永久设置/westos安全上下文和pub一致成功

5. ftp功能状态的修改

getsebool -a | grep ftp #查看ftp的状态
在这里插入图片描述
在这里插入图片描述
在没修改到on时,匿名用户不能上传
在这里插入图片描述
在这里插入图片描述
ftpd_anon_write的状态已经修改为on,执行 chcon -t public_content_rw_t /var/ftp/pub,让匿名用户具有读写这个目录的权力
在这里插入图片描述
在这里插入图片描述
可以看到,匿名用户上传成功

在enforcing状态下,本地用户家目录上传和删除文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,本地用户可以上传文件
在这里插入图片描述
本地用户可以删除文件

6. 与selinux相关的日志

/va/log/messagesr #系统日志,提供解决方案
/var/audit/audit.log #selinux真正的日志,不提供解决方案
/var/log/secure #查看登陆系统的用户

7. 管理selinux端口标签

实验准备:
这个实验使用server虚拟机来做,此时server虚拟机的selinux状态为enforcing
在这里插入图片描述
配置server虚拟机的ip为172.25.254.214,配置完毕后需要重启网络
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置好server虚拟机的yum源
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用yum源安装apache服务
在这里插入图片描述在这里插入图片描述
安装完成

systemctl start httpd #开启apache服务
netstat -antlupe | grep httpd #查看apache服务开启的端口
在这里插入图片描述
vim /etc/httpd/conf/httpd.conf #编辑apache服务的主配置文件,修改apache服务监听的端口为8888
在这里插入图片描述
在这里插入图片描述
systemctl restart httpd #重启apache服务

在这里插入图片描述
发现配置文件无法重启,这是因为selinux的状态为enforcing,阻止了apache服务端口的修改,如果将selinux的状态设置为permissive,则apache服务能够重启

在这里插入图片描述

netstat -antlupe | grep httpd #查看apache服务开启的端口
在这里插入图片描述
将selinux模式设置为enforciung
在这里插入图片描述在这里插入图片描述

semanage port -l | grep http #列出apache服务端口标签
发现没有我们添加的8888端口
semanage port -a -t http_port_t -p tcp 8888 #添加端口标签
在这里插入图片描述
systemctl restart httpd #重启apache服务
在这里插入图片描述
这里注意,重启apache服务需要等待大约十几秒的时间,如果此时重启失败,显示killed,则是selinux软件本身的bug,换一台虚拟机重新做实验
netstat -antlupe | grep httpd #查看apache服务开启的端口是否有8888
在这里插入图片描述

semanage port -d -t http_port_t -p tcp 8888 #删除端口标签

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值