SElinux:
SElinux是内核级加强型防火墙,更改配置文件后必须重启。
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
SElinux三种模式:
- enforcing——Linux下SElinux所设置的安全策略都会被启用.所有与SElinux安全策略有关的服务或者程序都会被策略阻止.也就是,所有操作都会进行权限检查。(enforing下ftp不能进行写操作)
- permissive——Linux下SElinux所设置的安全策略都会被启动,但是所有与SElinux安全策略有关的服务或者程序不会被策略阻止,但是会收到警告.也就是,所有操作都被允许(即没有MAC),但是如果有违反权限的话,会记录日志
- disable——关闭 SElinux,相当于系统没有安装 SElinux一样
将SElinux设置为enforing后,将其他文件移入/var/ftp中,此时匿名用户登陆后看不到此文件:
server中:
touch /westos
mv /westos /var/ftp
desktop中;
lftp 172.25.254.128 #看不到westos
安全上下文——SELinux 的核心:
安全上下文有四个字段,分别用冒号隔开。
例:
system_u:object_r:public_content_t:s0
用户: 角色: 类型: 级别
查看/var/ftp中的文件安全上下文
ls -Z /var/ftp
文件安全上下文由文件创建的位置和创建文件的进程所决定。而且系统有一套默认值,用户也可以对默认值进行设定。
ps auxZ | grep vsftpd #查看进程安全上下文
只有当文件安全上下文与进程安全上下文相互对应,进程才可以使用文件。
临时更改SElinux模式:
getenforce #查看当前SElinux模式
---->enforcing
setenforce 0 #更改SElinux模式为pemissive
getenforce
---->permissive
setenforce 1 #更改SElinux模式为enforcing
getenforce
---->enforcing
查看警告信息:
#此时SElinux是permissive模式
cat /var/log/audit/audit.log
修改文件安全上下文(临时的):
chcon -t public_content_t /avr/ftp/westos1
修改目录安全上下文(临时的):
mkdir /westos
touch /westos/westosfile{1..5}
ls -Zd /westos
vim /etc/vsftpd/vsftpd.conf
####
anon_root=/westos
####
lftp 172.25.254.128 不能访问
setenforce 0
chcon -t public_content_t /westos -R
ls -Zd /westos
把SElinux重启一次,安全上下文又变回default_t
修改安全上下文:
semanage fcontext -l | grep /var/ftp
semanage fcontext -l | grep /westos
semanage fcontext -a -t public_content_t /westos #创建
semanage fcontext -d -t public_content_t /westos #删除
semanage fcontext -l | grep /westos #只改变了westos目录的安全上下文
restorecon -RvvF /westos #R递归、vv显示过程、F刷新——刷新目录
rm -fr /westos
mkdir /westos
touch /westos/file{1..5}
semanage fcontext -a -t public_content_t '/westos(/.*)?'
restorecon -RvvF /westos
控制链接后各自的家目录:
getsebool -a | grep ftp #对家目录的控制和链接
ftp_home_dir --> off
setsebool -P ftp_home_dir on #本地用户可以写,可以删除
SElinux排错——permissive(由一个插件提供的)
rpm -qa | grep setroubleshoot