selinux_example

合集下载

SELinux中文教程

SELinux中文教程

Getting Started with SE Linux HOWTO:the new SE LinuxGetting Started with SE Linux HOWTO:the new SE Linux(简体中文版)Getting Started with SE Linux HOWTO:the new SE LinuxGetting Started with SE Linux HOWTO: the new SE Linux(译者注:本文的最原始版本为2004年3月所写,此份HOWTO是作者在今年2月根据最新的SE Linux所作的修改后的版本。

新的SE Linux与以前的有比较大的变化,而且这项技术本身也正在飞速的发展,并未最后成熟。

阅读本文是需要对Linux本身有一定深度的了解作为基础的。

本文并不是Linux的初级教程,但却是SE Linux技术的初级教程。

)原著:Faye Coker, March 2004.faye@中文译者:邹立巍, 2006年7月mini.jerry@;重要的提示!注意!我正在根据最新的SE Linux来根本的升级这份文档。

我用了很长时间来做这件事情,不过看来我好像永远没有足够的时间作完它。

我现在正在继续做,请相信我!Faye Coker, Feb 04, 2006(译者注:本人技术出身,英语实在比较差。

翻译如有不当之处,敬请指正!)这份文档已经根据最新的SE Linux做了更改。

旧的"Getting Started with SE Linux HOWTO"的内容将保留在此份文档里,不过绝大多数的内容是根据最新的SE Linux的特点作了修改。

新的SE Linux是基于2.6.*内核的,但是仍然支持2.4.*的内核。

这份文档的大部分内容是原来的,我在需要修改的地方做了调整。

这份文档是美国国家安全局的安全加强的Linux(NSA SE Linux)的概述性的说明。

介绍selinux的书籍

介绍selinux的书籍

介绍selinux的书籍SELinux (Security-Enhanced Linux) 是一个基于 Linux 内核的安全模块,它为系统提供了强大的访问控制机制和安全策略。

对于想要深入了解 SELinux 的读者来说,下面是几本值得推荐的 SELinux 书籍。

1.《SELinux 权威指南》(SELinux by Example: Using Security Enhanced Linux)- Frank Mayer, Karl MacMillan, David Caplan 这本权威指南是深入理解 SELinux 的必备读物。

作者利用详细的示例,向读者介绍了 SELinux 的概念、基本原则和策略语言。

同时,本书还提供了实际应用场景和故障排除方法。

无论是系统管理员、开发人员还是安全专家,都可以从这本书中获得实用的知识和技巧。

2.《SELinux系统与服务安全》(SELinux System Administration)- Sven Vermeulen这本书是 SELinux 系统管理的权威指南。

作者详细介绍了 SELinux的体系结构、安全策略和管理工具。

读者可以学习如何创建策略模块、配置 SELinux 服务以及分析和解决常见问题。

对于希望在实际环境中部署 SELinux 的系统管理员来说,这本书是一本宝贵的参考资料。

3.《SELinux:保护 Linux 服务器和虚拟机》(SELinux: Securing Linux Servers)- Sven Vermeulen这本书专注于使用 SELinux 来保护 Linux 服务器和虚拟机的安全。

作者详细介绍了如何使用SELinux 策略来限制服务和应用程序的权限,保护关键系统文件和目录。

读者还可以学习如何配置虚拟化环境下的SELinux,确保虚拟机之间的安全隔离。

无论是新手还是经验丰富的系统管理员,这本书都提供了宝贵的实践经验和建议。

selinux详解及配置文件

selinux详解及配置文件

selinux详解及配置⽂件selinux详解selinux 的全称是Security Enhance Linux,就是安全加强的Linux。

在Selinux之前root账号能够任意的访问所有⽂档和服务;如果某个⽂件设为777,那么任何⽤户都可以访问甚⾄删除。

这种⽅式称为DAC(主动访问机制),很不安全。

DAC⾃主访问控制:⽤户根据⾃⼰的⽂件权限来决定对⽂件的操作,也就是依据⽂件的own,group,other/r,w,x 权限进⾏限制。

Root有最⾼权限⽆法限制。

r,w,x权限划分太粗糙。

⽆法针对不同的进程实现限制。

Selinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有⼀个安全标签(即selinux上下⽂)进⾏区分,只有对应的标签才能允许访问,否则即使权限是777,也是不能访问的。

在selinux中,访问控制属性叫做安全上下⽂,所有客体(⽂件、进程间通讯通道、套接字、⽹络主机等)和主体(进程)都有与其关联的安全上下⽂,⼀个安全上下⽂由三部分组成:⽤户(u)、⾓⾊(r)、和类型(t)标识符。

但我们最关注的是第三部分当程序访问资源时,主体程序必须要通过selinux策略内的规则放⾏后,就可以与⽬标资源进⾏安全上下⽂的⽐对,若⽐对失败则⽆法存取⽬标,若⽐对成功则可以开始存取⽬标,最终能否存取⽬标还要与⽂件系统的rwx权限的设定有关,所以启⽤了selinux后出现权限不符的情况时,你就得⼀步⼀步分析可能出现的问题了。

