linux系统中selinux的简介与用法 - Go语言中文社区

linux系统中selinux的简介与用法


.selinux的简介

    1.什么是selinux:

       selinux(security enhanced linux)安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统。

       selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

    2.selinux有两个级别 强制和警告  setenforce  0|1  0表示警告(Permissive),1表示强制(Enforcing)

    3.selinux相当于一个插件  (内核级的插件)

    4.selinux功能开启后,会关闭系统中不安全的功能

    5.查看日志中的警告:cat /var/log/audit/audit.log

    6.修改selinux的状态:

        vim /etc/sysonfig/selinux

        修改为enforcing

        reboot

        getfenforce   

     7.selinux有两个功能: 程序访问文件  安全上下文

                        程序访问功能  sebool

 

 

二,selinux的用法:影响文件的安全上下文

 

(一)修改文件的安全上下文:

  我们从别的地方复制一个文件到/var/ftp,而当我们登陆lftp之后,发现看不到该文件,是因为这个文件的安全上下文和/var/ftp的安全上下文不匹配,这就是selinux的保护机制,所以我们需要将这个文件的安全上下文修改和/var/ftp的达到一致。

     1.touch /mnt/file1

     2.mv /mnt/file1 /var/ftp       为什么是移动而不是复制,移动是重命名的过程,文件的属性和权限不会改变,而复制是新建                                                   的过程,文件的属性和权限等等可能会发生改变。

     3.lftp 172.25.254.210   ls

          

     4.touch /var/ftp/file2

     5.lftp 172.25.254.210 ls

     6.cd /var/ftp

     7.ls -Z                            显示/var/ftp的安全上下文的类型

                       或者 semanager fcontext -l | grep /var/ftp  查看/var/ftp的安全上下文           

      

     8.chcon -t public_context_t file1   修改file1的安全上下文           

     9.lftp 172.25.254.210    ls

          

semanage fcontext -l  显示内核已经记录的安全上下文

 

(二)修改目录的安全上下文

 

    /var/ftp是lftp的默认发布目录,它默认的安全上下文是public_content_t,如果我们想要修改/var/ftp的默认发布目录,就必须修改这个新的发布目录的安全上下文。

   1.mkdir /jay

   2.touch /jay/file

   3.vim /etc/vsftpd/vsftpd.conf

       anon_root=/jay

   4.systemctl restart vsftpd

   5.lftp 172.25.254.210

   6.ls  不会显示/jay和/jay里边的文件,因为其安全上下文不是content_public_t

          setenforce 0/1   ls后可以显示里边的文件    说明这个问题的出现和selinux有关系

           

   7.修改/jay目录的安全上下文有两种方法,一种是临时的,一种是永久的

      1)临时的:

               chcon -t public_content_t /jay -R      -R表示递归

               修改selinux的配置文件,将selinux修改为disable后重启,再修改为enfrocing重启,/jay的安全上下文会变回原样。

      2)永久的:

               semanage fcontext -a -t public_content_t '/jay(/.*)?'修改/jay和底下的所有文件的安全上下文

                                                                                         -a表示增加,-t表示类型

              semanage fcontext -l |grep /jay   查看/jay的安全上下文

              restorecon -FvvR /jay  递归刷新并显示刷新过程

              

   8.lftp 172.25.254.210

   9.ls

 

  

二,selinux的用法:对进程本身开关的影响sebool值

 

selinux会对我们系统中有些功能加上开关,我们在使用这些功能时,应该先打开开关才可以使用

 

(一).功能开关的影响

1.lftp 172.25.254.210 -u student

2.put /etc/passwd           显示不能上传,如果将selinux的值修改为0,则可以上传,说明这是selinux对上传文件的影响

        

3.getsebool -a |grep ftp       显示ftp的上传功能未开启

4.setsebool -P ftp_home_dir on        打开ftp的上传功能 -P表示永久打开

        

5.getsebool -a |grep ftp       显示ftp的上传功能开启

6.lftp 172.25.254.210 -u student

7.put /etc/group

        

 

(二).selinux的排错工具: setroubleshoot-server

 

1.touch /mnt/file

2.mv /mnt/file /var/ftp

3.在浏览器里输入ftp://172.25.254.210/file   不能看到自己建立的文件,这是由于安全上下文的关系

4.清空/var/log/messages

5.在浏览器处刷新,查看/var/log/messages

6.里边有解决方案:里边说明解决方案在/var/log/audit/audit.log里

    解决方案是:restorecon -v /var/ftp/*

7.这个解决方案是软件setroubleshoot-server-3.2.17.e17.x86_64提供的

8.如果我们卸载这个软件,那么在/var/log/audit/audit.log里边就不会再有解决方案

 

 

(三).selinux影响服务所使用的资源

 

1.安装http服务

2.cat /etc/services |grep http   查看http的tcp协议使用默认端口为80

   

3.vim /etc/httpd/conf/httpd.conf   将第42行httpd的tcp协议端口修改为6666 

    

    

4.systemctl restart httpd 这时候我们发现不能重启服务

5.setforence 0   将selinux的状态设置为警告

6.systemctl restart httpd    这时候我们发现可以重启服务,说明这是selinux的保护机制

    

7.semanage port -l | grep http 查看http服务的tcp协议默认端口列表里没有6666

    

8.semanage port -a -t http_port_t -p tcp 6666  将6666端口添加到tcp列表的默认端口中

9.semanage port -l | grep http 查看6666端口已经添加到tcp的端口列表中

   

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jay_youth/article/details/80327599
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 23:43:21
  • 阅读 ( 864 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