一、SELinux

SElinux的前身是NSA(美国国家安全局)发起的一个项目。它的目的是将系统加固到可以达到军方级别。

为什么NSA选择Linux呢?

在目前市面上大多数操作系统都是商用闭源的,只有Linux是开源的,这样修改并加入这项功能就方便许多,而且没有版权纠纷。所以,现在selinux就成为了Linux内核的一部分。

在了解selinux之间,我们需要知道DAC和CS的概念,它们是linux系统本身的安全机制。

DAC:自主访问控制

每一个用户为了能够实现和其他用户共享文件,在使用ACL之前,只能通过改变这个文件其他用户的权限,但是这中方法给系统安全带来了无穷的隐患。

CS(安全上下文):取决于发起用户的权限和文本本身的权限

CS+DAC给系统的安全机制带来了漏洞,事想apache用户可以查看/etc/passwd,如果它有写权限,就可能被利用进而就修改passwd文件,危害系统安全。

所有才又了MAC强制访问控制的概念

MAC: Mandatory Access Control  强制访问控制,它是selinux实现访问控制的基础

还通过httpd服务来说明它的原理:

SELINUX通过type enforce (TE)强制类型策略将httpd的工作目录定义在一个特定的目录/var/www用户如果在定义其他目录,将不允许访问,从而实现mac的强制访问控制。

selinux是怎么工作的

它通过operation (操作)的主和宾打一个“标签”,在一个“类型”里只能由特定的目录或用户执行。这样可以限定一个进程的执行范围只能在一个“沙箱”(sandbox)内了(最小权限法则)

###operation: 读,写,执行,等。其实是一个主谓宾的结构 Subject Operation Object

###最小权限法则:例如定义Sbjiect httpd   的目录/var/www 为public_content_t类型,这样,httpd只能访问有这个特定类型的文件或目录,这些文件就叫沙箱“sendbox”

使用selinx,必须精心设计一套访问法则

给不同的进程打上不同的“域”,给不同的目录打上不同的”类型“通过定义“类型”和“域”的对应规则,来实现。selinx需要域和标签的对应关系,一对一对应     。但是系统上有上千个进程,实现起来很麻烦,所以一般情况下,并不是用selinx作为安全防范。

selinux的实现机制有两种

strict:       任何进程都受selinux的控制,一般不用,太难设定

targeted:   红帽开发,指定选定的进程来受SELINUX,这种机制使得selinx更加容易受到控制

policy: 规则组合起来就叫策略

规则通常是以二进制文件存在的(编辑完转换成二进制),这样可以降低系统资源占用

ll /etc/selinxu/policy

MLS  muiti level scurity

selinxu把一些规则里面可以方便控制的功能设定为on或者off,这些都成为布尔类型

getsebool -a   可以显示这些布尔型的内容

fcontext 规定目录属于哪个进程的范围

启动使用selinux

1.启用selinux

1.vim /etc/sysconfig/selinux 
2.SELINUX=enforcing      #任何进程都受selinux控制 
3.                                     permissive    #仍然受控制,但是进程进入了别的目录会记录到日志 
4.                                     disable           #干净彻底的关闭 
5.setenforce 
6.genenforce 
2.显示标签

1.ls -Z           显示文件的标签 
2.                   一共五段     角色:selinux里另外定义的用户 
3.                                                          object_r: 有点类似于组 
4.                                                          user_home_t: 域或者类型(最重要)通过改变它可以控制访问。类型强制的机制就是通过它实现的 
5.ps -Z          显示进程的标签 
6.所有显示unconfined_t都表示不受selinux控制 
7.ps auxZ | grep httpd 
8.ls -dZ 
在不同的目录建立的文件类型是不一样的,归不同的进程管理。

3.改变一个类型的标签

1.chcon     chage contex  改变上下文 
2.chcon -t    改类型,指定为特定类型 
3.                -u    
4.                -R   递归修改,可以改变目录下所有目录 
5.                      --reference=   以某个文件的标签为参照改变成一样的标签 
6.chcon -R --reference=/var/www/html /www 
7.chcon -t default_t /www/index.html 
4.恢复默认安全上下文及修改

1.restorecon 
2.                   -R                   递归 
3.                   -F                                           强制 
4.                   -v                                           显示详细信息    
5.restorecon -R -v -F /www             # 显示/www目录的详细CS信息                      
6.semange 
7.                   -d                  删除 
8.                   -m                 修改 
9.                   -r 
10.                  -a                   附加 
11.                   -t                    类型 
12.

6.开启布尔类型

1.getsebool -a  | grep httpd                   #查看某个对应的布尔类型的值 
2.setsebool httpd_enable_cgi=on          # 加上-p选项永久有效

二、实现samba来测试selinux控制

1.添加tools文件夹

1.vim /etc/samba/smb.conf 
2.[tools] 
3.       path = /share                        #没有的话事前创建一个 
4.       public = yes  5.        write list = @mygrp                 #只允许mygrp组具有创建文件的权限 
6.       browseable = yes 
7.service smb start 
2.添加用户gentoo,并设置samba密码,允许器登陆samba服务器在tools下创建文件

