zoukankan      html  css  js  c++  java
  • Linux之强大的selinux

    简单点说,SELinux就是用来加强系统安全性的。它给一些特定程序(这些程序也在不断增加)做了一个沙箱,它将文件打上了一个安全标签,这些标签属于不同的类,也只能执行特定的操作,也就是规定了某个应用程序设定了你可以访问那些文件或目录。

    这里比较重要的知识点有:

    • selinux的工作原理
    • 工作模式和工作类型(selinux启用,布尔规则)
    • 安全上下文(上下文修改,安全标签,端口标签)
    • 日志管理

    查看SELinux当前状态:

    一、工作原理

    二、工作模式(运行状态)

    Enforcing、Permissive、Disabled

    1、获取当前SELinux运行状态

    getenforce
    可能返回结果有三种:Enforcing、Permissive 和 Disabled。

    Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止可疑行为,Enforcing 代表记录警告且阻止可疑行为。

    2、改变 SELinux 运行状态

    setenforce [ 1 | 0 ]

    切换disabled状态或者从disabled状态切换至别的状态都需要重启且只能修改配置文件。而enforceing(1)和Permissive(0)两种状态间切换不需要重启,重启时会为整个文件系统重新创建安全标签(touch /.autorelabel && reboot)。

    /boot/grub/grub.conf下修改状态优先级比/etc/selinux/config高

    若是想要永久变更系统 SELinux 运行环境,可以通过更改配置文件 /etc/sysconfig/selinux或/etc/selinux/config实现。

    工作类型(或策略):

    默认targeted类型,用来保护常见的网络服务,仅有限进程收到selinux控制,只监控容易被入侵的进程,centos5保护88个服务。

    布尔规则:

    SELinux根据不同的工作类型对这些规则打开或关闭(on|off<布尔值1|0>),然后通过规则的开启与关闭具体地限制不同进程对文件的读取。

    getsebool -a 或者 sestatus -b      # 查看当前工作类型下各个规则的开启与否

    setsebool -P 规则名称 [0|1]    # 修改当前工作类型下指定规则的开启关闭,-P表示同时修改文件使永久生效

    三、安全上下文

    安全上下文存在于进程与文件中,context随进程一起存入内存中,文件的context存放在其对应的inode中,因此进程在访问文件时,要先读取inode,再判断是否能够访问该文件。

    ls -Z   file # 显示文件的安全上下文
    ps -eZ   # 显示所有进程的安全上下文

    semanage来自policycoreutils-python包,centos 6上默认没安装.

    系统中的每个文件都会有context,使用ls -Z查询出来的context就是当前context,系统把每个文件的默认context记录下来并保存,这样系统记录下来的就是期望context。semanage命令可以管理每个文件的期望context,也叫期望标签。

    安全上下文(当前context):

    semanage fcontext -l                     # 查看所有的期望SELinux标签
    semanage fcontext -l                     # 查看所有的期望SELinux标签
    semanage fcontext -a -t type 目标目录     # 添加期望SELinux标签
    
    semanage fcontext -m -t type 目标目录     # 修改期望SELinux标签
    semanage fcontext -d -t type 目标目录     # 删除期望SELinux标签

    修改规范:

    semanage fcontext -a -t type 目录(/.*)?

    安全标签(期望context):标签错误将导致启动异常,文件不可用等故障。

    给文件重新打安全标签: 
     chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE... 
           chcon [OPTION]... --reference=RFILE FILE... 
     -R:递归打标; 
    恢复目录或文件默认的安全上下文: 
     restorecon [-R] /path/to/somewhere 

    端口标签:

    虽然听起来是修改端口号的,但是到底还是修改安全上下文的,我们用semanage工具,命令为semanage port

    查询某个服务的context type字段

      语法:semanage port -l |grep 服务名

    添加某个端口为指定服务的访问端口        

       语法:semanage port -a -t type -p 协议 端口号(不要与常用端口重复)

    例如添加ssh服务的端口号,默认为22

    四、SELinux日志管理

    yum install setroublesshoot*(重启生效)
        将错误的信息写入/var/log/message
    grep setroubleshoot/var/log/messages
    sealert-l UUID
        查看安全事件日志说明
    sealert-a /var/log/audit/audit.log
        扫描并分析日志
  • 相关阅读:
    C#基础笔记(第十四天)
    C#基础笔记(第十三天)
    C#基础整理(二)
    C#基础笔记(第十二天)
    C#基础笔记(第十一天)
    C#基础笔记(第十天)
    C#基础笔记(第九天)
    [PyTorch 学习笔记] 2.3 二十二种 transforms 图片数据预处理方法
    [PyTorch 学习笔记] 2.2 图片预处理 transforms 模块机制
    [PyTorch 学习笔记] 2.1 DataLoader 与 DataSet
  • 原文地址:https://www.cnblogs.com/duanxin1/p/9784178.html
Copyright © 2011-2022 走看看