1.selinux状态查看与配置:selinux的配置⽂件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux.使⽤config⽂件来配置selinux(通过配置⽂件修改selinux的状态属于永久修改,要重启系统才⽣效)[root@localhost ~]# ls /etc/sysconfig/selinux -llrwxrwxrwx. 1 root root 17 Jan 10 19:48 /etc/sysconfig/selinux -> ../selinux/config(1)配置⽂件[root@make_blog ~]# cat /etc/sysconfig/selinux# 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=disabled# SELINUXTYPE= can take one of three two values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.SELINUXTYPE=targetedselinux=enforcing#此项定义selinux状态#enforcing-是强制模式系统,它受selinux保护。

selinux中te文件、file_contexts、property_contexts理解

selinux中te文件、file_contexts、property_contexts理解

selinux中te文件、file_contexts、property_contexts理解在SELinux(Security-Enhanced Linux)中,有一些关键的文件和配置文件用于定义策略和上下文,其中包括`te` 文件、`file_contexts` 文件和`property_contexts` 文件。

1. TE 文件(Type Enforcement):-定义:TE 文件是SELinux 政策中的一部分,包含了类型强制规则。

这些规则定义了系统上各种对象(如进程、文件、套接字等)如何与彼此交互的策略。

-文件扩展名:TE 文件通常以`.te` 为扩展名。

例如,`example.te`。

-内容:TE 文件包含了SELinux 策略的核心规则,定义了对象的类型、访问规则以及允许或拒绝的操作。

2. file_contexts 文件:-定义:`file_contexts` 文件用于定义文件上下文规则,即文件和目录在SELinux 中的安全上下文。

-文件位置:通常位于`/etc/selinux/targeted/contexts/files/` 目录下。

-内容:文件上下文规则描述了不同路径下文件的安全上下文,以及这些上下文与SELinux 类型之间的映射关系。

3. property_contexts 文件:-定义:`property_contexts` 文件用于定义Android 系统中的文件上下文和属性上下文的映射。

-文件位置:通常位于Android 系统的`/system/etc/selinux/` 目录下。

-内容:文件包含了Android 系统属性(例如`ro.build.type`)和与其关联的SELinux 安全上下文。

这些文件的作用是协同工作,构建SELinux 的安全策略。

TE 文件定义了SELinux 规则,file_contexts 文件定义了文件的安全上下文,而property_contexts 文件则定义了Android 系统中文件属性的安全上下文。

SELinux简明学习指南

SELinux简明学习指南
SELinux 简明学习指南
Hyphen Wang
2012-07-06
作者:HyphenWang 网址:
目录
1. 介绍 ................................................................................................................................................ 3 2. 运行模式........................................................................................................................................ 6 3. 安全上下文.................................................................................................................................. 11 4. 登陆系统...................................................................................................................................... 22 5. 运行服务...................................................................................................................................... 34 6. 处理安全上下文 ......................................................................................................................... 40 7. 配置布尔值和属性 ..................................................................................................................... 48 8. 审计日志...................................................................................................................................... 57 9. 添加允许规则.............................................................................................................................. 61 10. MLS/MCS 限制 ....................................................................................................................74 11. 自定义安全模块 ..................................................................................................................... 89 12. 常用命令................................................................................................................................103

selinux_example

selinux_example

Selinux 下匿名FTP的使用
在客户端登录FTP服务器时会出发audit deamon产生日志:
[root@sgzhang audit]# audit2why < /var/log/audit/audit.log type=AVC msg=audit(1282568240.414:268): avc: denied { getattr } for pid=4061 comm="vsftpd" path="/pub/root.txt" dev=sda1 ino=3634111 scontext=root:system_r:ftpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file Was caused by: Missing or disabled TE allow rule. Allow rules may exist but be disabled by boolean settings; check boolean settings. You can see the necessary allow rules by running audit2allow with this audit message as input.
Selinux 下匿名FTP的使用
1, 在匿名访问目录下创建2个文件进行测试,一个是在该目录下手动创建,这样 该文件会自动继承/var/ftp/pub下的目录上下文的值,一个用mv命令从root目录下移 动过来,这样的文件会保留root目录下的安全上下文,如下 [root@sgzhang ~]# pwd /root [root@sgzhang ~]# echo "aaa123" > root.txt [root@sgzhang ~]# chmod 755 /root/root.txt [root@sgzhang ~]# mv root.txt /var/ftp/pub/ [root@sgzhang ~]# ls -Z /var/ftp/pub/ -rw-r-xr-x root root root:object_r:user_home_t:s0 root.txt -rwxr-xr-x root root root:object_r:public_content_t:s0 test.txt

Linux操作系统配置与管理课件:SELinux的应用

Linux操作系统配置与管理课件:SELinux的应用

