初始selinux

一、selinux介绍

1.selinux历史

SELinux: Secure Enhanced Linux,是美国国家安全局「NSA=The National Security Agency」和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中

DAC:Discretionary Access Control自由访问控制

MAC:Mandatory Access Control 强制访问控制

DAC环境下进程是无束缚的

MAC环境下策略的规则决定控制的严格程度

MAC环境下进程可以被限制的

策略被用来定义被限制的进程能够使用那些资源(文件和端口)

默认情况下,没有被明确允许的行为将被拒绝

2.selinux的四种工作类型

(1)strict: centos5,每个进程都受到selinux的控制

(2)targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易被入侵的进程,rhel4只保护13个服务,rhel5保护88个服务

(3)minimum:centos7,修改过的targeted,只对选择的网络服务

(4)mls:提供MLS(多级安全)机制的安全性

(5)minimum和mls稳定性不足,未加以应用

3.selinux安全上下文

(1)传统Linux,一切皆文件,由用户,组,权限控制访问

(2)在SELinux中,一切皆对象,由存放在Inode的扩展属性域的安全元素所控制其访问。

(3)所有文件和端口资源和进程都具备安全标签:安全上下文”(security context)

(4)安全上下文有五个元素组成:

user:role:type:sensitivity:category

user_u:object_r:tmp_t:s0:c0

(5)实际上下文:存放在文件系统中,ls –Z;ps–Z

(6)期望(默认)上下文:存放在二进制的SELinux策略库(映射目录和期望安全上下文)中

semanage fcontext–l

4.五个安全元素

(1)User:指示登录系统的用户类型,如root,user_u,system_u,多数本地进程都属于自由(unconfined)进程

(2)Role:定义文件,进程和用户的用途:文件:object_r,进程和用户:system_r

(3)Type:指定数据类型,规则中定义何种进程类型访问何种文件Target策略基于type实现,多服务共用:public_content_t

(4)Sensitivity:限制访问的需要,由组织定义的分层安全级别,如unclassified,secret,top,secret, 一个对象有且只有一个sensitivity,分0-15级,s0最低,Target策略默认使用s0

(5)Category:对于特定组织划分不分层的分类,如FBI Secret,NSA secret, 一个对象可以有多个categroy,c0-c1023共1024个分类,Target 策略不使用cateaory

5.selinux策略

(1)对象(object):所有可以读取的对象,包括文件、目录和进程,端口等,

(2)主体:进程称为主体(subject)

(3)SELinux中对所有的文件都赋予一个type的文件类型标签,对于所有的进程也赋予各自的一个domain的标签。Domain标签能够执行的操作由安全策略里定义。

(4)当一个subject试图访问一个object,Kernel中的策略执行服务器将检查AVC (访问矢量缓存Access Vector Cache), 在AVC中,subject和object的权限被缓存(cached),查找“应用+文件”的安全环境。然后根据查询结果允许或拒绝访问

(5)安全策略:定义主体读取对象的规则数据库,规则中记录了哪个类型的主体使用哪个方法读取哪一个对象是允许还是拒绝的,并且定义了哪种行为是充许或拒绝

二、设置selinux

1.配置selinux

(1) SELinux是否启用

(2) 给文件重新打安全标签

(3) 给端口设置安全标签

(4) 设定某些操作的布尔型开关

(5) SELinux的日志管理

2.selinux的状态:

(1) enforcing:强制,每个受限的进程都必然受限

(2) permissive: 允许,每个受限的进程违规操作不会被禁止,但会被记录于审计日志

(3) disabled: 禁用

注意:

关闭状态创建的文件不会有selinux标签

重新开启后需重启,会自动给没有标签的文件打上标签

3.相关命令:

(1) getenforce: 获取selinux当前状态

(2) sestatus:查看selinux状态

(3) setenforce0|1

0: 设置为permissive

1: 设置为enforcing

4.配置文件

(1)/boot/grub/grub.conf

使用selinux=0禁用SELinux

(2) /etc/sysconfig/selinux

(3) /etc/selinux/config

(4) SELINUX={disabled|enforcing|permissive}

5.修改selinux安全标签

(1)给文件重新打安全标签

