> RedHat >

RHCE7认证学习笔记22——管理SELinux安全

RHCE7认证学习笔记22——管理SELinux安全

一、ugo模式主动访问控制DAC

文件的权限控制ugo  rwx

二、selinux强制访问控制MAC

每个文件资源都有一个标记,特定标记的进程,只能访问特定标记的资源,无法访问其他资源,即使资源的权限设置为777(rwx)

三、查看和设置文件和进程的安全标记

使用-Z的选项可以查看文件和进程的标记,以httpd服务为例子:

[root@itnetcn tmp]# ls -Z

--wx-----x. root  root  unconfined_u:object_r:user_tmp_t:s0 a1

-----w----. root  root  unconfined_u:object_r:user_tmp_t:s0 a4

---------x. root  root  unconfined_u:object_r:user_tmp_t:s0 a5

[root@itnetcn html]# ps auxZ|grep httpd

system_u:system_r:httpd_t:s0    root      5477  0.1  0.4 213692  4904 ?        Ss

[root@itnetcn html]# ls -ldZ /var/www/html/

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/

在根下创建一个www的目录,并在/var/www/html下面做一个www的软链接:

[root@itnetcn html]# mkdir /www

[root@itnetcn html]# ln -s /www/ www

[root@itnetcn html]# ls

index.html  iso  ks.cfg  www

/www目录的默认的上上下文为,没有标记为httpd:

[root@itnetcn html]# ls -ldZ /www/

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /www/

如果这时候启动httpd服务,打开浏览器,访问www目录,会提示不被允许:

RHCE7认证学习笔记22——管理SELinuxx安全

修改/www目录的上下文,使其上下文与/var/www/html一致,再打开www目录即可访问:

[root@itnetcn html]# chcon -R --reference=/var/www/html/ /www

[root@itnetcn html]# ls -ldZ /www/

drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /www/

RHCE7认证学习笔记22——管理SELinuxx安全

使用restorecon命令可以恢复文件资源的默认上下文:

[root@itnetcn html]# ls -ldZ /www/

drwxr-xr-x. root root system_u:object_r:default_t:s0  /www/

使用chcon命令只能临时改变文件资源的上下文,重启电脑则会恢复默认值,要想永久的修改默认的上下文,则需使用semanage命令:

[root@itnetcn html]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'

使用restorcon命令再恢复默认上下文,则恢复的是最新设置的上下文

使用-d选项可以删除默认的上下文:

[root@itnetcn html]# semanage fcontext -d -t httpd_sys_content_t '/www(/.*)?'

四、selinux的三种模式

1、enforcing

使用getenforce可以查看系统当前的模式:

[root@itnetcn html]# getenforce 

Enforcing

不符合selinux模式则会报警,同时会阻止相关的操作

2、permissive

切换到permissive模式,使用setenforce

[root@itnetcn html]# setenforce 0

[root@itnetcn html]# getenforce 

Permissive

不符合selinux模式的操作,permissive会有警报,但是不会阻止相关的操作;

3、disable

在/etc/selinux/config文件中可永久修改selinux模式:

五、修改selinux模式的布尔值

使用getsebool -a命令查看所有的布尔值

[root@itnetcn html]# getsebool -a

abrt_anon_write --> off

abrt_handle_event --> off

abrt_upload_watch_anon_write --> on

如果搭建了某个服务,在客户端访问该服务,写不进任何东西,可以按以下步骤检查:

1、检查配置文件是否开启了相关的写权限;

2、文件系统权限

3、selinux上下文和布尔值是否开启了相关的权限

图形化管理selinux可以安装相关的包,使用system-config-selinux命令;



(责任编辑:IT)