zoukankan      html  css  js  c++  java
  • 沙盒技术——selinux控制

    沙盒技术:

    1. 查看进程的上下文关联

    ll -Z   

    drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0

    参数解释:

     这条语句通过:划分成了四段,第一段 system_u 代表的是用户,第二段 object_r 表示的是角色,第三段是SELinux中最重要的信息,admin_home 表示的是类型,最后一段 s0 是跟MLS、MCS相关的东西

    . 是这个文件正在被selinux保护

     

    如果没有selinux,就会导致攻击的时候先攻击一个服务,然后成功的话会提权然后攻击其他的服务,

     

    2.context: 有关联的上下文、

    用户,角色,类型,级别(敏感度高 )

    u代表用户信息,系统用户,r规则,系统操纵,t

    drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0

     

    用户:

    system_u:selinux用户,系统进程

    root_u:root用户

    user_u:系统用户

     

    角色:

    object_r:一般文件目录的角色

    system_r:进程角色

     

    type:

    文件和进程都有类型,限制存储权限

    目录的形成:依靠硬链接的关联关系,

     

    s0:

    [MLS MCS] 一个是进程权限,一个是进程区分

     

    3.查看selinux的状态

    sestatus -v 

     

    4.getenforce  查看当前临时权限

     

    5.关闭selinux

    临时

    setenforce 0

    setenforce 1 开启selinux

    永久

    vim /etc/selinux/config/

     

    解决沙盒控制的方法:

     

    方法一

    万能解决

    对某个目录的放问由selinux来控制

    1.客户端

    yum  install ftp

    安装ftp客户端

     

    2.服务端

    安装vsftpd软件包,启动服务

    清空防火墙

     

    修改ftp的默认目录为/data,

    mkdir /data

    vim /etc/passwd

    直接修改,强制保存

     

    安装这个软件包

    yum install setr*

    启动这个服务才可以做日志实时监控

    /etc/init.d/auditd restart

     

    这个时候需要先开启selinux

    setenforce 1

     

    监控日志

    tailf /var/log/messages

     

    客户端访问ftp

    ftp 192.168.117.144

     

    在监控的日志的时候由于开启了沙盒所以会报错,然后会出现一个报错信息,内含一条这个命令

    sealert -l bd5893c8-1aa2-4dd3-902e-dd8796421404

     

     

    然后运行这条命令会生成一条临时解决沙盒拒绝ftp的命令,选择第一个评分高的然后执行。

    setsebool -P allow_ftpd_full_access 1

    setsebool -p 系统临时设置的策略,只限于yum的包

     

    查看允许的ftp的策略,

    getsebool -a | grep ftp

    发现有一条允许ftp的策略:

    setsebool -P allow_ftpd_full_access --> on

     

    验证:客户端这个时候是可以访问/data的目录的

     

    方法二:

    通过指定的type分发的权限来控制:

    然后将这条策略关闭:

    setsebool -P allow_ftpd_full_access 0

     

    验证:这个时候是访问不到的,因为selinux关闭了临时开启的策略

     

    注意:

    restorecon /data/ 还原到默认的context值,需要重启

     

    首先查看这个目录下的这个文件的权限类型,然后将这个允许访问的类型复制过来,然后给/data目录设置这个权限,然后这个目录就有了访问的权限,

    ll -Z /var/ftp/

     

    cd /data

    chcon -t public_content_t /data -R

    ll -Z

     

    验证:这个时候就可以了访问了

     

    添加:

    [root@lpc didi]# setenforce 1

    [root@lpc didi]# getenforce

    Enforcing  强制执行

    [root@lpc didi]# setenforce 0

    [root@lpc didi]# getenforce

    Permissive 允许

     

    沙盒对samba服务器的控制:

    yum -y install smb

    vim /etc/samba/smb.conf

    mkdir /didi

    chmod 777 /didi/

    cd /didi/

    ls

    touch haha

    ls

    service smb restart

    service nmb restart

    vim /etc/samba/smb.conf

    [DD]

    path=/didi

    public=yes

    read only=yes

    writable=yes

     

    setenforce 1

    cd /etc/samba/

    ll -Z

    cd /didi/

    chcon -t samba_etc_t /didi/ -R

    客户端访问:

    smbclient //192.168.117.144/DD

  • 相关阅读:
    OpenResty
    Jmeter
    kubernetes 中部署 metrics-server
    Jenkins 灰度
    socat管理haproxy以及haproxy调优
    代码质量测试工具SonarQube安装配置
    Jenkins+主从+Pipeline+Webhook
    xtrabackup 实现MySQL数据库备份
    idea Error:java: Compilation failed: internal java compiler error
    使用TableSnapshotInputFormat读取Hbase快照数据
  • 原文地址:https://www.cnblogs.com/Leonardo-li/p/9028754.html
Copyright © 2011-2022 走看看