11.3 SELinux配置管理
11.3.2 SELinux配置文件
SELinux的配置文件主目录为/etc/selinux,在RHEL5.x中可用模块包 括下面几种。
targeted:RedHat开发的策略模块,只对Apache、SendMail、 BIND、PostgresQL等网络服务进行保护,不属于这些服务的就都 属于unconfined_t。该模块也可导入性高,可用性好,但是不能 呢个对整体进行保护。
11.3 SELinux配置管理
11.3.4 SELinux日志
日志信息都位于在/var/log/messagesN(该文件有多个,结尾会编号) 单击“系统”—“管理”—“SELinux故障诊断”会出现如图11-1所示
界面,可以查看出错的原因
图11-1
11.3 SELinux配置管理
11.3.5 使用SELinux图形界面配置工具
3. RHEL将SELinux与FTP、Samba、Apache等一系列服务整合,可 为每一个服务制定严格的SELinux策略
11.2 SELINUX的运行状态配置
SELinux运行状态有: enforcing(SELinux安全策略被强制执行) permissing(SELinux系统输出警告信息,但不强制执行安全策略) disable(SELinux被完全终止)三种
11.3 SELinux配置管理
11.3.1 SELinux控制规则及相关概念
1. DAC(Discretionary Access Control,自主访问控制) 2. MAC(Mandatory Access Controll,强制访问控制) 3.安全上下文与TE(类型强制) 4. RABC(基于角色的访问控制

Red Hat Enterprise Linux 8 SELinux使用指南说明书

Red Hat Enterprise Linux 8 SELinux使用指南说明书

Red Hat Enterprise Linux 8使用 SELinux防止用户和进程使用增强安全的 Linux (SELinux)与文件和设备执行未授权的交互Last Updated: 2023-07-26Red Hat Enterprise Linux 8 使用 SELinux防止用户和进程使用增强安全的 Linux (SELinux)与文件和设备执行未授权的交互法律通告Copyright © 2023 Red Hat, Inc.The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.Linux ® is the registered trademark of Linus Torvalds in the United States and other countries. Java ® is a registered trademark of Oracle and/or its affiliates.XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other countries.Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.All other trademarks are the property of their respective owners.摘要通过配置 SELinux,您可以增强系统的安全性。

selinux机制原理_概述及解释说明

selinux机制原理_概述及解释说明

selinux机制原理概述及解释说明1. 引言:1.1 概述:SELinux(Security-Enhanced Linux)是一种用于Linux操作系统的强制访问控制(MAC)安全机制,它通过为每个对象和主体分配唯一的标签,并使用这些标签来管理对系统资源的访问权限,从而提供了更高级别的系统安全性。

SELinux广泛应用于各种Linux发行版中,并成为许多关键部署环境中不可或缺的安全功能。

1.2 文章结构:本文首先对SELinux机制进行概述,包括其基本原理和概念。

然后介绍了安全策略与访问控制在SELinux中扮演的角色,并阐述了标签和标记机制在实现安全性方面的重要性。

接下来,我们将深入了解SELinux的工作原理,包括类型强制访问控制(TE)机制、强制访问控制(MAC)模型与规则引擎等方面。

此外,我们还会提供一些利用SELinux保护系统安全的实例和示例。

在完成对SELinux机制原理和工作原理的详细介绍后,我们将说明如何与Linux 内核集成以及各种实现方式。

这部分将涵盖SELinux在Linux内核中位置、关键组件的介绍,以及如何解决不同发行版和版本之间的差异。

最后,我们会提供一些开启、关闭或配置SELinux策略的方法和技巧指南。

1.3 目的:本文旨在为读者深入了解SELinux机制原理提供一个全面而清晰的解释。

通过详细阐述SELinux的基本概念、工作原理、与Linux内核的集成方式等内容,读者可以更好地理解SELinux对系统安全性的重要性和实际应用。

同时,本文也将帮助读者掌握使用和配置SELinux策略的方法,进一步提升系统的安全性。

2. SELinux机制原理:2.1 SELinux概述:SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)机制,旨在增强Linux操作系统的安全性。

它通过强制策略来控制进程、文件和网络资源的访问,以及保护系统免受恶意软件和未经授权的访问。

SELinux基本概念详解

SELinux基本概念详解

SELinux基本概念详解SELinux(Security Enhanced Linux),以下是SELinux的三种类型实际操作流程⽰意图:意义:传统的Linux权限控制采⽤⾃主式权限控制(Discretionary Access Control, DAC),依据程序拥有者和资源的rwx权限决定有⽆存取能⼒.这样存在root账户盗⽤可以使⽤任何资源和⽬录如果被设为777权限⽽导致任意存取和操作的问题.SELinux采⽤MAC(Mandatory Access Control, MAC).在访问资源时,判断程序是否有权限,⽽不是判断⽤户.所以,即使不⼩⼼httpd被取得了控制权,他也⽆权浏览/etc/shadow 等重要的⽂档.开启SELinux后,访问⽂件会经过SELinux权限控制和普通的⽤户资源rwx权限控制.SELinux 是整合到核⼼的⼀个核⼼功能,不需要启动什么额外的服务来开启SELinux.开机完成后,SELinux也就启动了.策略模式:SELinux 的运作策略:targeted:针对⽹路服务限制较多,针对本机限制较少,是预设的政策;strict:完整的SELinux 限制,限制⽅⾯较为严格.三种模式:enforcing:强制模式,代表SELinux运作中,且已经正确的开始限制domain/type了;permissive:宽容模式:代表SELinux运作中,不过仅会有警告讯息并不会实际限制domain/type的存取.这种模式可以运来作为SELinux的debug之⽤(看下什么原因导致⽆法访问);disabled:关闭.查询SELinux当前模式:getenforce查询SELinux当前policy详细信息:sestatus打开关闭:临时关闭SELinux: setenforce 0 (设置SELinux 成为permissive模式)临时打开SELinux: setenforce 1 (设置SELinux 成为enforcing模式)彻底关闭SElinux: vi /etc/selinux/config 设置SELINUX=disabled ,重启⽣效log:以下服务可以记录当发⽣SELinux 错误时,将那些有⽤的资讯记录到log,⽤以提供解决的⽅案:setroubleshoot(只记录错误信息)auditd(记录详细信息)基本使⽤:安全性本⽂(Security Context)查看:ls -Z安全性本⽂主要⽤冒号分为三个栏位Identify:role:type⾝份识别:⾓⾊:类型⾝份识别(Identify):root:表⽰root的帐号⾝份,如同上⾯的表格显⽰的是root home⽬录下的资料system_u:表⽰系统程序⽅⾯的识别,通常就是程序user_u:代表的是⼀般使⽤者帐号相关的⾝份⾓⾊(Role):object_r:代表的是档案或⽬录等档案资源,这应该是最常见的system_r:代表的就是程序啦!不过,⼀般使⽤者也会被指定成为system_r 类型(Type) :(最重要!)程序的domain要和⽂件的type相搭配,才能有权限访问.每个⽬录或档案都会有预设的安全性本⽂查询增加修改预设的安全性⽂本:semanage将⽂件修改为当前⽬录默认的安全性⽂本:restorecon -Rv /var/www/html/index.html将⽂件⽬录安全性⽂本设置为和另⼀个⽂件⽬录⼀样:chcon -R --reference=/var/lib/ref_file target_file可以设置和修改访问规则,可以修改⽬录默认安全性⽂本.。

