创新路
我们一直在努力

Linux之SELinux详解

    昨天的文章中粗略的提到了SELinux,下面我们仔细了解下SELinux

一、什么是SELinux

    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件(摘抄至百度百科),其实是一种访问控制体系,控制各个服务,让每个服务最大限度的减小其权限

二、SELinux怎么用

    SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,在不做任何更改的情况下,默认开机就会自动启动这个服务

    

三、SELinux进程运行的三种模式

    1.三种模式

        enforcing:强制模式,一旦违反SELinux中的策略将会阻止并且写入日志

        permissive:宽松模式,就算违反的一些策略不会阻止,但会记录下来

        disabled:关闭模式,完全不运行SELinux

        注意:记录到的日志是在/var/log/audit/audit.log中

        setroubleshoot(只记录错误信息)

        auditd(记录详细信息)

    2.临时更改

        (1)查询当前是什么模式

                getenforce

        (2)查询当前SELinux的策略

                sestatus

        (3)更改当前的模式

                setenforce 0或1    //0代表是宽松模式permissive,1代表是强制模式enforcing,即时生效,但是重启失效

        (4)永久更改模式

                在配置文件中/etc/selinux/config设置

                SELINUX=enforcing

四、SELinux安全上下文

    1.SELinux安全上下文:在Linux中一切皆文件,每个进程都会访问一些文件,怎么去区分这个进程是不是能访问这个文件,那么就用SELinux安全上下文,这个就是每个文件的一种标签,可以让进程去访问时是不是可以访问的文件

    2.查看进程的SE安全上下文(极少用到)

        ps auxZ | grep httpd //这里我们需要查看的进程例为httpd

        system_u:object_r:httpd_sys_content_t:s0:[类别]
         身份字段:角色:       类型:                      灵敏度:[类别]

    2.查看文件的SE标签

        ls -Z 文件xxx    //目录加d

    3.改变文件的标签

        chcon -R –reference=被模仿的文件 需要改变的文件

        //以被模仿的文件为范本,把标签复制给需要改变的文件

    注意:如果是移动文件mv,则安全上下文不变,如果是拷贝文件cp,那么安全上下文会发生变化

    例:httpd中,改变了网页站点的主目录,原来是/var/www  现在是/lxy,那么就需要复制/var/www的SE标签给/lxy才能让httpd服务能访问到这个目录

        chcon -R –reference=/var/www /lxy

五、SELinux中的布尔值

    1.在SELinux中设置了很多的布尔值,这些布尔值其实就是一些服务应用的开关,限制了服务的一些操作

    2.查看所有布尔值

        getsebool -a

        例:查看httpd服务的一些布尔值

        getsebool -a | grep samba         

            allow_httpd_anon_write –> off

            allow_httpd_mod_auth_ntlm_winbind –> off

            allow_httpd_mod_auth_pam –> off

            allow_httpd_sys_script_anon_write –> off

            httpd_builtin_scripting –> on

            httpd_can_check_spam –> off

            httpd_can_network_connect –> off

            httpd_can_network_connect_cobbler –> off

            …

     3.设置布尔值

        setsebool  xxxx  on或off

        例:设置samba服务的布尔值

        setsebool samba_export_all_ro on

        注意:如果需要永久更改布尔值需要加 -p,且更改的过程中系统会卡住一小会儿

        

        

                

    

未经允许不得转载:天府数据港官方信息博客 » Linux之SELinux详解

客官点个赞呗! (0)
分享到:

评论 抢沙发

评论前必须登录!

天府云博 - 做有态度的开发&运维&设计学习分享平台!

联系我们百度云主机