沙盒技术——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

原文地址:https://www.cnblogs.com/Leonardo-li/p/9028754.html