Linux之SELinux的介绍以及用法
一、SELinux简介1、什么是SELinux:SELinux(security enhanced linux)安全增强型Linux系统,它是一个linux内核模块,也是Linux的一个安全子系统。Selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)2、SELinux有两个级别:强制、警告setenforce 0 :表示警告(Permissive)setenforc
一、SELinux简介
1、什么是SELinux:
SELinux(security enhanced linux)安全增强型Linux系统,它是一个linux内核模块,也是Linux的一个安全子系统。
Selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
2、SELinux有两个级别:
强制、警告
setenforce 0 :表示警告(Permissive)
setenforce 1 :表示强制(Enforcing)
3、SELinux相当于一个插件(内核级的插件)
4、SELinux功能开启后,会关闭系统中不安全的功能
5、查看日志中的警告
cat /var/log/audit/audit.log
6、修改SELinux的状态
vim /etc/sysconfig/selinux
状态分为以下三种:
SELINUX=enforcing #selinux开启,级别为强制
SELINUX=permissive #selinux开启,级别为警告
SELINUX=disabled #selinux关闭
7、SELinux有两个功能
1、程序访问文件 :安全上下文
安全上下文的临时更改
chcon -t 安全上下文 文件
chcon -R -t 安全上下文 目录
设置后,可通过ls -lZ进行查看
2、程序访问功能:sebool
selinux 对服务功能添加的开关
#查看xxx的功能开关
getsebool -a | grep xxx
二、selinux的用法:影响文件的安全上下文
(一)修改文件的安全上下文
当我们从别的地方复制一个文件到/var/ftp,而当我们登录lftp之后,发现看不到该文件,是因为这个文件的安全上下文和/var/ftp的安全上下文不匹配,这就是selinux的保护机制,所以我们需要将这个文件的安全上下文修改和/var/ftp的达到一致。
1、创建文件
touch /mnt/file1
2、将该文件移动到/var/ftp下
注:为什么是移动而不是复制,移动是重命名的过程,文件的属性和权限不会改变,文件的属性和权限不会改变,而复制是新建文件的过程,文件的属性和权限等等可能会发生改变。
mv /mnt/file /var/ftp
3、通过lftp IP 命令 查看当前目录下的文件
lftp 172.25.254.210 ls
发现并没有生成file1文件
4、切换至 /var/ftp 下
cd /var/ftp
5、通过ls -Z 查看文件类型【包括文件的安全上下文属性】
ls -z
也可以通过 semanager fcontext -l | grep /var/ftp 查看/var/ftp的安全上下文
semanager fcontext -l | grep /var/ftp
6、然后修改file1的安全上下文
chcon -t public_content_t file1
7、然后执行lftp IP ls 命令 进行查看
lftp 172.25.254.210 ls
semanage fcontext -l 显示内核已经记录的安全上下文
(二)修改目录的安全上下文
/var/ftp是lftp的默认发布目录,它默认的安全上下文是public_content_t,如果我们想要修改/var/ftp的默认发布目录,就必须修改这个新的发布目录的安全上下文
实例步骤如下:
1、创建目录
mkdir /jay
2、在该目录下创建文件
touch /jay/file
3、编写配置文件
vim /etc/vsftpd/vsftpd.conf
设置anon_root=/jay
4、重启服务
systemctl restart vsftpd
5、进行初次连接
lftp 172.25.254.210
6、ls
不会显示/jay和/jay里边的文件,因为其安全上下文不是content_public_t
注:setenfoce 0/1 ls 后可以显示里边的文件,说明这个问题的出现和selinux有关
7、修改/jay目录的安全上下文由两种方法,一种是临时的,一种是永久的
(1)临时的:
chcon -t -R public_content_t /jay # -R 表示递归
注意:如果要恢复安全上下文,修改selinux的配置文件,将selinux修改为disable后重启,再修改为enforcing重启,/jay的安全上下文会变回原样。
(2)永久地:
修改/jay和底下的所有文件的安全上下文,-a表示增加,-t表示类型
semanage fcontext -a -t public_content_t '/jay(/.*)/?'
查看/jay的安全上下文
semanage fcontext -l | grep /jay
递归刷新并显示刷新过程
restorecon -F vvR /jay
然后
lftp 172.25.254.210
ls
便可以查看
三、selinux的用法:对进程本身开关的影响sebool值
selinux会对我们系统中有些功能加上开关,我们在使用这些功能时,应该先打开开关才可以使用
(一)功能开关的影响
1、
lftp 172.25.254.210 -u abc
2、
put /etc/passwd
// 显示不能上传,如果将selinux的值修改为0,则可以上传,说明这是selonux对上传文件的影响
3、
getsebool -a | grep ftp
显示ftp的上传功能未开启
4、
setsebool -P ftp_home_dir on
打开ftp的上传功能 -P表示永久打开
5、
getsebool -a | greo ftp
显示ftp的上传功能开启
6、
lftp 172.25.254.210 -u abc
7、
put /etc/group
(二)selinux的排错工具:setroubleshoot-server
该工具需要安装:
yum install -y setroubleshoot-server
1.touch /mnt/file
2.mv /mnt/file /var/ftp
3.在浏览器里输入ftp://172.25.254.210/file 不能看到自己建立的文件,这是由于安全上下文的关系
4.清空/var/log/messages
5.在浏览器处刷新,查看/var/log/messages
6.里边有解决方案:里边说明解决方案在/var/log/audit/audit.log里
解决方案是:
restorecon -v /var/ftp/*
7.这个解决方案是软件setroubleshoot-server-3.2.17.e17.x86_64提供的
8.如果我们卸载这个软件,那么在/var/log/audit/audit.log里边就不会再有解决方案
原文链接:https://blog.csdn.net/jay_youth/article/details/80327599
更多推荐
所有评论(0)