selinux简介
1.selinux:内核级加强型火墙
2.作用:
1)文件方面
  给每个文件加标签
  context 安全上下文
  程序和文件的安全上下文匹配 才可以允许访问 否则会被拒绝

2)服务方面
  sebool(布尔值)
  给程序加功能开关
3.三种模式
enforcing:强制启用安全策略模式,将拦截服务的不合法强求
permissive:遇到服务越权访问时,只发出警告二不强制拦截
disabled:对于越权的行为不警告也不拦截

查看以及更改selinux状态

1.查看selinux状态

输入命令getenforce

selinux 不能配置mysql_linux


2.更改selinux状态

更改etc/sysconfig/selinux配置文件,此修改为内核级的,所以需要重启系统

selinux 不能配置mysql_重启_02


selinux 不能配置mysql_linux_03


重启后再次查看,状态更改为Enforcing

selinux 不能配置mysql_selinux 不能配置mysql_04


当selinux开启后的更改不需要重启

用setenforce{0|1}命令修改selinux当前的运行模式(1为禁用,1为启用)

注意

这种修改只是临时的,在系统重启后会失效

selinux 不能配置mysql_重启_05

selinux的作用

1.首先我们需要重置试验环境,删除vsftpd配置文件并重回安装vsftpd服务

selinux 不能配置mysql_重启_06


selinux 不能配置mysql_上传_07


2.在ftp中新建一个文件,并开启selinux

selinux 不能配置mysql_重启_08


登录发现看不到新建的文件

selinux 不能配置mysql_重启_09


我们关闭selinux服务再次查看

selinux 不能配置mysql_重启_10


selinux 不能配置mysql_selinux 不能配置mysql_11


可以看到,说明不能访问是因为selinux开启的原因

selinux开启后,会给文件添加安全上下文,如果不匹配,将不能访问

selinux 不能配置mysql_上传_12


3.更改安全上下文

我们可以看到ftp目录的安全上下文与ftphome目录的安全上下文不一致

selinux 不能配置mysql_重启_13


selinux 不能配置mysql_重启_14


semange fcontext -l查看目录的安全上下文信息

selinux 不能配置mysql_linux_15


查看ftphome的安全上下文为空

selinux 不能配置mysql_selinux 不能配置mysql_16


为ftphome目录整个添加安全上下文

selinux 不能配置mysql_重启_17


再次查看,添加成功

selinux 不能配置mysql_上传_18


selinux 不能配置mysql_linux_19

sebool(布尔值)

1.上传功能

登录ftp发现上传不了文件

selinux 不能配置mysql_selinux 不能配置mysql_20


这是因为sebool中的上传功能未开启

ftp_home_dir

为关闭状态

selinux 不能配置mysql_重启_21

setsebool -p ftp_home_dir on

开启sebool中的上传功能,再次查看,功能开启

selinux 不能配置mysql_linux_22


上传文件成功

selinux 不能配置mysql_重启_23

2.可写功能

首先编辑vsfptd配置文件,将可写功能开启

selinux 不能配置mysql_linux_24


selinux 不能配置mysql_上传_25


给ftp下的pub目录设置权限,我们将在pub中上传文件来测试可写功能

selinux 不能配置mysql_上传_26


这时在pub中上传文件是不允许的

selinux 不能配置mysql_上传_27


查看sebool中的可写功能未开启,我们将它打开

selinux 不能配置mysql_selinux 不能配置mysql_28


selinux 不能配置mysql_selinux 不能配置mysql_29


selinux 不能配置mysql_上传_30


修改上下文,添加rw(可写)

selinux 不能配置mysql_上传_31


再次在pub中上传即可

selinux 不能配置mysql_selinux 不能配置mysql_32

selinux的排错

selinux的排错需要通过setroubleshoot软件,然后通过日志来查看

selinux 不能配置mysql_重启_33


为了方便起见,我们首先清空日志

selinux 不能配置mysql_selinux 不能配置mysql_34


在mnt中新建文件,再次登录ftp不可见

selinux 不能配置mysql_上传_35


selinux 不能配置mysql_上传_36


再次查看日志,日志中有解决的方案

selinux 不能配置mysql_linux_37


selinux 不能配置mysql_重启_38


selinux 不能配置mysql_上传_39


如果我们删除setroubleshoot软件

selinux 不能配置mysql_selinux 不能配置mysql_40


selinux 不能配置mysql_selinux 不能配置mysql_41


再次清空日志中的内容

selinux 不能配置mysql_上传_42


重新登录测试,查看到audit.log中有报错但是messages中就没有内容了

selinux 不能配置mysql_重启_43