SElinux系统级安全内核
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的 实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的 任务中所需要文件。
更改selinux的状态:
1.永久性修改
vim /etc/sysconfig/selinux
文件内容如下
selinux有三个状态:
1.enforcing,强制性状态,系统会直接禁止危险性操作
2.permissive,警示性状态,系统不会禁止危险性操作,但是会将危险性操作记录下来
3.disable,关闭状态
查看selinux状态命令:
sestatus
临时设置selinux的状态:
setenforce和getenforce
setenforce 1 | 0 注:1表示enforcing状态,0表示permissive状态
getenforce ###显示selinux状态
理解安全上下文:
准备工作:将selinux的工作状态修改为enforcing
1.在/mnt/目录下创建testfile,此时testfile文件的安全上下文是 mnt_t:
将testfile文件移动到/var/ftp/目录下:
注这里只能是mv,而不能是cp,因为mv命令移动过去的文件的安区上下文不会改变,但是cp移动过去的文件的安全上下文会变成目标目录的安全上下文。如下图:
lftp 172.25.80.106 ——> ls
此时查看不到testfile文件,这是因为在用户访问文件的时候系统会对文件的上下文标签进行查看,
chcon -t public_content_t testfile ###此设定是临时的
将testfile文件的安全上下文修改为public_content_t,
lftp 172.25.80.106——>ls,此时可以看的见testfile文件,如下图所示:
chcon -t public_content_t /westos/ -R 修改westos目录的访问标签,加上-R表示递归
ls -Zd /westos/ 查看文件的上下文标签
经过上述实验相信读者已经对selinux有了一定的理解。
但是chcon -t ***** 这条命令对于文件的上下文设定是临时的,在重启机器之后设定会消失
那么如何永久设定文件的上下文标签?
semanage fcontext -a -t public_content_t '/westos(/.*)?'
semanage fcontext -l |grep westos ###系统会记录文件的上下文标签,查看westos,是不是在记录表里面,如果在记录表里面,表示设定就是永久的
但是此时查看/westos/文件的安全上下文仍然是default_t:
restorecon -FvvR /westos/ ###更新/westos/目录的上下文
此时查看westos文件的安全上下文,此时的安全上下文已经更新了:
修改本地用户的上传权限
getsebool -a |grep ftpd
setsebool -P ftp_home_dir on(后面01也可以设定) ##将用户的写权限打开,-P表示永久