selinux的上下文

发布时间 2023-11-15 22:57:34作者: q_7

一:了解selinux的信息

selinux和防火墙和文件和目录的权限三种限制

要开启一个服务,这三个东西都要调试一下,才能正确的使用这个服务

selinux的介绍:

他是一个安全访问策略,用来确定进程可以访问哪些文件,服务对应的文件或者目录, 服务对应的端口,服务对应的进程 这三种

列子:

服务的实列(就是进程),所以也受selinux的保护,可以看成是文件和目录并行的权限系统:
如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问的权限限定,还要受进程对文件selinux上下文的限定,否则,就算是root用户运行的进程,也不一定能访问某个文件

二:selinux的三种模式

1)三种模式

enforcing:强制模式--拒绝非法访问并录入日志

permissive:警告模式---暂时允许访问并录入日志

disabled:禁用模式---允许访问--不录入日志

2)修改三种模式

[root@controller samba-share]# setenforce 0
[root@controller samba-share]# getenforce 
Permissive
[root@controller samba-share]# 

这种只是临时修改,重启后,会回复原样

#永久的修改,修改配置文件
SELINUX=disabled

 reboot重启selinux

selinux的状态发生改变才叫重启,否则不叫重启

 

三:seliniux的上下文

就是在linux系统里面,每个文件,进程,端口号都有安全标签,这个标签就是selinux安全策略

某个进程是否能访问文件,目录或者端口的工具

1:上下文的内容

使用ll -Z 就可以查看上下文的类型

[root@controller ~]#  ll -Z
total 23088
-rw-------. 1 root root system_u:object_r:admin_home_t:s0         1636 Nov 13 04:29 anaconda-ks.cfg
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 23633920 Nov 13 04:48 ansible2.9.iso
drwxr-xr-x. 2 root root unconfined_u:object_r:admin_home_t:s0        6 Nov 13 04:31 Desktopd 

第一个字段:用户

系统用户(system_u),未指定用户(unconfined_u)

第二个字段:角色

系统角色(system_u),未指定角色(unconfined_u),对象角色(object_u)

第三个字段:类型(最重要的)

以t结尾,三种类型的,进程的类型,端口的类型,文件的类型

都是一一对应的,否则,进程不能加载文件 

第四个字段:敏感度

0,1,2数值越大,敏感的程度就越高,有的进程就无法访问

 

2:上下文的操作

1:文件的上下文的操作

1)查看文件的上下文的2种方法

ll -Z

[root@controller ~]# ll -Z
total 23088
-rw-------. 1 root root system_u:object_r:admin_home_t:s0         1636 Nov 13 04:29 anaconda-ks.cfg
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 23633920 Nov 13 04:48 ansible2.9.iso
drwxr-xr-x. 2 root root unconfined_u:object_r:admin_home_t:s0        6 Nov 13 04:31 Desktops 

semanage fcontext -l |grep 刷选条件

[root@controller ~]# semanage fcontext -l |grep vsftpd
/etc/rc\.d/init\.d/vsftpd                          regular file       system_u:object_r:ftpd_initrc_exec_t:s0 
/usr/lib/systemd/system/vsftpd.*                   regular file       system_u:object_r:iptables_unit_file_t:s0 

2)修改文件的上下文操作

临时修改

chcon -t  文件的类型 文件

[root@controller ~]# ll -Z | grep 11
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0        0 Nov 16 06:32 11
[root@controller ~]# chcon -t admin_home_t 11
[root@controller ~]# ll -Z |grep 11
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0        0 Nov 16 06:32 11
[root@controller ~]#  

就是selinux的状态发生改变的话,就会恢复原样

永久修改

格式:

semanage fcontext -a  -t  类型 ‘路径(/.*)?’ 这个路径必须是绝对路径

[root@controller mnt]# semanage  fcontext -a -t admin_home_t "/mnt/11(.*)?"
[root@controller mnt]# 

#刷新一下
[root@controller mnt]# restorecon -RFv /mnt/11
Relabeled /mnt/11 from unconfined_u:object_r:mnt_t:s0 to system_u:object_r:admin_home_t:s0

这样就改变了

 

就是先要-a 可以修改,使用了这个之后,就能使用-m这个选项(修改)