SElinux解析

SElinux

1.SElinux简述

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是为了结束DAC(自主访问控制,任何程序对其资源享有完全的控制权,每个用户或进程可以随意修改自己的文件的权限,将其他权限授予给任何其他人而具有任意的访问机制.标准Linux访问控制、所有/组+权限标记(例如rwx)通常被称为自主访问控制(简称DAC)。)而设置的,后来就有了MAC(强制访问控制,一个进程能否访问某个资源,取决于运行这个进程的用户权限以及访问的资源的属主属组等属性)控制机制,但是如果管理员把一个资源属性的其他设置为rwx,那怎么办呢?于是后来有了沙箱(sandbox)的机制,对于进程只赋予最小的权限,比如运行httpd的用户apache,在普通情况下,apache作为一个普通的用户,他能访问大多数资源,如/etc等,但是apache作为一个专门控制httpd的服务,我们把他的活动范围控制在/var/www,只给他最小的权限,而这个范围就是沙箱。

2.selinux核心概念

2.1在Linux中,大多数的操作可以总结成主谓宾,SELinux也不例外,他把大多数操作总结成主谓宾,

Subjects:(主) processes...

Object:(宾) open, close, read, write, modify, delete, chmod, chown, ...

actions:(谓) 文件,进程,套接字,链接,...

SELinux中通主语能对哪些宾语进行操作,靠的是标签来限定的,SELinux为每个文件提供了安全标签,也同样为进程提供了安全标签;这些称为SELinux的安全上下文,secure context;

user-identify:role:domain|type:sencitivity

user-identify:SELinux的用户身份标识,跟文件系统的user不一样;

role:角色

domain|type:域(进程),类型(文件)

sencitivity:敏感度,s0

2.2操作系统有安全级别的概念:

D

C:C1,C2

B:B1,B2,B3

A:

共ABCD四类7个安全级别,D级是安全级别最低的,C类为自主保护级别,B类为强制保护级别,A类为验证保护级别。

2.3 SELinux有两种工作级别:

strict:对于每个文件都要严格规定其类型,对于每个进程都有特定的域,进程的域和文件的类型必须要严格匹配,才能使进程访问此文件;

targeted:仅有限个进程受到SELinux的管控;在RHEL系系统中为默认级别;

只监控那些容易被入侵并且会对系统造成安全隐患的进程;

2.4 SELinux几种工作模式:

enforcing:启用

permissivs:警告

disabled:关闭

targeted:仅对目标进程进行保护

mls:对大多数进程进行安全保护

查看/etc/selinux/config文件中的配置信息

1)凡是从enforcing或Permissive模式切换值disabled模式,或者从disabled模式切换至enforcing或Permissive模式,都必须要经过操作系统重新引导才能生效;

2)使用setenforce命令修改的模式不会永久生效,如果想要使SELinux的工作模式永久生效, 需要修改/etc/sysconfig/selinux文件中的SELINUX=enforcing

3)enforcing到Permissive之间的模式转换可以使用setenforce命令来完成;

setenforce {0|1}

0:Permissive

1:Enforcing

4)可以使用getenforce命令来查看当前SELinux的工作模式;

3.常用命令


chcon:改变标签(打标)

chcon [options]... CONTEXT FILE...

-t type 修改为指定类型

-R:递归修改目录中的所有文件

--reference=FILE:参考FILE的安全上下文,为目标文件设置相同的安全上下文;

使用场景:

使用httpd创建虚拟主机之后,目标页面文件的类型与httpd进程的域不相符合,将虚拟主机服务器根目录中的所有文件修改为httpd_sys_content_t即可;

可以使用restorecon命令还原某文件或目录的安全上下文为默认值;

restorecon

-R:递归

布尔型规则:

getsebool

-a:显示所有已经生效的布尔型规则;

setsebool

-P:写入策略文件,使更改永久生效;

使用场景:支持二进制策略修改的系统服务

