#########################
1.selinux功能
#########################
selinux:内核级加强型火墙
当seliux关闭状态:
在/mnt/中建立文件文件安全上下文为空文件被移动到ftp默认发布目录中可以被访问
ftp程序安全上下文为空
且用户可以上传文件
当selinux开启后,重启系统,会发现多了以下三行内容
上下文出现,移动file2 到/var/ftp/是显现不出来:
则selinux功能:
当selinux开启会给系统中的每一个文件及每一个程序加载安全上下文,特定安全上下文的程序只能访问特定安全上下文 的文件
当selinux开启会对服务本身相对不安全的功能加载开关sebool并且设定开关为关闭状态以保证服务安全
性,当需要此功能时需要超级用户手动调节
看出匿名用户上传功能已经关闭。
#########################
2.selinux状态
#########################
getenforce ##查看selinux状态
状态类型:
Disabled ##关闭
enforcing ##强制,限制而且警告
permissive ##警告,不限制
当状态为enforcing时,我发访问/mnt/file2 文件,而且会受到警告的消息,
setenforce 0 设置为警告模式 ##0表示警告模式 1表示强制模式
则会看到file2文件,但还是会收到警告。
selinux开关:
vim /etc/sysconfig/selinux
SELINUX=[selinux的状态]
reboot #当Disabled <----> [enforcing|permissive] 都需要
重启系统
#########################
3.安全上下文
#########################
1.安全上下文的临时更改
chcon -t 安全上下文 文件
chcon -R -t 安全上下文 目录
更改上安全下文后,file2文件在lftp 访问服务器会发现此文件可被访问成功
临时更改,重启后会恢复默认。
2.永久更改 目录或文件 的安全上下文
mkdir /westos
设定 thermal 用户登陆ftp服务时默认家目录为/westos,在其下建立 file{1…3}文件。
当用 thermal 用户登陆ftp时 /westos 中的内容无法访问,因为 selinux 安全上下文不匹配
semanager fcontent -l | grep /ftpuserdir /var/ftp
内核安全上下文列表中无/westos信息,有/var/ftp/的信息:
semanager fcontent -a -t public_content_t /ftpuserdir’(/.)?’ ## (/.)? 表示目录中将要出现的内容
##此命令只添加列表信息,当前不生效
## 注意()为特殊字符,要用单引号引起来,-a 添加,-t 指定内容,重新查看列表出现westos的安全上下文
此时我们查看 /westos 的目录是否改变:
没有改变,则此时我们应刷新安全上下文
restorecon -R v v F /westos/ ##刷新文件安全上下文
此时本地用户可以看见/westos 下的内容
#########################
4.sebool
#########################
SEBOOL:
selinux 对服务功能能添加的开关
- 当selinux开启时,匿名用户无法上传文件
2.修改/var/ftp/pub,目录的权限为777
还是无法上传。
3.修改上下文可写
原来:
现在:
发现仍然无法上传
4. getsebool -a | grep ftp ##查看ftp的功能开关
- setsebool -P ftpd_anon_write=1|on ##表示开启此匿名用户写的功能,-P,永久设定
再上传文件:
上传成功。
#########################
5.setrouble
#########################
/mnt/建立文件,传到 /var/ftp/pub 在访问ftp时看不到上传的文件:
下载 setrouble:
dnf install setroubleshoot-server-3.3.19-1.el8.x86_64 -y
然后使用sealert命令,即可看到问题喝解决方案
sealert -a /var/log/audit/audit.log ##分析日志并提供解决方案
利用上述提供的解决方案,即可解决问题
可以看出文件test出现