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对服务访问文件以及功能的影响
enforceing与permissive二者可以直接进行切换,但是二者与disable(关闭selinux)进行切换时要reboot

enforceing表示强制
permissive表示警告
disable表示关闭

2.selinux对文件的影响

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

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

eg:当selinux状态为disable时,
在这里插入图片描述
当selinux状态为enforcing时,westosfile1并没有在lftp 服务中看到
在这里插入图片描述
原因:westosfile1的安全上下文与lftp的安全上下文不匹配,lftp只能访问到与之标签相匹配的文件

ls -Z /var/ftp #-Z查看安全上下文
在这里插入图片描述
显示进程的selinux的安全上下文:
ps axZ | grep vsftpd ##-Z参数可以查询进程的安全上下文
在这里插入图片描述

3.selinux状态的设置

enforceing表示强制
permissive表示警告
disable表示关闭

强制和警告表示selinux服务开启
disable表示selinux服务关闭

getenforce查看selinux服务的状态
setenforce 0将selinux设置为警告模式,前提selinux开启
setenforce 1将selinux设置为强制模式,前提selinux开启
vim/etc/sysconfig/selinux修改SELINUX=disable

注意:当selinux关闭到开启,或者开启到关闭都要重启才能生效

sebool的设定

getsebool -a | grep  ftp  #查看ftp相关功能的开启状态

在这里插入图片描述

setsebool -P ftp_home_dir   on|1    #开启本地上传服务设置

测试
在这里插入图片描述
在开启安装上下文状态下,开启匿名用户 上传服务

getsebool -a  | grep  ftp  # 查看ftp相关功能的开启状态
setsebool -P ftpd_anon_write on  #开启匿名用户上传功能
lz -Zd  /var/ftp/pub  #查看该目录的安全上下文
semange  fcontext -a -t public_content_rw_t  "/var/ftp/pub(/.*)?"   #修改/var/ftp/pub目录的安全上下文
restorecon -RvvF /var/ftp/pub/   #刷新该目录上下文

在这里插入图片描述
在这里插入图片描述测试
在这里插入图片描述修改文件的安全上下文

#临时修改
chcon -t public_content_t westosfile1   #public_content_t 为安全上下文,  westosfile1为文件名  

在这里插入图片描述
现在westosfile1就可以传过来了

在这里插入图片描述永久修改文件的安全上下文

semanage  fcontext  -l   #查看文件的安全上下文
semanage  fcontext -a  -t  public_content_t    "/westos(/.*)?"  #更改/westos目录本身以及该目录下的所有文件的安全上下文为public_content_t
restorecon  -RvvF /westos   #同步安全上下文到该目录本身,不会因重启而改变
ls  -Zd  /westos   查看该目录安全上下文

在这里插入图片描述
selinux 的排错

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

实验:

cd /mnt/
touch /mnt/file
mv /mnt/sfile   /var/ftp/

在这里插入图片描述

lftp 172.25.254.100
ls 查看并没有mv过来的东西

在这里插入图片描述

cat /var/log/messages #可以看到日志提供的解决办法 然后就能看到mv过去的了
 restorecon -v /var/ftp/file #刷新 
 ls -Z /var/ftp/      #查看标签是否一致(只有标签一致的时候才能看见mv过去的东西) 
 再次 lftp 172.25.254.111    #ls查看就可以看到mv进去的东西了

在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值