ftp的匿名用户上传功能:

~]# setsebool -P ftpd_full_access=1

~]# setsebool -P ftpd_anon_write=1

samba用户访问自己的家目录:

~]# setsebool -P samba_enable_home_dirs=1

semanage:

需要通过安装policycoreutils-python获取该应用程序

semanage port -a -t http_port_t -p tcp 8077

时间: 2024-08-29 23:12:40

SElinux解析的相关文章

iptables与SELinux解析

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

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

关闭系统不必要的服务;关闭selinux,关闭iptables

关闭系统不必要的服务:关闭selinux,关闭iptables:关闭ctrl+alt+del重启:设置ssh端口,关闭DNS解析:设置系统最大文件描述符:设置系统关键文件权限:配置安装ntp:安装vim:配置安装阿里云yum源和epel源: #!/bin/bash #written by [email protected] #system optimization script #The fllow apply to CentOS 6.x . /etc/init.d/functions func

基于BIND软件实现互联网DNS解析

一.什么是DNS服务 DNS全称(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串:DNS通过软件来进行实现域名对IP的解析:这里是通过BIND开源软件实现:BIND是开放源码软件,它允许在Internet上发布域名系统(DNS)信息,并为用户解析DNS查询:该名称绑定代表是"Berkeley Internet Name Domain"BIND是迄今为止使用最广泛

Linux 系统DNS解析

1. 高速缓存dns服务器 修改server的配置文件/etc/named.conf  10options {  11  listen-on port 53 { any; };  #监听所有端口的bind服务  12  listen-on-v6 port 53 { ::1; };  13  directory      "/var/named";  14  dump-file       "/var/named/data/cache_dump.db";  15  s

缓存DNS 正向解析反向解析

在网上申请一个mageeu.com的域  IP网段为172.16.100.0/24 C类网 ns服务器:172.16.100.1 www服务器 172.16.100.1  172.16.100.3 邮件服务器mail 172.16.100.2 ftp:在www主机上,是www服务器的别名 www.isc.org  BIND包在这里下载 DHCP服务器也是靠isc维护 安装: DNS:常用BIND在linux配置 www.isc.org  BIND包在这里下载 卸载低版本:rpm -e bind-

MHA大杀器——mysql主、从双击热备配置安装解析

MHA的主要作用: 在mysql的主从复制中,当master崩溃了,利用mha实现backup顶替崩溃的master自动切换为master继续工作,从而实现高可用. 下面介绍本次实验的环境: MHA分为manager管理节点和node节点,一般来讲最少是三台服务器,两台node节点,一台manager节点,但本次环境限制,只能使用两台,所以把manager也装在一台node节点上. 两台服务器,两个网口: IP: 10.2.16.253     10.0.0.1  node1 10.2.16.2

【Apache服务补录   Squit正向解析】

[查询 APache 日志文件级别 ] ****Apache 服务补录***** 1.[关于 指定域在于https://下访问正确页面] [前置:https://-,访问不到指定页面是因为,指定域在ssl中写的,必须在ssl中添加的那些配置文件中开启443端口,才可以在浏览器中访问到] vim /etc/httpd/conf.d/music.conf [添加如下] ~~                  [前面做的Virtualhsot,Directory不要改] <Virtualhost *:

Linux操作系统基础解析之(四)——Linux基本命令剖析(1)

Linux操作系统自从出现以来,就备受关注.但是人们往往会有这样的一个印象:Linux比Windows难.为什么好多人都会有这样的想法呢?很简单,因为Windows是在更早的时候,甚至是大多数国人都没有认识到计算机的时候就已经被安装到X86架构的计算机上了.Microsoft公司寻求Intel公司的技术支持,并且建立合作之后,PC的市场就几乎被这两家公司垄断了.所以,很多人刚刚开始接触并逐渐学会使用计算机,Intel的X86架构的主机,而且这个主机上一般安装的都是Windows操作系统.因此,大