• SELinux 权限设置


    SELinux 权限设置

    一、SELinux简介

    SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能。比MS NT所谓的C2等高得多。

    应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并提供对机密性和完整性有很高要求的信息很高的安全保障。 SELinux vs Linux 普通Linux安全和传统Unix系统一样,基于自主存取控制方法,即DAC,只要符合规定的权限,如规定的所有者和文件属性等,就可存取资源。在传统的安全机制下,一些通过setuid/setgid的程序就产生了严重安全隐患,甚至一些错误的配置就可引发巨大的漏洞,被轻易攻击。

    而SELinux则基于强制存取控制方法,即MAC,透过强制性的安全策略,应用程序或用户必须同时符合DAC及对应SELinux的MAC才能进行正常操作,否则都将遭到拒绝或失败,而这些问题将不会影响其他正常运作的程序和应用,并保持它们的安全系统结构。

    二、SELinux主要配制文件

    SELinux主要配制文件位于/etc/selinux/下。在网络中的服务器,建议开启SELinx,以提高系统的安全性。我这里通过命令方式来改变SELinx的安全策略,就不在对SELinux的配制文件做具体说明。

    三、SELinux常用的命令

    Ø ls –Z | ps –Z | id –Z

    分别用于查看文件(夹)、进程和用户的SELinx属性。最常用的是ls -Z

    Ø sestatus

    查看当前SELinux的运行状态

    Ø setenforce

    在SELinux为启动模式下,用此命令可以暂时停用SELinux

    Ø getsebool

    查看当前Policy(策略)的布尔值

    Ø setsebool

    设置Policy的布尔值,以启用或停用某项Policy

    Ø chcon

    改变文件或文件夹的content标记

    四、SELinux实用案例

    4.1 SELinux对Apache的保护

    新安装的wordpress位于/vogins/share/wordpress下,按照系统的默认策略,/vogins,/vogins/share的SELinux属性为file_t,而这是不允许httpd进程直接访问的。为此,需要做如下高调整:

    1.   改变/vogins,/vogins/share的SELinux属性
      

    Shell> chcon –tvar_t /vogins

    Shell> chcon –tvar_t /vogins/share

    1.   改变wrodpress目录的SELinux属性
      

    Shell> chcon -R -t httpd_sys_content_t /wordpress

    1.   允许apache进程访问mysql
      

    setsebool -P httpd_can_network_connect=1

    1.   关于Apache里虚拟主机的配制就里就不多说,重新启动apache,就可以正常访问wordpress
      

    Shell>/etc/init.d/httpd start

    注意:如果出现不能访问的情况,请查看/var/log/messages里的日志。一般来说,按照提示就可以解决了。

    1. 可以在 Apache 文档根目录中添加、删除和编辑文件。现在您已准备好添加内容,例如静态网站或 PHP 应用程序。
    semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/site/run/frontend/runtime' && restorecon -v '/var/www/html/site/run/frontend/runtime'
    
    ***主要是此命令改变role后才生效
    chcon -R -t httpd_sys_rw_content_t /var/www/html/
    
    SELinux 违规日志保存在 /var/log/audit/audit.log 中。

    当开启了 SELinux 之后,很多服务的一些正常行为都会被视为违规行为(标题及下文中的错误均指违规行为)。

    这时候我们就需要借助 SELinux 违规日志来分析解决。

    SELinux 违规日志保存在 /var/log/audit/audit.log 中。

    /var/log/audit/audit.log 的内容大概是这样的。

    type=LOGIN msg=audit(1507898701.391:515): pid=8523 uid=0 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=25 res=1

    type=USER_START msg=audit(1507898701.421:516): pid=8523 uid=0 auid=0 ses=25 subj=system_u:system_r:crond_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'

    ...

    该文件的内容很多,而且混有很多与 SELinux 错误无关的系统审计日志。我们要借助 sealert 这个实用工具来帮忙分析(如果提示找不到命令的话请安装 setroubleshoot 软件包)。

    5.2 使用sealert分析错误

    命令基本用法

    sealert -a /var/log/audit/audit.log

  • 相关阅读:
    简单的react-dom.js react.js 中的源码手写
    回顾vue源码理解到哪记录到哪
    一道很有纪念意义的算法题之多维数组去重,不降维
    下载文件.xlsx .csv 或者下载压缩包
    koa+mysql简单实现查询功能
    幽灵空白节点解决方案,史上最明白
    useCallback,useMemo源码
    useContext源码解读
    useEffect源码
    Hadoop 学习笔记(二)Hadoop 本地运行环境搭建及简单应用
  • 原文地址:https://www.cnblogs.com/h-gallop/p/11646135.html
Copyright © 2020-2023  润新知