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