Selinux配置详解(格式改进版)

Selinux配置详解(格式改进版)

Selin‎u x配置详‎解1.背景SELin‎u x是「Secur‎i ty-Enhan‎c ed Linux‎」的简称,是美国国家‎安全局「NSA=The Natio‎n al Secur‎i ty Agenc‎y」和SCC(Secur‎e Compu‎t ing Corpo‎r atio‎n)开发的 Linux‎的一个扩张‎强制访问控‎制安全模块‎。

原先是在F‎l uke上‎开发的,2000年‎以GNU GPL 发布。

现在以Li‎n ux作为‎因特网服务‎器是越来越‎普遍的事了‎。

在我这几年‎作过的项目‎里,WEB的开‎发基本都是‎基于Lin‎u x的,这里有给大‎公司做的,也给政府部‎门做的,当然更多的‎是中小企业‎做的。

这其中给政‎府做的,我们把SE‎L inux‎作为一个卖‎点,接受了不少‎项目。

2.我们需要安‎全操作系统‎的理由现在不论是‎政府还是民‎间企业,大家对信息‎安全问题是‎越来越关心‎了,因为企业的‎业务平台的‎服务器上存‎储着大量的‎商务机密,个人资料,个人资料它‎直接关系到个人的‎隐私问题。

特别是我们‎政府的网站‎,作为信息公‎开的平台,它的安全就‎更显得重要‎了。

这些连到互‎联网的服务‎器,不可避免的‎要受到来自‎世界各地的‎各种威胁。

最坏的时候‎我们的服务‎器被入侵,主页文件被‎替换,机密文件被‎盗走。

除了来自外‎部的威胁外‎,内部人员的‎不法访问,攻击也是不‎可忽视的。

对于这些攻‎击或者说是威胁‎,当然有很多‎的办法,有防火墙,入侵检测系‎统,打补丁等等‎。

因为Lin‎u x也和其‎他的商用U‎N IX一样‎,不断有各类‎的安全漏洞‎被发现。

我们对付这‎些漏洞不得‎不花很多的‎人力来堵住‎它。

在这些手段‎之中,提高OS 系‎统自身的牢‎固性就显得‎非常的重要‎。

2.1传统的L‎i nux OS的不足‎之处虽然Lin‎u x 比起Windo‎w s 来说,它的可靠性‎,稳定定要好‎得多,但是他也是‎和其他的U‎N IX 一样,有以下这些‎不足之处。

Linux之SElinux安全上下文件(1)

Linux之SElinux安全上下文件(1)

Linux之SElinux安全上下⽂件(1)SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Courporation)开发的LInux的⼀个强制控制的安全模块。

2000年以GNU GPL发布,Linux内核2.6版本后继承在内核中。

访问控制类别:DAC:Discretionary Access Control ⾃由访问控制MAC:Mandatory Access Control 强制访问控制DAC和MAC的特点:DAC环境下进程是⽆束缚的MAC环境下策略的规则决定控制的严格程度MAC环境下进程可以被限定的策略被⽤来定义被限定的进程能够使⽤那些资源(⽂件和端⼝)默认情况下,没有被明确允许的⾏为将被拒绝SElinux安全上下⽂⼯作类型:strict:centos5,每个进程都受到selinux的控制targeted:⽤来保护常见的⽹络服务,仅有限进程受到 selinux控制,只监控容易被⼊侵的进程,rhel4只保护13个服务,rhel5保护88个服务minimum:centos7,修改过的targeted,只对选择的⽹络服务。

mls:提供MLS(多级安全)机制的安全性minimum和mls稳定信不⾜,未加以应⽤为什么会⽤SElinux传统的 Linux中⼀切皆⽂件,由⽤户、组、权限控制访问。

⽽在SELinux中⼀切皆对象(object),由存放在inde表的扩展属性域的安全元素所控制其访问。

