2-2单元 -主机基本安全防护措施 —— SELinux 管理原则

                            主机基本安全防护措施 —— SELinux 管理原则

< 一 > SELinux 简介:

SELinux使用委任式访问控制(Mandatory Access Control , MAC),它可以针对特定的程序与特定的文件资源来进行权限管理。

工作模式:

  • 主体 (Subject) —— SELinux主要管理的就是程序 ;
  • 目标 (Object) —— 主体程序访问的目标资源一般就是文件系统 ;
  • 策略 (Policy)—— 依据某些服务来指定基本的访问安全策略,策略中有详细的规则 (Rule)来指定不同服务开放某些资源的访问与否;
  • 安全环境 (Security Context)—— 主体与目标的安全环境必须一致才能够顺利访问目标

重点:主体如何取得目标资源的访问权限

  1. 主体程序必须要通过SELinux策略内的规则放行后,才能与目标资源进行环境安全对比,若失败则无法访问目标;
  2. 若对比成功则开始访问目标;
  3. 最终能否访问目标还是与文件系统的rwx权限设置有关;

< 二 > 安全环境 (Security Context)

ls -Z  命令 ,查看文件的安全环境

ls -dZ 命令 ,查看,目录的安全环境

ps auxZ 命令 , 查看进程的安全环境

输出中,安全环境主要用冒号分为三个字段   Identify (身份识别) : role(角色) :type (类型)

Identify (身份识别) :相当于账号方面的身份识别

  • root , 表示 root 的账号身份
  • system_u , 表示系统程序方面的识别,通常就是程序
  • user_u , 表示一般账号用户相关的身份

role(角色) :

  • object_r ,代表文件或目录等文件资源
  • system_r ,代表程序

type (类型) : Domain 需要与 Type 搭配,程序才能顺利读地取文件资源 !!

  • Type , 在文件资源(Object)中成为类型(Type)
  • Domain ,在主体程序 (Subject)中称为域 (Domain)

 

selinux 对文件的影响:

当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载,标签内记录程序和文件的安全上下文(context)

对于程序功能的影响

当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭,当需要此功能时需要手动开启功能开关 sebool

 

< 三 > SELinux 的启动 、关闭与查看

1 )getenforce 命令,查看 SELinux 当前启动模式

  • disabled : 关闭,SELinix 并没有运行
  • enforcing: 强制模式 ,代表 SELinix 运行中,且已经正确的开始限制 Domain / Type 了
  • permissive : 宽容模式 ,代表 SELinix 运行中,不过仅有警告信息并不会实际限制 Domain / Type  的访问

2 )vim /etc/selinux/config , 通过修改 SELinix 的配置文件,来改变策略以及启动模式,修改后必须重新启动 !!

3 )setendorce [0 | 1] 命令,让 SELinux 模式在 enforcing 与 permissive 之间切换

  • 0  : 转换成 permissive  宽容模式
  • 1  : 转换成 enforcing  强制模式

注意:setendorce 无法在 disabled 的模式下面进行模式的切换  !!

< 四 > SELinux Type (类型字段)的修改

1 ) chcon 命令  ——  (临时),在 selinux 重启后会恢复

  • -R  : 连同该目下的子目录也同时修改
  • -t [ type ] : 后接安全性环境的类型字段
  • -u [ user ] : 后接身份识别
  • -r [ role ] : 后接角色
  • -- reference=范例文件

 2 ) semanage 命令 —— (永久) ,查询与修改 /etc/selinux/targeted/contexts

semanage fcontext -l  —— 查询安全性环境列表 (fcontext  # 主要用在安全性环境方面    ;  -l   # 查询)

semanage fcontext -{a|m|d} file_spec

  • -a : 增加的意思 ,可以增加一些目录的默认安全性环境类型设置
  • -m  修改的意思
  • -d   删除的意思

 示例

  • semanage fcontext -a -t public_content_t '/westosdir(/.*)?'    # (/.)? 连同目录下的子目录也同时设定 指定安全性环境的类型
  • semanage fcontext -a -t public_content_t /westosdir1                 #  只修改目标文件目录
  • semanage fcontext -l | grep '/westosdir'
  • restorecon -RvF /westosdir       # restorecon 命令 ,恢复成默认 selinux type
  • restorecon -RvF /westosdir1       # -R :连同子目录一起修改  ;-F : 连同子目录文件一起修改 ;-v : 过程显示到屏幕
  • touch /.autorelabel                    # 重新启动后,初始化 selinux type
  • reboot

 

 SELinux  的端口(seport)设置

semanage port -l | grep **                      # 查询服务的端口

semanage port -a -t ssh_port_t -p tcp   # 添加服务类型的端口

实验测试

  •  vim /etc/ssh/sshd_config    # 修改 sshd 配置文件,修改服务端口由默认 022  变更为 1111
  • setenforce 0                         # selinux 设置 为宽容模式
  • systemctl restart  sshd         # 重启 sshd 服务 (在selinux 为强制模式时无法 重启!)
  • semanage port -l | grep ssh

ssh_port_t                     tcp      22

  • semanage port -a -t ssh_port_t -p tcp 1111   # 修改 selinux type 安全性环境类型的设置 ,ssh_port_t 类型添加 1111端口

ssh_port_t                     tcp      1111, 22

 

 

< 五 > SELinux 策略内的规则布尔值(sebool)修订

布尔值的查询与修改

  • getsebool -a                               # 查询系统内所有的布尔值设置情况
  • setsebool [ -p ] 布尔值=[0 | 1]   # 修改布尔值配置文件,设置布尔值状态,off = 0  ; on = 1  ;

 

< 六 > SELinux 日志文件记录所需的服务

setroubleshoot : 将错误信息写入 /var/log/messages        # troubleshoot(错误客服)

setroubleshoot这个服务会将关于 SELinux 的错误信息与克服方法记录到 /var/log/messages 与 /var/log/setroubleshoot/*中

setroubleshoot服务所需软件 

  • setroubleshoot
  • setroubleshoot-server

备注:两者已经整合在 auditd 当中,安装好 setroubleshoot-server,需要重新启动 auditd

  • systemctl restart auditd

 

实验测试

  • semanage port -l | grep ssh

ssh_port_t                     tcp      1111, 22

  • semanage port -d -t ssh_port_t -p tcp 1111
  • > /var/log/audit/audit.log
  • > /var/log/messages
  • cat /var/log/audit/audit.log
  • cat /var/log/messages

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值