Linux最后章:selinux

基本 SELINUX 安全性概念

SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 , 并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权 SELINUX 的另一个不同之处在于 , 若要访问文件 ,
你必须具有普通访问权限和 SELINUX 访问权限。因此 , 即使以超级用户身份
root 运行进程 , 根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源限 ) 标签。

selinux 安全上下文访问规则
WEB 服务器的 HTTPD 进程设置了 SELINUX 上下文
system_u:system_r:httpd_t 标签。该上下文的重要部分是第三个用冒号分隔的字段 SELINUX 类型 : httpd_t系统上的文件和资源也设置了 SELINUX 上下文标签 , 并且重要的部分是 SELINUX 类型。例如 , /var/www/html 中的文件具有类型 httpd_sys_content_t 。 /tmp 和 /var/tmp 中的文件通常具有类型 tmp_tSeliux 策略具有允许以 httpd_t 身份运行的进程访问标记为
httpd_sys_content_t 的文件的规则。没有规则允许这些进程访问标记有 tmp_t 的文件 , 因此将拒绝这些访问 , 即使常规文件权限指出应该允许这些访问。

vim /etc/sysconfig/selinux
在这里插入图片描述

disabled:

touch /mnt/westos
mv /mnt/westos /var/ftp
ls -Z /var/ftp
ps auxZ | grep vsftpd

在这里插入图片描述
在这里插入图片描述
lftp 172.25.254.100 -u student #测试:可以上传,可以删除

disable–>enforcing内核型加强防火墙
在这里插入图片描述
在这里插入图片描述
对文件:

touch /mnt/westos1
mv /mnt/westos1 /var/ftp
ls -Z /var/ftp
ps auxZ | grep vsftpd 
setenforce 0
permissive
cat /var/log/audit/audit.log #查看警告,还可以访问但是看不到,有警告

在这里插入图片描述在这里插入图片描述
不显示westos1这个目录,因为安全上下文不匹配,westos1的安全上下文为mnt_t:s0
在这里插入图片描述

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

chcon -t public_content_t /var/ftp/westos1 #临时修改安全上下文为public_content_t 

在这里插入图片描述
对目录

mkdir /westos
touch /westos/westosfile{1..5}
ls -Zd /westos/*
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
lftp 172.25.254.100 ##不能访问
sentenforce 0 #permissive时可以访问
chcon -t public_content_t /westos -R	#更改安全上下文
ls -Zd /westos
lftp 172.25.254.100	#可以访问

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

#把selinux重启一次,安全上下文变回default_t
在这里插入图片描述
在这里插入图片描述
永久更改目录的安全上下文:

semanage fcontext -l | grep /var/ftp
semanage fcontext -l | grep /westos

semanage fcontext -a -t public_content_t /westos
semanage fcontext -l | grep /westos	##发现只改变了westos目录的安全上下文
restorencon -RvvF /westos
semanage fcontext -d -t public_content_t /westos
rm -rf /westos
mkdir /westos
touch /westos/file{1..5}

(永久更改目录的安全上下文)
semanage fcontext -a -t public_content_t '/westos(/.*)?' #-a添加 -t类型
restorecon -RvvF /westos	#  同步 R递归 vv显示过程 F刷新

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

#sebool 插件
getsebool -a | grep ftp
ftp_home_dir -->on

setsebool -P ftp_home_dir on 打开对加目录控制 本地用户可以写可以删除

full_access 总开关打开
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

selinux排错
enforecing状态下将file1移动到ftp目录里,登陆lftp不显示
在这里插入图片描述

vim /var/log/messages
*****  Plugin catchall_boolean (57.6 confidence) suggests   ******************

If you want to allow ftpd to full access
Then you must tell SELinux about this by enabling the 'ftpd_full_access' boolean.

Do
setsebool -P ftpd_full_access 1

*****  Plugin catchall_labels (36.2 confidence) suggests   *******************

If you want to allow vsftpd to have getattr access on the  file
Then you need to change the label on $FIX_TARGET_PATH
Do
# semanage fcontext -a -t FILE_TYPE '$FIX_TARGET_PATH'
#


Then execute:
restorecon -v '$FIX_TARGET_PATH'


*****  Plugin catchall (7.64 confidence) suggests   **************************

If you believe that vsftpd should be allowed getattr access on the  file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
grep vsftpd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

rpm -qa | grep setroubleshoot
在这里插入图片描述
排错软件:
setroubleshoot-server-3.2.17-2.el7.x86_64
setroubleshoot-3.2.17-2.el7.x86_64
setroubleshoot-plugins-3.0.59-1.el7.noarch

猜你喜欢

转载自blog.csdn.net/weixin_43067754/article/details/83900865
今日推荐