安全上下⽂基本格式说明所有的⽂件和端⼝资源和进程都具备安全标签:安全上下⽂(security context)组成元素:user:role:type:sesitivity:category,如user_u:object_r:tmp_t:s0:c0实际上下⽂存放在⽂件系统中,进程、⽂件、已经⽤户等都有相应的安全上下⽂:例⼦:#查看指定⽂件的安全上下⽂ls -Z#查看进程的安全上下⽂件ps Z#查看⽤户安全上下⽂期望(默认)上下⽂:存放在⼆进制的SELinux策略库(映射⽬录和期望安全上下⽂)中:使⽤命令semanage fcontext -l #可以查看所有默认策略SELinux策略:对象(object):所有可以读取的对象,包括⽂件、⽬录和进程,端⼝等主体:进程称为主体(subject)SELinux中对所有的⽂件都赋予⼀个type的⽂件类型标签,对于所有的进程也赋予各⾃的⼀个domain的标签。

linux selit命令的用法

linux selit命令的用法

linux selit命令的用法SELinux是Linux内核的一种安全机制,selinux命令用于管理和配置SELinux的相关功能。

selinux命令用法如下:1. 查看SELinux状态:`sestatus`2. 修改SELinux状态:-临时关闭SELinux:`setenforce 0`-临时开启SELinux:`setenforce 1`-永久关闭SELinux(需要重启生效):编辑`/etc/selinux/config`文件,将`SELINUX=enforcing`改为`SELINUX=disabled`-永久开启SELinux(需要重启生效):编辑`/etc/selinux/config`文件,将`SELINUX=disabled`改为`SELINUX=enforcing`3. 查看文件或目录的SELinux属性:`ls -Z <文件或目录路径>`4. 修改文件或目录的SELinux属性:-设置文件或目录的SELinux用户:`chcon -u <SELinux用户> <文件或目录路径>`-设置文件或目录的SELinux类型:`chcon -t <SELinux类型> <文件或目录路径>`-恢复文件或目录的SELinux默认属性:`restorecon -R <文件或目录路径>`5. 查看进程的SELinux上下文:`ps -eZ`6. 修改进程的SELinux上下文:-临时修改进程的SELinux上下文:`chcon -t <SELinux类型> <执行文件路径>`-永久修改进程的SELinux上下文(需要重启生效):使用`semanage`命令,例如:`semanage fcontext -a -t <SELinux类型> <执行文件路径>`,然后执行`restorecon -R -v <执行文件路径>`以上是selinux命令的基本用法,更多详细信息可参考相关文档或使用`man selinux`命令查看帮助文档。

SELinux之一:SELinux基本概念及基本配置

SELinux之一:SELinux基本概念及基本配置

SELinux从出现至今,已经走过将近13年历史,然而在Linux相关QQ技术群或者Linux相关论坛,经常有人遇到问题问题都归咎与SELinux,如httpd各项配置都正常,但客户就是无法访问;又比如vsftpd配置均正常,但客户端访问提示无法转换家目录。

于是乎很多人都对SELinux有了极大的偏见,认为SELinux带来的似乎只有麻烦,于是很多人选择在安装系统第一件事就是将SELinux设置为禁用。

不过随着日益增长的0-day安全漏洞,SELinux在很多时候给了我们关键的保障。

