`

Selinux初试及httpd常规权限控制

阅读更多

Selinux初试及httpd常规权限控制

 

1、DAC(自主存取控制)

依据程序运行时的身份决定权限,是大部分操作系统的权限存取控制方式。也就是依据文件的own,group,other/r,w,x权限进行限制。Root有最高权限无法限制。r,w,x权限划分太粗糙。无法针对不同的进程实现限制。

 

2、MAC(强制存取控制)

依据条件决定是否有存取权限。可以规范个别细致的项目进行存取控制,提供完整的彻底化规范限制。可以对文件,目录,网络,套接字等进行规范,所有动作必须先得到DAC授权,然后得到MAC授权才可以存取。

 

3、TE(类型强制)

所有操作系统访问控制都是以关联的客体和主体的某种类型的访问控制属性为基础的。在SELinux中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。

 

4、Selinux对一些命令做了修改.

ls -Z

ps -Zaux

id -Z

例如:[root@localhost ~]# id -Z

root:system_r:unconfined_t:SystemLow-SystemHigh

在SELinux中,访问控制属性总是安全上下文三人组形式,所有客体和主体都有一个关联的安全上下文,因为SELinux的主要访问控制特性是类型强制,安全上下文中的类型标识符决定了访问权。如上例中unconfined_t决定访问权限。

 

5、安全上下文

安全上下文是一个简单的、一致的访问控制属性,在SELinux中,类型标识符是安全上下文的主要组成部分,由于历史原因,一个进程的类型通常被称为一个域(domain),"域"和"域类型"意思都是一个.

 

6、类型

安全上下文中的用户和角色标识符除了对强制有一点约束之外对类型强制访问控制策略没什么影响,对于进程,用户和角色标识符显得更有意义,因为它们用于控制类型和用户标识符的联合体,这样就会Linux用户账号关联起来;然而,对于客体,用户和角色标识符几乎很少使用,为了规范管理,客体的角色常常是object_r,客体的用户常常是创建客体的进程的用户标识符,它们在访问控制上没什么作用。

 

用一个例子来解释以上概念:

假如我们设定

1.httpd这个进程使用httpd_t这个域类型运行.

2.将httpd进程使用的端口标记为httpd_port_t类型.

3.将网页目录标记为httpd_sys_content_t类型.

4.限制以httpd_t域运行的httpd程序只能监听httpd_port_t类型的端口,并限制此域的进程只能存取标记为httpd_sys_content_t的网页文件。

 

7、httpd常规使用参考

上述只是简单的概念,便于理解,下面以httpd为例,做实际操作说明。

    1)httpd启动时需要使用端口80、81、443等,需要开通权限

# 查看当前httpd的端口权限

[root@test /]# semanage port -l|grep http

http_cache_port_t              tcp      3128, 8080, 8118, 11211, 10001-10010

http_cache_port_t              udp      3130, 11211

http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

# 通常默认情况下80、443端口已经打开,现在需要添加对81端口的支持,使用以下命令

[root@test /]# semanage port -a -t http_port_t -p tcp 81

# 删除该端口

[root@test /]# semanage port -d -t http_port_t -p tcp 81

    2)由于开启ssl需要使用到服务器证书,证书文件存放在特定的目录下(例如:/myweb/ssl),由于目录权限问题导致启动失败。

错误提示:SSLCertificateFile: file '/myweb/ssl/server.crt' does not exist or is empty

# 修改目录权限,使httpd进程(域)有权限访问证书相关的配置文件(注意:由于目录存在多层,需要对每层目录的权限进行设置,-R表示目录及其子目录、文件)

# 默认情况下httpd的安装路径/etc/httpd/的权限就是httpd_config_t

chcon -R -t httpd_config_t /myweb/ssl/

chcon -t httpd_config_t /myweb/

    3)网站访问目录权限设置(httpd进程要求其访问的文件权限为httpd_sys_content_t)

# httpd默认安装的DocumentRoot指向的目录是/var/www/html,其权限默认已经设置为httpd_sys_content_t

# 如果修改DocumentRoot或设置了特定的Directory,则需要修改对应目录权限

# 例如:

chcon -t httpd_sys_content_t /myweb/www/

    4)网站使用到第三方模块

chcon -t httpd_modules_t /your/module/xxx.so

    5)如果需要启动第三方程序,则需要修改程序权限为httpd_exec_t

# 例如,在httpd中加入了modsecurity,安装路径在/etc/httpd/mlogc/

# 修改可执行程序/etc/httpd/mlogc/mlogc权限

chcon -t httpd_exec_t /etc/httpd/mlogc/mlogc

分享到:
评论

相关推荐

    SElinux管理及应用

    但在SELinux的保护下,即使服务被攻破,攻击者也只能控制该服务,而无法触及系统的整体权限。 SELinux的主要特点包括: 1. MAC(Mandatory Access Control):这是一种严格的访问控制机制,所有文件、目录和网络...

    selinux权限配置指南.pdf

    本文档《selinux权限配置指南.pdf》将重点讲解SELinux的基本概念、运行模式、语法格式以及权限配置的各个方面,特别是结合Android平台的SELinux(sepolicy)进行讲解,旨在帮助开发者更好地理解和配置SELinux,以...

    SELinux 类权限 ObjectClassesPerms

    SELinux通过对象类和权限,精细控制了操作系统中的每一个对象的行为。每个类都有相应的权限集,用于限制或授权特定的操作。这种精细化的权限管理使得系统更安全,防止了恶意软件的扩散和未授权的系统访问。了解和...

    linux-selinux功能及源码分析

    ### SELinux功能及源码分析 #### 概述 SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)安全扩展,它基于美国国家安全局(NSA)开发的最初版本,旨在为Linux系统提供更高级别的安全性。本书《linux-...

    SELinux手册 电子书 pdf 英文

    2. 安全上下文:SELinux 使用安全上下文来标识进程和文件的安全级别和权限。 3. 策略语言:SELinux 使用策略语言来描述访问控制规则和策略。 SELinux 的优点包括: 1. 提高系统安全性:SELinux 通过强制访问控制...

    selinux-example_SELinux_

    SELinux的核心理念是将权限分配给进程而不是用户,从而实现更细粒度的权限控制。 **一、SELinux的工作原理** SELinux基于策略与执行的分离原则。策略部分定义了系统中的安全规则,而执行部分则负责实施这些规则。...

    APK启动bin相关selinux权限

    在Android系统中,安全增强层(SELinux)是一种强制访问控制机制,用于强化系统的安全性和保护用户数据。在APK启动过程中,涉及到的bin文件权限是确保应用正确运行的关键环节,尤其是在基于MediaTek (MTK)平台的...

    selinux权限说明

    总结,Android 5.1的SELinux权限管理系统为平台提供了强大的安全保障,通过精细化的权限控制,有效地限制了潜在的恶意行为。理解和掌握SELinux机制对于Android系统的安全优化至关重要,同时也对开发人员提出了更高的...

    SELinux_Treble.pdf (Android8.0 sepolicy权限新特性,权限配置指导)

    **Android 8.0 SELinux与Treble架构的权限新特性** 在Android 8.0(API级别26)中,Google引入了重要的系统架构改进,以提高平台的可维护性和安全性,其中最显著的就是Treble项目和更新的SELinux策略。本文将深入...

    SELinux管理及应用

    ### SELinux管理及应用知识点详解 #### 一、SELinux简介 - **定义与起源**:SELinux(Security Enhanced Linux)是由美国国家安全局(National Security Agency, NSA)开发的一种安全增强型Linux系统。它构建在...

    selinux权限修改.pdf

    然而,在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有“万能的root权限”,也不能获取全部的权限。本文旨在结合具体案例,讲解如何根据log来快速解决90%的SELinux权限问题。 2. 调试确认...

    SELinux详解-中文版.pdf

    在第一部分“SELinux概述”中,作者首先追溯了操作系统访问控制的历史,对比了不同类型的访问控制机制,然后深入探讨了SELinux的安全概念和架构。第一章“背景”中,读者将了解到SELinux是如何作为访问控制机制引入...

    SElinux详解.pdf

    SELinux(Security-Enhanced Linux)是一种为Linux内核提供的强制访问控制(MAC)安全扩展。本节将详细解释SELinux的基础知识及其架构。 - **背景**:操作系统访问控制的历史和发展是理解SELinux的基础。从最早的...

    SELinux详解.pdf

    1. SELinux的基本概念:SELinux的核心思想是使用基于角色的访问控制(RBAC)和多级安全(MLS)策略,这些策略基于最小权限原则,为系统中所有对象定义了严格的安全策略。对象包括文件、目录、设备、套接字和进程等。...

    APK启动bin相关selinux权限基于mtkandroid6.0平台.rar

    APK启动过程中涉及的Selinux权限问题在Android系统中至关重要,尤其是在MediaTek(MTK)6.0平台上。Selinux(Security Enhanced Linux)是一种强制访问控制机制,它为Linux操作系统提供了一种强大的安全模型,旨在...

Global site tag (gtag.js) - Google Analytics