1、selinux
(1)准备工作
<1>. ip地址
<2> .软件仓库
<3>. 关闭selinux 位置 :/etc/selinux/config
<4> .重启系统
<5> .安装vsftpd
<6> .chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
<7> .vim /etc/vsftpd/vsftpd.conf
匿名用户登录开启
匿名用户上传开启
<8> .systemctl restart vsftpd
systemctl disable --now firewalld
getenforce
(2)对于文件的影响:
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载标签内记录程序和文件的安全上下文(context)
(3)对于程序功能的影响:
当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭当需要此功能时需要手动开启功能开关此开关叫做sebool
2.selinux的状态及管理
(1)selinux的开启
开启方式:vim /etc/selinux/config
SELINUX=disabled //selinux关闭
SELINUX=enforcing //selinux开机设定为强制状态此状态为selinux开启
SELINUX=permissive //selinux开机设定为警告状态此状态为selinux开启
注:selinux开启或关闭需要重启系统才会生效
enforcing:
不符合条件一定不能被允许,并会收到警告信息
permissive:
不符合条件被允许,并会收到警告信息
(2)selinux状态的查看
getenforce
selinux开启后强制和警告级别的转换
setenforce 0 //警告
setenforce 1 //强制
(3)selinux日志
位置: /var/log/audit/audit.log
3.selinux的安全上下文
(1)安全上下文的查看
ls -Z //查看文件的安全上下文
ls -Zd //查看目录的安全上下文
ps axZ //查看进程的安全上下文
(2)临时修改
chcon -t public_content_t /mnt/file //修改文件
chcon -Rt public_content_t /mnt //修改目录
ls -Z /mnt
(3)永久修改
semanage fcontext -a -t mnt_t '/mnt(/.*)?' //修改mnt目录及其中所有文件的安全上下文
ls -Z /mnt
restorecon -RvvF /mnt/
ls -Z /mnt
4.sebool功能介绍
(1)远程登录上传文件
dnf install lftp -y
chcon -t public_content_rw_t /var/ftp/pub/ //更改安全上下文
ls -Zd /var/ftp/pub/
lftp 192.168.2.200 //远程登录
发现无法上传文件
getsebool -a | grep ftp //查看bool列表
setsebool -P ftpd_anon_write on //设置bool列表
lftp 192.168.2.200 //远程登录
发现可以正常上传文件