什么是SELinux?SELinux全称SecurityEnhancedLinux(安全强化Linux),是美国国家安全局2000年以GNUGPL发布,是MAC(MandatoryAccessControl,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。

强制访问控制系统的用途在于增强系统抵御0-Day攻击(利用尚未公开的漏洞实现的攻击行为)的能力。

所以它不是网络防火墙或ACL的替代品,在用途上也不重复。

在目前的大多数发行版中,已经默认在内核集成了SELinux。

举例来说,系统上的Apache被发现存在一个漏洞,使得某远程用户可以访问系统上的敏感文件(比如/etc/passwd来获得系统已存在用户),而修复该安全漏洞的Apache更新补丁尚未释出。

此时SELinux可以起到弥补该漏洞的缓和方案。

因为/etc/passwd不具有Apache的访问标签,所以Apache对于/etc/passwd的访问会被SELinux阻止。

相比其他强制性访问控制系统,SELinux有如下优势:•控制策略是可查询而非程序不可见的。

•可以热更改策略而无需重启或者停止服务。

•可以从进程初始化、继承和程序执行三个方面通过策略进行控制。

•控制范围覆盖文件系统、目录、文件、文件启动描述符、端口、消息接口和网络接口。

Linux安全中阶教程之SElinux(适合有一定水平的管理员) ...

Linux安全中阶教程之SElinux(适合有一定水平的管理员) ...

Linux安全中阶教程之SEIinux(适合有一定水平的管理员)一:SElinux(安全增强linux 简介)1:使用SElinux可以将进程放入在特定的SElinux域,同时赋予系统上的资源(如文件,网络套接字,系统调用等)SElinux上下文。

装入SElinux的策略(通常作为系统启动过程的一部分),然后决定哪个进程域可以访问哪些资源上下文。

2:在红帽企业版linux5中,有关SElinux的选择有下面几种:(1)我是否需要启用SElinux(2)一旦启用,我需要SElinux处于允许(permissive)还是强制(enforcing)状态。

(3)我需要在文件上赋予什么样的SElinux上下文。

3:在实际工作中,红帽企业版linux5支持一种SElinux策略,叫目标策略(targeted).这个策略在大多数应用之中。

在目标策略之中,只有目标进程受到SElinux的影响。

而其他进程运行在非限制模式下。

目标策略只影响常用的网络应用程序。

受到限制的服务在200个以上,有增加的趋势。

SElinux限制的典型应用程序如下:(1)dhcp(2)httpd(3)mysqld(4)named(5)nscd()(6)ntpd()(7)portmap(8)postgres()(9)snmpd()(10)squid(11)syslogd4:启用SElinux/etc/sysconfig/selinuxsetenforcegetenforce/etc/sysconfig/selinux⑴强制(enforcing):任何违法SElinux的操作都被禁止。

⑵允许(permissive):任何违反SElinux的操作都会受到一个警告信息。

但是行动可以继续。

⑶停用(disabled):不启用SElinux策略。

Setenforce和getenforce命令Setenforce0/10表示允许;1表示强制Getenforce查看当前SElinux的状态。

SELinux介绍

SELinux介绍

SELinux介绍一、SELinux简介RedHat Enterprise Linux AS 3.0/4.0中安全方面的最大变化就在于集成了SELinux的支持。

SELinux的全称是Security-Enhanced Linux,是由美国国家安全局NSA开发的访问控制体制。

SELinux可以最大限度地保证Linux系统的安全。

至于它的作用到底有多大,举一个简单的例子可以证明:没有SELinux保护的Linux的安全级别和Windows一样,是C2级,但经过保护SELinux 保护的Linux,安全级别则可以达到B1级。

如:我们把/tmp目录下的所有文件和目录权限设置为0777,这样在没有SELinux保护的情况下,任何人都可以访问/tmp 下的内容。

而在SELinux环境下,尽管目录权限允许你访问/tmp下的内容,但SELinux的安全策略会继续检查你是否可以访问。

NSA推出的SELinux安全体系结构称为 Flask,在这一结构中,安全性策略的逻辑和通用接口一起封装在与操作系统独立的组件中,这个单独的组件称为安全服务器。

SELinux的安全服务器定义了一种混合的安全性策略,由类型实施 (TE)、基于角色的访问控制 (RBAC) 和多级安全(MLS) 组成。

通过替换安全服务器,可以支持不同的安全策略。

SELinux使用策略配置语言定义安全策略,然后通过checkpolicy 编译成二进制形式,存储在文件(如目标策略/etc/selinux/targeted/policy/policy.18)中,在内核引导时读到内核空间。

这意味着安全性策略在每次系统引导时都会有所不同。

SELinux的策略分为两种,一个是目标(targeted)策略,另一个是严格(strict)策略。

有限策略仅针对部分系统网络服务和进程执行SELinux策略,而严厉策略是执行全局的NSA 默认策略。

有限策略模式下,9个(可能更多)系统服务受SELinux监控,几乎所有的网络服务都受控。

linux中selinux的作用

linux中selinux的作用

linux中selinux的作用Linux中的SELinux是一种安全增强工具,它在操作系统级别提供了额外的安全层,以保护系统免受恶意软件和攻击的侵害。

SELinux的全称是Security-Enhanced Linux,它是由美国国家安全局(NSA)开发的,旨在提供更高级别的安全性。

SELinux的作用主要体现在以下几个方面:1. 强制访问控制(MAC):SELinux通过强制访问控制机制,对系统资源进行细粒度的访问控制。

它基于安全策略规则,限制进程对文件、目录、网络端口等资源的访问权限。

这种机制可以防止恶意软件或攻击者利用系统漏洞获取未授权的访问权限。

2. 标签安全:SELinux使用标签来标识系统中的各种对象,如文件、进程、网络端口等。

每个对象都有一个唯一的标签,用于表示其安全级别和访问权限。

通过标签安全机制,SELinux可以对系统中的对象进行细粒度的访问控制,确保只有具有相应标签的对象才能相互交互。

3. 强制策略:SELinux提供了一套默认的安全策略,用于限制系统中各个进程的行为。

这些策略规则定义了进程可以执行的操作,如读取、写入、执行等。

通过强制策略,SELinux可以防止恶意软件或攻击者执行未经授权的操作,从而保护系统的安全性。

4. 安全审计:SELinux可以记录系统中发生的安全事件,并生成相应的审计日志。

这些日志可以用于分析系统的安全性,发现潜在的安全威胁。

通过安全审计,管理员可以及时发现并应对系统中的安全问题,提高系统的安全性。

5. 安全上下文:SELinux使用安全上下文来标识系统中的对象和主体。

安全上下文是一个包含标签的字符串,用于表示对象或主体的安全属性。

通过安全上下文,SELinux可以对系统中的对象和主体进行细粒度的访问控制,确保只有具有相应安全上下文的对象和主体才能相互交互。

总之,SELinux在Linux系统中起到了重要的安全保护作用。

它通过强制访问控制、标签安全、强制策略、安全审计和安全上下文等机制,提供了更高级别的安全性。

SElinux

SElinux

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

比MS NT的C2等高得多。

SELinux起源于自1980开始的微内核和操作系统安全的研究,这两条研究线路最后形成了一个叫做的分布式信任计算机(Distribute Trusted Mach (DTMach))的项目,它融合了早期研究项目的成果(LOCK【锁】,它包含一组安全内核类型强制;Trusted Mach【信任计算机】,它将多层安全控制合并到计算机微内核中)。

美国国家安全局的研究组织参加了DTMach项目,付出了巨大努力,并且继续参与了大量的后续安全微内核项目。

最终,这些工作和努力导致了一个新的项目产生,那就是Flask,它支持更丰富的动态类型的强制机制。

由于不同平台对这这项技术没有广泛使用,NAS认为需要在大量的社团中展示这个技术,以说明它的持久生命力,并收集广泛的使用支持意见。

在1999年夏天,NSA开始在Linux内核中实现Flask安全架构,在2000年十二月,NSA发布了这项研究的第一个公共版本,叫做安全增强的Linux。

因为是在主流的操作系统中实现的,所以SELinux开始受到Linux社区的注意,SELinux最迟是在2.2.x内核中以一套内核补丁的形式发布的。

随着2001年Linux内核高级会议在加拿大渥太华顺利召开,Linux安全模型(LSM[7])项目开始为Linux内核创建灵活的框架,允许不同的安全扩展添加到Linux中。

NSA和SELinux社区是SELinux的主要贡献者,SELinux帮助LSM实现了大量的需求,为了与LSM 一起工作,NSA开始修改SELinux使用LSM框架。

Linux下查看SELinux状态和关闭SELinux的方法命令是什么

Linux下查看SELinux状态和关闭SELinux的方法命令是什么

Linux下查看SELinux状态和关闭SELinux的方法命令是什么Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

对于SELinux状态可能很多用户不知道怎么设置,这篇文章主要介绍了Linux下查看SELinux状态和关闭SELinux 的方法,需要的朋友可以参考下。

一、查看SELinux状态命令:1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查二、关闭SELinux方法:1、临时关闭(不用重启机器):复制代码代码如下:setenforce 0 #设置SELinux 成为permissive模式#setenforce 1 设置SELinux 成为enforcing模式2、修改配置文件需要重启机器:补充:Linux基本命令①l s 意为list 列出当前文件夹中的文件-l 显示文件的属性可用ll来表示②alias 别名看看是否有别名的文件③cd dir 跳跃目录 -P选项将路径中的链接文件替换成链接指向的文件路径④pwd 查看当前工作的文件夹名使用-P的选项,会直接进入到其中,相当于cd相关阅读:Linuxshell脚本不执行问题实例分析shell脚本不执行问题:某天研发某同事找我说帮他看看他写的shell脚本,死活不执行,报错。

我看了下,脚本很简单,也没有常规性的错误,报“:badinterpreter:Nosuchfileordirectory”错。

看这错,我就问他是不是在windows下编写的脚本,然后在上传到linux 服务器的……果然。

原因:在DOS/windows里,文本文件的换行符为rn,而在*nix系统里则为n,所以DOS/Windows里编辑过的文本文件到了*nix里,每一行都多了个^M。

自定_SELinux_策略

自定_SELinux_策略

自定 SELinux 策略本文为基础介绍。

1. 引言1.1 问题所在1.2 解决方案2. SELinux 模式3. SELinux 策略4. SELinux 访问控制5. 排除 SELinux 疑难1. 重新标签文件2. 撤消缺省的安全性脉络3. 重新标签整个文件系统4. 允许访问某个端口6. 自定 SELinux 策略7. 利用 audit2allow 创建自定 SELinux 策略模块1. 手动式自定策略模块8. 总结1. 引言安全增强式 Security-Enhanced Linux(SELinux)是一个在内核中实践的强制访问控制(MAC)安全性机制。

SELinux 首先在 CentOS 4 出现,并在 CentOS 5 获得重大改善。

1.1. 问题所在要更了解 SELinux 为何是重要、及能够为你做什么,最简单的方法就是参考一些例子。

在未启用 SELinux 的情况下,酌情访问控制(DAC)方法如文件权限或访问控制清单(ACL)会被用来赋予文件访问权给用户。

不论用户或程序都可以将不安全的文件权限赋予其它人,或访问系统在正常运作下无须访问的部份。

举个例说:管理员不能控制用户:用户可以把谁都可读入的权限赋予 ssh 金钥等敏感文件。

进程可以更改安全性属性:每位用户的邮件文件应该只供该用户读入,但邮件客户端软件有能力将它们改为谁都可读入。

进程继承用户的权限:假若¬ Firefox 被人占用,它可以阅读用户的私人 ssh 金钥,尽管它没有理由如此做。

基本上现时只在两个权限级别,root 及普通用户,而当中不能简易地实施最小权限的理念。

很多由 root 引导1的进程在后期会撇除它们的权限并以受限制的用户身份来运行,有些则会在 chroot 的情况下执行,但这些安全措施都是酌情的。

1.2. 解决方案SELinux 遵从最小权限的理念。

在缺省情况下一切均被拒绝,接着要为系统的每部份(一项服务、程序、用户)写一个策略来允许它访问所需的功能。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Selinux 下匿名FTP的使用
重新设置该bool值: [root@sgzhang audit]# setsebool -P ftp_home_dir 1 (-P是把该修改写到文件,下次启动仍然有效) [root@sgzhang audit]# getsebool ftp_home_dir ftp_home_dir --> on 客户端登录测试: [root@sgzhang audit]# lftp localhost lftp localhost:~> cd pub cd ok, cwd=/pub lftp localhost:/pub> ls -rwxr-xr-x 1 0 0 7 Aug 23 12:35 root.txt -rwxr-xr-x 1 0 0 12 Aug 23 12:19 test.txt -rwxr-xr-x 1 0 0 910974 Aug 04 02:19 yum
Selinux 下匿名FTP的使用
1,确认已经启用了Selinux: [root@sgzhang ~]# getenforce Enforcing 2,启动FTP deamon: [root@sgzhang ~]# ps -efZ |grep vsftpd
root:system_r:ftpd_t:s0 root 12636 1 0 20:13 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Selinux 下匿名FTP的使用
使用匿名登录测试: [root@sgzhang pub]# lftp localhost lftp localhost:~> cd pub cd ok, cwd=/pub lftp localhost:/pub> ls -rwxr-xr-x 1 0 0 12 Aug 23 12:19 test.txt -rwxr-xr-x 1 0 0 910974 Aug 04 02:19 yum lftp localhost:/pub> 发现这里看不到root.txt文件
Selinux 下匿名FTP的使用
1, 在匿名访问目录下创建2个文件进行测试,一个是在该目录下手动创建,这样 该文件会自动继承/var/ftp/pub下的目录上下文的值,一个用mv命令从root目录下移 动过来,这样的文件会保留root目录下的安全上下文,如下 [root@sgzhang ~]# pwd /root [root@sgzhang ~]# echo "aaa123" > root.txt [root@sgzhang ~]# chmod 755 /root/root.txt [root@sgzhang ~]# mv root.txt /var/ftp/pub/ [root@sgzhang ~]# ls -Z /var/ftp/pub/ -rw-r-xr-x root root root:object_r:user_home_t:s0 root.txt -rwxr-xr-x root root root:object_r:public_content_t:s0 test.txt
通过search策略集确实存在上述策略,但日志里面还有一个建议如下: Allow rules may exist but be disabled by boolean settings; check boolean settings.
Selinux 下匿名FTP的使用
验证布尔值中有关FTP的定义 [root@sgzhang audit]# getsebool -a |grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off allow_tftp_anon_write --> off ftp_home_dir --> off ftpd_connect_db --> off ftpd_disable_transபைடு நூலகம்--> off ftpd_is_daemon --> on httpd_enable_ftp_server --> off tftpd_disable_trans --> off 发现ftp_home_dir --> off,文件root.txt 的类型刚好是root:object_r:user_home_t:s0 所以更改此bool值就可以
Selinux 下匿名FTP的使用
已知系统启动了Selinux,先查看系统日志,有两个工具可以收集到Selinux产生的 日志,一个是setroubleshoot,对应的软件包为setroubleshoot-server-2.0.5-5.el5 一个是audit,对应的软件包名称是audit-1.7.13-2.el5,先使用audit工具,使用方法 如下: 系统中提供了audit相关的命令,常用的有audit2why和audit2allow,audit产生的日志 放在/var/log/audit, 由于此文件记录的信息很多不宜直接查看,可以借助audit2why 命令,首先启动audit deamon [root@sgzhang audit]# /etc/init.d/auditd status auditd is stopped [root@sgzhang audit]# /etc/init.d/auditd start Starting auditd: [ OK ] [root@sgzhang audit]# /etc/init.d/auditd status auditd (pid 4013) is running...
Selinux 下匿名FTP的使用-第二种方法
既然/var/ftp/pub/test.txt可以访问,那么策略里肯定是allow的,且/var/ftp/pub/test.txt 的安全上下文如下: -rwxr-xr-x root root root:object_r:public_content_t:s0 /var/ftp/pub/test.txt 通过上面的命令验证一下策略集中是否有该定义 [root@sgzhang audit]# sesearch -a -s ftpd_t -t public_content_t | head 4 Found 14 av rules: allow ftpd_t public_content_t : file { ioctl read getattr lock }; allow ftpd_t public_content_t : dir { ioctl read getattr lock search }; allow ftpd_t public_content_t : lnk_file { read getattr };
#============= ftpd_t ============== allow ftpd_t user_home_t:file getattr;
[root@sgzhang cnapp]# sesearch -a -s ftpd_t -t user_home_t Found 8 av rules: allow ftpd_t user_home_t : file { ioctl read write create getattr setattr lock append unlink link rename }; allow ftpd_t user_home_t : file { ioctl read getattr lock }; allow ftpd_t user_home_t : dir { ioctl read getattr lock search }; allow ftpd_t user_home_t : lnk_file { read create getattr setattr unlink link rename };
Selinux 下匿名FTP的使用
在客户端登录FTP服务器时会出发audit deamon产生日志:
[root@sgzhang audit]# audit2why < /var/log/audit/audit.log type=AVC msg=audit(1282568240.414:268): avc: denied { getattr } for pid=4061 comm="vsftpd" path="/pub/root.txt" dev=sda1 ino=3634111 scontext=root:system_r:ftpd_t:s0 tcontext=root:object_r:user_home_t:s0 tclass=file Was caused by: Missing or disabled TE allow rule. Allow rules may exist but be disabled by boolean settings; check boolean settings. You can see the necessary allow rules by running audit2allow with this audit message as input.
Selinux 下匿名FTP的使用
1, 在匿名访问目录下创建2个文件进行测试,一个是在该目录下手动创建,这样 该文件会自动继承/var/ftp/pub下的目录上下文的值,一个用mv命令从root目录下移 动过来,这样的文件会保留root目录下的安全上下文,如下 [root@sgzhang pub]# pwd /var/ftp/pub [root@sgzhang pub]# echo "just a test" > test.txt [root@sgzhang pub]# chmod 755 test.txt [root@sgzhang pub]# ls -Z -rwxr-xr-x root root root:object_r:public_content_t:s0 test.txt
相关文档
最新文档