• selinux


    SELinux(Security-Enhanced Linux)是美国国家安全局在Linux开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统。

    Linux系统使用SELinux技术的目的是为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。

    如果一般权限和防火墙是“门窗”的话,那么SELinux便是在门窗外面安装的“防护栏”,可以让系统内部更加安全。

    SELinux域和SELinux安全上下文称为Linux系统中的双保险,系统内的服务程序只能规规矩矩地拿到自己所应该获取的资源,这样即便黑客入侵了系统,也无法利用系统内的服务程序进行越权操作。

    但是,SELinux服务比较复杂,配置难度也很大,从而导致很多服务器在部署好Linux系统后直接将SELinux禁用了。这绝对不是明智的选择。


     SELinux服务有3种配置模式,具体如下。

    enforcing:强制启用安全策略模式,将拦截服务的不合法请求。

    permissive:遇到服务越权访问时,只发出警告而不强制拦截。

    disabled:对于越权的行为不警告也不拦截。

    /etc/selinux/config是selinux的主要配置文件

    [root@linuxprobe ~]# cat /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted

    SELinux服务的主配置文件中,定义的是SELinux的默认运行状态,可以将其理解为系统重启后的状态,因此它不会在更改后立即生效。

    可以使用getenforce命令获得当前SELinux服务的运行模式:

    [root@linuxprobe ~]# getenforce

    可以用setenforce [0|1]命令修改SELinux当前的运行模式(0为禁用,1为启用)。

    注意,这种修改只是临时的,在系统重启后就会失效,永久生效的话就需要修改/etc/selinux/config配置文件。

    [root@linuxprobe ~]# setenforce 0
    [root@linuxprobe ~]# getenforce
    Permissive

    在ls命令中,-Z参数用于查看文件的安全上下文值,-d参数代表对象是个文件夹。

    [root@linuxprobe ~]# ls -Zd /var/www/html
    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html

    在文件上设置的SELinux安全上下文是由用户段、角色段以及类型段等多个信息项共同组成的。其中,用户段system_u代表系统进程的身份,角色段object_r代表文件目录的角色,类型段httpd_sys_content_t代表网站服务的系统文件。

    semanage命令用于管理SELinux的策略,英文全称为“SELinux manage”,语法格式为“semanage [参数] [文件]”。

    SELinux服务极大地提升了Linux系统的安全性,将用户权限牢牢地锁在笼子里。

    semanage命令不仅能够像传统的chcon命令那样设置文件、目录的策略,还能够管理网络端口、消息接口(这些新特性将在本章后文中涵盖)。使用semanage命令时,经常用到的几个参数及其作用如下所示:

    参数 作用
    -l 查询
    -a 添加
    -m 修改
    -d 删除

    例如,向新的网站数据目录中新添加一条SELinux安全上下文,让这个目录以及里面的所有文件能够被httpd服务程序访问到:

    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

    在执行上述设置之后,还无法立即访问网站,还需要使用restorecon命令将设置好的SELinux安全上下文立即生效。在使用restorecon命令时,可以加上-Rv参数对指定的目录进行递归操作,以及显示SELinux安全上下文的修改过程。

    [root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
  • 相关阅读:
    FPGA-中值滤波
    FPGA-中值滤波
    FPGA-shift_ram代码
    FPGA实现-shift_ram_3x3矩阵实现
    图像处理-中值滤波
    python-str
    ignore-certificate-errors(chrome)
    selenium-python-Cookie跳过登录验证码
    Angular2
    Angular2
  • 原文地址:https://www.cnblogs.com/wushuai2018/p/15696588.html
Copyright © 2020-2023  润新知