chcon[OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...

chcon[OPTION]... --reference=RFILE FILE... 参考文件修改安全上下文标签

(2)恢复目录或文件默认的安全上下文

restorecon[-R] /path/to/somewhere

6.默认安全上下文查询与修改

(1)semanage来自policycoreutils-python包

(2)查看默认的安全上下文

semanagefcontext–l

(3)添加安全上下文

semanagefcontext-a –t httpd_sys_content_t‘/testdir(/.*)?’

restorecon–Rv/testdir

(4)删除安全上下文

semanagefcontext-d –t httpd_sys_content_t‘/testdir(/.*)?’

7.selinux端口标签

(1)查看端口标签

semanageport –l

(2)添加端口

semanageport -a -t port_label-p tcp|udpPORT

semanage port -a -t http_port_t -p tcp 9527

(3)删除端口

semanageport -d -t port_label-p tcp|udpPORT

semanage port -d -t http_port_t -p tcp 9527

(4)修改

semanageport -m -t port_label-p tcp|udpPORT

semanageport -m -t http_port_t-p tcp9527

三、selinux布尔值

    1.布尔值规则:

getsebool

setsebool

2.查看bool命令

getsebool[-a] [boolean]

semanageboolean–l

semanageboolean-l –C 查看修改过的布尔值

3.设置bool值命令

setsebool[-P] booleanvalue

setsebool[-P] Boolean=value

四、selinux日志管理及帮助

    1.selinux日志管理

    yum install setroublesshoot*(重启生效)

将错误的信息写入/var/log/message

grep setroubleshoot/var/log/messages

sealert-l UUID

查看安全事件日志说明

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

扫描并分析日志

2.selinux帮助

[[email protected] ~]# yum -y install selinux-policy-devel

[[email protected] ~]# mandb

[[email protected] ~]# man -k _selinux

时间: 2024-08-26 01:05:41

初始selinux的相关文章

II 第十单元selinux的初级管理

1.什么时selinuxselinux,内核级加强型防火墙基本 SELINUX 安全性概念 SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制 在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统.在常规模式中 , 以用户身份运行进程,并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权 SELINUX 的另一个不同之处在于 , 若要访问文件 , 你必须具有普通访 问权限和 SELINUX 访问权限.因此 , 即使以超级用户身份 r

Linux(RadHat)基础学习—了解SELinux

基本SELinux安全概念 SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制.SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统.NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件.SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为

第十单元文档2

##selinux的管理 ##学习目标 基本 SELINUX 安全概念 SELINUX 模式 更改 SELINUX 模式 显示进程和文件的 SELINUX 上下文 管理文件的selinux上下文 管理服务的bool值 ##基本 SELINUX 安全性概念 SELINUX (安全增强型 Linux )是可保护你系统安全性的额外机制 在某种程度上,它可以被看作是与标准权限系统并行的权限系统.在常规模式中,以用户身份运行进程,并且系统上的文件和其他资源都设置了权限(控制哪些用户对哪些文件具有哪些访问权

LINUX ACL访问控制列表,SELINUX安全性基本总结

10.访问控制列表(ACL) 标准的linux文件权限可以满足绝大多数情况的要求,但它也有局限.限制访问文件的权限仅限授予文件的所有者,单组成员或其他任何人,进程可能不适合成为文件所属组成员,授予所有人权限是不现实的做法. ACL允许向文件分配细化权限,除标准文件所有者组所有者和其他文件权限外,还可以向指定用户或指定组,以及UID及GUID确定的用户和组授予权限,这些权限均应用相同的权限标志r读取w写入x执行. 文件所有者可以在单个文件或目录上使用ACL,新文件和子目录可以从父级默认ACL中继承

在 Linux 上用 SELinux 或 AppArmor 实现强制访问控制(MAC)

为了解决标准的“用户-组-其他/读-写-执行”权限以及访问控制列表的限制以及加强安全机制,美国国家安全局(NSA)设计出一个灵活的强制访问控制Mandatory Access Control(MAC)方法 SELinux(Security Enhanced Linux 的缩写),来限制标准的权限之外的种种权限,在仍然允许对这个控制模型后续修改的情况下,让进程尽可能以最小权限访问或在系统对象(如文件,文件夹,网络端口等)上执行其他操作. 另一个流行并且被广泛使用的 MAC 是 AppArmor,相

linux系统安装后的初始配置

在安装完一台linux系统后,我们常常需要作一些初始的配置操作,最见的是需要修改配置如下内容. 1.设置IP地址,可以编辑/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 //物理设备名 BOOTPROTO=none //none|static|bootp|dhcp(引导时不使用协议|静态分配|BOOTP协议|DHCP协议)即时生效 NM_CONTROLLED=no //设备是否可以由Network Manager图形管理工具托管.默认为

iptables与SELinux解析

防火墙,顾名思义,是用于防止一些可能造成的威胁对操作系统造成破坏,为了保护系统而采取的一种防护措施,将威胁挡在防火墙外:iptables,防火墙命令,用于编写netfilter规则,将其送入内核空间,当报文从内或外传输时,对内核空间的规则进行匹配,由上到下,匹配到的第一条规则后,就不再匹配下面的规则,防火墙的这种匹配方式称之为首项匹配:防火墙有几种分类方式一种是软硬件防火墙,对应用程序和底层硬件的防护:一种是主机防火墙,以及网络防火墙:主机防火墙是一种局限于当前主机的防火墙,主要针对于该主机的报

SELinux(Security-Enhanced Linux)

Security-Enhanced Linux(SELinux)的历史 一个小历史将有助于帮助您理解 Security-Enhanced Linux(SELinux)——而且它本身也是段有趣的历史. 美国国家安全局(National Security Agency,NSA)长时间以来就关注大部分操作系统中受限的安全能力. 毕竟,他们的工作之一就是要确保美国国防部使用的计算机在面临没完没了的攻击时保持安全.NSA 发现 大部分操作系统的安全机制,包括 Windows 和大部分 UNIX 和 Lin

Linux系统上的SELinux究竟是个什么?

前言: SELinux是一个很深奥的东西,我问过身边好多运维技术人员,他们公司服务器的SElinux在生产环境中是开启状态还是关闭状态,得到一个统一的答案--直接关闭,无一例外. 网上也有一句话--一个资深的运维工程师,他系统的SELinux一定是关闭的. 所以说,想了解SELinux的,可以了解一下,为了以防以后自己所在的公司要求必须开启SELinux,但自己又不懂,那就尴尬了,不了解也无所谓,因为遇到强制开启SELinux的公司,也不是那么容易的事情. 上面说了那么一大堆,那么什么是SELi