一:了解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这个选项(修改)
标签:object,selinux,s0,controller,home,上下文,root From: https://www.cnblogs.com/qm77/p/17816673.html