SELinux 安全子系统
SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。RHEL 7系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。
SELinux服务有三种配置模式:
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
我这里默认就是 enforcing的(可查看该服务的主配置文件 /etc/selinux/config)。
vi /etc/selinux/config
关闭:SELINUX=disabled
开启:SELINUX=1
重启
reboot
查看状态
sestatus
把SELinux当前的运行模式修改为禁用(通过命令 setenforce [0|1],0代表禁用、1代表启用),该修改在重启系统后失效
可以通过 getenforce 命令查看 SELinux服务的运行状态。
# setenforce 0
# getenforce
Permissive
把SELinux服务恢复到强制启用安全策略模式,然后分别查看原始网站数据的保存目录与当前网站数据的保存目录是否拥有不同的SELinux安全上下文值:
# ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/htm
# ls -Zd /home/safiri
drwx------. safiri safiri unconfined_u:object_r:user_home_dir_t:s0 /home/safiri
用户段system_u代表系统进程的身份 角色段object_r代表文件目录的角色 类型段httpd_sys_content_t代表网站服务的系统文件。
针对当前这种情况,我们只需要使用semanage命令,将当前网站目录/home/wwwroot的SELinux安全上下文修改为跟原始网站目录的一样就可以了。
semanage 命令
semanage命令用于管理SELinux的策略,格式为“semanage [选项] [文件]”。常用参数及作用: -l 查询、-a 添加、-m 修改、-d 删除
向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序所访问到:
设置后,还需使用 restorecon 命令使设置立即生效,-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。最后,再次刷新页面,就可以正常看到网页内容了。
安装semanage
# yum provides semanage
***********
*********
****省略内容****
***********
# Filename : /usr/sbin/semanage
以上命令执行成功后,再执行:
# yum -y install policycoreutils-python.x86_64
可能用到的安装seinfo/sesearch
# yum install setools-console.x86_64