1.selinux
selinux内核级加强型火墙
起到限制服务功能,限制服务访问功能
配置环境
1.删除vsftpd下的配置环境,重装vsftpd服务,装完后开启服务
2.在/mnt/下建立文件file,并将建好的westos文件转移到/var/ftp/pub下。用ftp匿名访问,发现可以查看转移过来的文件,并且本地用户访问时可以上传文件
3.以上操作都是在selinux没有工作时实现的。当我们开启selinux后再执行上述操作
当用ftp匿名访问时发现查看不了file1,并且本地用户访问时不能上传文件
2.selinux的状态
selinux有三个状态,disable(关闭),permissive(警告),enforcing(强制)。
当由dissable向其他两个状态转换或者其他两个状态向disable转换时,需要修改配置文件/etc/sysconfig/selinux并重启虚拟机。
permissive与enforcing转换使用seteforce命令和修改配置文件/etc/sysconfig/selinux都可以,并且不用重启虚拟机
当selinux关闭时setenforce命令无法使用
getenforce----------查看selinux状态
setenforce 0----------更改selinux为警告状态
setenforce 1----------更改selinux为强制状态
3.安全上下文
ls -Z-------------查看文件安全上下文
临时修改安全上下文,重启selinux后会改回默认
chcon -t 安全上下文 dir -R
chcon -t 安全上下文 file
永久修改安全上下文
mkdir /lol
touch /lol/file{1..3}
aemanage fcontext -a -t public_content_t '/lol(/.*)?'-------------更改安全上下文,a表示添加,t表示类型
restorecon -FvvR /lol/---------------刷新/lol/目录安全上下文,vv显示过程,R表示递归
semanage fcontext -d /lol ----------------删除安全上下文列表中的/lol
4.selinux影响服务功能
getsebool -a | grep ftp ---------------查看关于ftp的所有sebool值
setbool -P ftp_home_dir on -----------------打开sebool值中 ftp_home_dir的开关
setsebool -P ftpd_anon_write on
chmod 775 /var/ftp/pub -------------修改权限
chgrp ftp /var/ftp/pub
chcon -t public_content_rw_t /var/ftp/pub---------修改安全上下文
然后本地用户就可以上传文件了
5.监控selinux错误信息
当由于selinux产生报错时
报错会在日志/var/log/messages里显示,当安装有setroubleshoot-server软件时,日志会提供解决方法