selinux

一、相关知识
selinux 内核级加强型防火墙
1、针对文件,会对系统中每个文件添加安全上下文(context)
2、针对进程,会对系统中的每个进程添加全上下文(context)
3、会在系统服务上设定sebool开关
4、当进程安全上下文和文件的安全上下文不匹配时,那么进程无法访问此文件
4、sebool会限制服务的不安全功能,如果需要用此功能,必须调整sebool值
二、selinux对文件访问服务的影响

  • 在安装ftp服务的主机中操作
    配置文件: /etc/sysconfig/selinux
    vim /etc/sysconfig/selinux
      enforcing #强制模式 (重新加载安全上下文,必须重启才能设置)
      permissive #警告模式
      disabled #关闭

  • Enforcing 模式与Disable 之间切换需要重启

  • Enforcing 时只加载ftp可访问的安全上下文

  • Permissive 可访问不同安全上下文
    更改方式

    setenforce 0|1 #更改selinu当前的级别0警告1标示强制开启

在这里插入图片描述

  vim /etc/sysconfig/selinux
   reboot

在这里插入图片描述

ls -Zd /var/ftp/*  #查看文件或目录属性及上下文信息

测试:
在selinux开启模式与警告模式下,对于与ftp可访问的安全上下文相同和不同的查看情况。
【1】

yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd

在这里插入图片描述
【2】

chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub #使所有匿名用户拥有读写执行的权力
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
systemctl restart vsftpd

在这里插入图片描述
在这里插入图片描述
【3】

getenforce #查看状态
setenforce 0
ls -Zd /var/ftp/pub/*
ps auxZ | grep vsftpd #过滤查看vsptd进程加载的上下文

警告模式下:
匿名用户可以查看安全上下文不同的文件
在这里插入图片描述
强制开启模式下:
匿名用户不能查看安全上下文不同的文件
在这里插入图片描述
**ftpd_t安全模式所能访问的安全上下文是public_content(对应的服务只能访问对应的安全上下文)

更改安全上下文为ftpd能识别的类型
临时更改:

chcon -t public_content_t /var/ftp/pub/file

在这里插入图片描述
永久更改:
修改目录及目录中所有文件的安全上下文

semanage fcontext -a -t public_content_t '/westos(/.*)?' #目录及目录中所有安全上下文
restorecon -RvvF /westos/ 重新刷新
-a-tvvF
添加指定上下文显示过程刷新

在这里插入图片描述
打开selinux后会限制用户权限:

getsebool -a | grep ftp #查看selinux状态
   ftp_home_dir #打开本地用户家目录开关则可执行文件中的相应功能,否则selinux
开启,只能查看不能操作
   ftpd_full_access #selinux总开关,不安全,匿名用户本地用户均不受selinux限制
打开家目录开关
setsebool -P ftpd_full_access on #打开sexlinux中允许的权限,打开后会在/etc/vsftpd/vsftpd.conf中查找开启的权限

测试:
【1】

setenforce 1
getenforce

在这里插入图片描述
【2】

getsebool -a | grep ftp

在这里插入图片描述
【3】

setsebool -P ftpd_full_access on
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.119

在这里插入图片描述
【4】

setsebool -P ftpd_full_access down
setsebool -P ftp_home_dir on
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.119 -u student

在这里插入图片描述
在这里插入图片描述
三、selinux开启状态下对httpd服务端口修改的影响

	getenforce  #查看selinux状态
	vim /etc/sysconfig/selinux
	selinux=enforcing

在这里插入图片描述

	netstat -antulpe | grep httpd  #查看httpd服务开启的端口,此时为80端口       semanage port -l | grep http  #查看httpd服务拥有的端口
    netstat -antulpe | grep 8888 #查看8888端口有没有被占用 
    semanage port -a -t http_port_t -p tcp 8888 #将协议为tcp的8888端口添加为httpd服务端口

在这里插入图片描述
查看http_port_t服务拥有端口
在这里插入图片描述
添加8888端口为http服务端口:
在这里插入图片描述

	vim /etc/httpd/conf/httpd.conf
	Listen 8888
	systemctl restart httpd
	netstat -antulpe | grep httpd 

修改httpd服务开放端口为8888:
在这里插入图片描述
此时httpd开放端口为8888:
在这里插入图片描述
删除端口:

	semanage port -d -t http_port_t -p tcp 8888
	vim /etc/httpd/conf/httpd.conf
	Listen 80
	systemctl restart httpd
	netstat -antulpe | grep httpd

修改开放端口:
在这里插入图片描述
移除拥有端口8888:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值