selinux

本文详细介绍了SELinux的工作原理,包括三种运行模式:enforcing、permissive和disabled。通过实例展示了如何切换模式,并探讨了SELinux对程序和服务的影响,如文件上下文和权限设置。此外,还讲解了如何在遇到错误时查看和分析日志文件,以及如何使用semanage和setsebool工具来管理策略和布尔值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义

selinux是内核级加强型火墙

2.selinux支持的三种模式

enforcing ##强制开启 会警告你也会拒绝你
permissive ##警告开启,会警告但不会拒绝
disabled ##关闭

3.切换模式

开启和关闭模式切换,需要重新启动
两种开启模式可以相互转换,不需要重启动
setenforce 0 ##警告
setenforce 1 ##警告并拒绝

4.selinux对程序的影响

selinux对程序的影响::开启之后会给每一个文件加载一个标签
安全上下文 pubic_content
程序的安全上下文和文件的安全上下文是匹配的,才可以访问
程序的安全上下文和文件的安全上下文是不匹配,否则访问失败

之前FTP章节练习时修改配置文件,为了下面实验不受到影响,还原!
在这里插入图片描述
1.selinux模式设置为disabled
touch /mnt/westosfile
mv /mnt/westosfile /var/ftp
lftp 172.25.254.188
ls 可以看到westosfile
在这里插入图片描述
vim /etc/sysconfig/selinux 设置成enforcing
在这里插入图片描述
reboot
在这里插入图片描述
重启后查看
在这里插入图片描述
touch /mnt/westosfile2
mv /mnt/westosfile2 /var/ftp
lftp 172.25.254.188
ls 可以看不到westosfile2
在这里插入图片描述
但是westosfile2确实存在
在这里插入图片描述
这是为何?
查看程序的上下文是否和目录上下文匹配
在这里插入图片描述
文件初始selinux上下文通常是父目录。将父目录的上下文指定给新创建的文件
cd /var/ftp
touch file
ls -Z
file 上下文是public_content_t
在这里插入图片描述
touch /mnt/file
ls -Z /mnt/file
/mnt/file 上下文是mnt_t
在这里插入图片描述
因为file父目录/mnt的上下文就是mnt_t
ls -Z /mnt/ -d
/mnt的上下文是mnt_t
在这里插入图片描述
临时修改文件的上下文
ls -Z
westosfile2 的上下文是mnt_t
在这里插入图片描述
chcon -t public_content_t westosfile2
##临时修改文件westosfile2的上下文
ls -Z
westosfile2 的上下文变成public_content_t
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf ##修改配置文件
anon_root=/ftphome ##匿名用户登陆的家目录修改为/ftphome
在这里插入图片描述

在这里插入图片描述
lftp 172.25.254.177 ##匿名用户登陆
ls没东西
在这里插入图片描述
ls -Zd /ftphome/ ##/ftphome/的上下文是default_t
在这里插入图片描述
chcon -t public_content_t /ftphome/ -R
##临时更改/ftphome/的安全上下文
ls -Zd /ftphome/ ##/ftphome/的上下文是public_content_t
在这里插入图片描述
lftp 172.25.254.177 ##匿名用户登陆
ls 可以看见里边东西
在这里插入图片描述
查看临时设定的话重启之后是否文件的上下文改变
vim /etc/sysconfig/selinux
7行 SELINUX=disbale ##由原来的enforcing修改成disbale
在这里插入图片描述
reboot
在这里插入图片描述
vim /etc/sysconfig/selinux
7行 SELINUX=enforcing ##由原来的disbale修改成enforcing
在这里插入图片描述
reboot ##重启两次
在这里插入图片描述
lftp 172.25.254.177 ##匿名用户登陆
ls没东西 ##说明它是临时设定
在这里插入图片描述
ls -Zd /ftphome ##显示/ftphome的上下文是default_t
ls -Zd /var/ftp ##显示/var/ftp的上下文是public_content_t
在这里插入图片描述
匿名用户默认登陆/var/ftp时安全上下文匹配允许用户查看里边信息,那么如果修改/ftphome的安全上下文为public_content_t使得用户也可以查看/ftphome里边的信息。
上边介绍了一种临时修改文件的安全上下文的方法,但是重启后失效。有没有永久更改文件的安全上下文的方法呢?
查看/var/ftp安全上下文是如何永久设定的
在这里插入图片描述
永久更改/ftphome的安全上下文
semanage fcontext -a -t public_content_t ‘/ftphome(/.*)?’
在这里插入图片描述
restorecon -RvvF /ftphome ##读取里边内容使得永久设定生效
在这里插入图片描述
可以看到永久设定生效
在这里插入图片描述
semanage fcontext 可用与显示或修改 restorrecon 用来设置默认文件上下文的规则