1.</pre><pre class="cpp" name="code">groupadd mygrp 
2.useradd gentoo -g mygrp 
3.[root@station32 var]# smbpasswd -a gentoo 
4.New SMB password: 
5.Retype new SMB password:  6.Added user gentoo. 
7.smbclient -L 192.168.0.32 -U gentoo          # 查看samba服务器的内容 
3.我们查看下/shared目录的CS,并且开启selinux

1.ls -dZ /share/ 
2.drwxrwxr-x root mygrp root:object_r:default_t          /share/ 
3.setenforce 1 
4.开启selinux后,再使用smbclient命令就会报错,我们看下配置文件里面有这样一行 # To set a label use the following: chcon-t samba_share_t /path ,所以我们必须把/shared文件夹的CS修改后才能正常使用samba

1.chcon -t samba_share_t  /share

5.我们关闭samba里关于访问家目录的布尔类型

1.setsebool samba_enable_home_dirs off  
这个时候使用win网络邻居,以用户gentoo登陆后,就不能进入gentoo家目录了

6.我们将它开启就又能访问了,命令如下:

1.setsebool samba_enable_home_dirs on

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-09/42783.htm

转载于:https://www.cnblogs.com/Totems/p/3246533.html

Linux中的SELinux与chcon以及Samba实现【转】相关推荐

  1. chcon mysql_Linux中的SELinux与chcon以及Samba实现【转】

    一.SELinux SElinux的前身是NSA(美国国家安全局)发起的一个项目.它的目的是将系统加固到可以达到军方级别. 为什么NSA选择Linux呢? 在目前市面上大多数操作系统都是商用闭源的,只 ...

  2. Linux中关闭SELinux的方法

    Linux中关闭SELinux的方法 1.临时关闭:输入命令setenforce 0,重启系统后还会开启. 2.永久关闭:输入命令vi /etc/selinux/config,将SELINUX=enf ...

  3. linux中的selinux到底是什么,本篇文章彻底明白

    原文链接https://www.phpyuan.com/235739.html,本文加以修改,若有侵权,请联系删除 一.前言 安全增强型 Linux(Security-Enhanced Linux)简 ...

  4. Linux中的SELinux详解--16

    SELinux 宽容模式(permissive) 强制模式(enforcing) 关闭(disabled)  几种模式之间的转换 在CentOS6.2 中安装intel 的c++和fortran 的编 ...

  5. 一文彻底明白linux中的selinux到底是什么

    一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SELinux 主要由美国 ...

  6. Linux中的selinux

    #1.selinux 内核级加强型防火墙 1)针对文件,会对系统中每个文件添加安全上下文(context) 2)针对进程,会对系统中的每个进程添加安全上下文(context) 3)会在系统服务上设定s ...

  7. linux中samba启动不了,Linux_RHEL5中不用关闭SELinux而成功启动Samba,RHEL5中的samba服务器启动后,能 - phpStudy...

    RHEL5中不用关闭SELinux而成功启动Samba RHEL5中的samba服务器启动后,能看到共享目录,但是不能访问共享目录,告知权限不够.此时可以通过如下命令: tail /var/log/m ...

  8. linux基础配置脚本,Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...

  9. Linux中SELINUX状态的巨大影响

    1.基本SELINUX安全性概念 SELINUX(安全性增强型linux,内核型的加强性防火墙)是可保护系统安全性的额外机制,在某种程度上,它可以被看作是与标准权限并行的权限系统.在常规模式中,以用户 ...

最新文章

  1. android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐
  2. 转 mvc项目中,解决引用jquery文件后智能提示失效的办法
  3. Linux下的网络远程安装
  4. Controller @Autowired注解 无法注入值为null的问题
  5. 基于Matlab的跨孔CT胖射线追踪算法(二)
  6. python即时标记_python基础教程总结15——1.即时标记
  7. ARM汇编学习-工具篇
  8. Kotlin — 适用于数据科学
  9. 各种内部排序算法,C#实现
  10. 在gfs2中关闭selinux
  11. 剑指 只出现一次的数字
  12. 健身管理系统一站式智能化健身管理体验
  13. 三菱PLC与威伦触摸屏通过OPC通信连接在线模拟仿真
  14. 雷电4.0 Fiddler https抓包详解(绝对可行)
  15. 22MySQL有哪些“饮鸩止渴”提高性能的方法笔记
  16. 【Flutter实战静态页面】--在线点餐app(7)——页面跳转
  17. 72 个网络应用安全实操要点,全方位保护你的 Web 应用
  18. 步进电机和步进驱动器的介绍、接线、细分和控制方法
  19. 查看锐捷poe交换机供电状态_锐捷 RG-S2910-24GT4SFP-UP-H 24个电口支持PoE和PoE+供电交换机...
  20. 初中信息技术说课稿_初中信息技术教师招聘面试说课稿12套

热门文章

  1. RDC Lent ifm IP Analysis Exercise
  2. Summary of the Academic English Class
  3. what should you do at the new arrival of the place
  4. professor xi‘s story
  5. 在线浏览器摄像头软件!妈妈再也不用担心我的windows摄像头驱动没更新啦!
  6. 远程桌面Web连接访问及端口更改方法
  7. unbuntu scim安装方法
  8. Android原生绘图进度条+简单自定义属性代码生成器
  9. 【Android开发学习笔记之一】5大布局方式详解
  10. 高效Java编程工具集锦