5. selinux对服务的影响

对服务的影响:加程序的功能开关
getsebool 用于显示布尔值,setsebool用于修改布尔值
getsebool 0 1 bool
getsebool -a | grep ftp

警告模式下匿名用户可以上传
setenforce 0 设置为警告模式
在这里插入图片描述
vim /etc/vsftpd/vsftpd.conf
29行 匿名用户上传权限开启 服务允许
在这里插入图片描述
在这里插入图片描述
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub修改权限
在这里插入图片描述
注意:自己实验不可以上传?错在哪里 权限553
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub 修改权限
手残写成 755 导致不能上传,因为组用户没有写的权限

lftp 172.25.254.188
cd pub/
put /etc/passwd 可以上传
在这里插入图片描述
强制模式下匿名用户不可以上传
setenforce 1 设置为强制模式
在这里插入图片描述
lftp 172.25.254.188
cd pub/
put /etc/group
553报错不可以上传
在这里插入图片描述
getsebool -a | grep ftp
原来是关闭的
在这里插入图片描述
setsebool -P ftp_anon_write on ##打开匿名用户上传功能开关 ,-P 永久开启
在这里插入图片描述
lftp 172.25.254.188
cd pub/
put /etc/group
553报错不可以上传
在这里插入图片描述
ls -Zd /var/ftp/pub/
在这里插入图片描述
chcon -t public_content_rw_t /var/ftp/pub/ ##原来是只读,修改成可写可读
ls -Zd /var/ftp/pub/ ##修改成功
在这里插入图片描述
setsebool -P ftp_anon_write on ##打开匿名用户上传功能开关 ,-P 永久开启
lftp 172.25.254.188
cd pub/
put /etc/group ##上传成功
在这里插入图片描述

6.发生错误查看日志

/var/log/audit/audit.log 提供问题出在哪里
/var/log/messages 专门分析前面日志,提供解决方案
清空日志
清空日志:>/var/log/audit/audit.log
清空日志:>/var/log/messages
touch /mnt/file
mv /mnt/file /var/ftp

在这里插入图片描述

lftp 172.25.254.188
ls
在这里插入图片描述
cat /var/log/audit/audit.log ##提供问题出在哪里
在这里插入图片描述
cat /var/log/messages ## 专门分析前面日志,提供解决方案
在这里插入图片描述
rpm -qa | grep settroubleshoot ##查看提供解决方案的软件
在这里插入图片描述
yum remove sett…server… ##卸载这个软件
在这里插入图片描述
在这里插入图片描述
清空日志:> /var/log/audit/audit.log
清空日志:> /var/log/messages
lftp 172.25.254.188
ls
在这里插入图片描述

cat /var/log/audit/audit.log ##提供问题出在哪里
在这里插入图片描述
cat /var/log/messages ##没有解决方案
在这里插入图片描述
yum install sett…server… ##安装这个软件
在这里插入图片描述
清空日志:> /var/log/audit/audit.log
清空日志:> /var/log/messages
lftp 172.25.254.188
ls
在这里插入图片描述
cat /var/log/audit/audit.log ##提供问题出在哪里
在这里插入图片描述
cat /var/log/messages ##又可以专门分析前面日志,提供解决方案
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值