SELINUX在系统环境中的应用

一、SELINUX的运行模式

修改文件/etc/selinux/config

设置 SELINUX=disabled 以禁用

设置 SELINUX=permissive 宽松模式

设置 SELINUX=enforcing 强制模式

二、查看当前运行模式

wKiom1YUzeXTlXSqAABVokgqGZI351.jpg

三、临时修改运行模式

临时关闭SELINUX的方法。

wKiom1YUzj6Di1ZFAABbbeTPK0M707.jpg

临时启动SELINUX的方法。

wKioL1YUzpDT-SjgAABVln_2fS4494.jpg

四、配置SELINUX的两个主要方面

1SELINUX上下文环境

1)查看一个文件的上下文环境值

# ls -Z

创建一个默认网页

wKioL1YU07uQiOf1AACVtN0gap8377.jpg

把创建的网页文件剪切存放到apache默认的网页目录下

wKioL1YU1BajOHgmAABJdEe7k3w712.jpg

查看创建网页文件的上下文环境值

wKiom1YU1FXSVoOIAADVhkcR1Tg243.jpg

查看默认的网页目录的上下文环境值

wKioL1YU1K-CHv8vAAC6RrR5IhA218.jpg

创建的网页文件上下文环境值和默认的网页目录下的上下文环境值是不同的,所以当用户访问http服务时不能访问。

wKiom1YU1ZeDnDrZAAIQLG2oK1Y456.jpg

把创建的网页复制存放到apache默认的网页目录下,网页文件上下文环境值和默认的网页目录下的上下文环境值是相同的,所以可以访问。

wKiom1YU1kPgqO4iAAKs6QN2kj8665.jpg

2.修改selinux上下文环境值

2.1)把文件恢复到所在目录的默认值

# restorecon  -Rv /var/www/html

wKiom1YU1uSjzaluAAGKcMeHSo0059.jpg

2.2)设置某个文件的指定值

[root@rhel6-1 html]# chcon -t admin_home_t    abc

wKiom1YU10yhuDiJAAFuybk0cu8759.jpg

3.SELINUX布尔值相当于一个功能开关。

例一:实现FTP匿名用户上传

在ftp目录下创建一个incoming目录 ,使匿名用户可以上传。

wKiom1YU5oDzKHMpAABYFE2Nocs626.jpg

wKioL1YU5rDABrsvAACAbGlbKyg657.jpg

wKiom1YU5qXAXAXwAADL3RL5Zsw974.jpg

客户端进行测试,发现不能上传文件。

wKioL1YU6YOBrLYnAAN_aheFAnE638.jpg

解决的方案查看selinux是否开启,如果开启先关闭selinux,在进行测试。

wKioL1YU53eCsRuhAACJIU1eokI731.jpg

在客户端进行测试,ftp上传文件是可以上传,说明就是selinux的原因导致不能上传文件。

wKioL1YU6SmD8fkNAAPLAKb1C2M500.jpg

开启selinux并进行ftp的上传,安装setroubleshoot排错工具,屏幕右上角会弹出提示,根据提示修改

wKioL1YVxXfgTGX1AABW6RYtOPM833.jpg

wKiom1YVyVvh0KkxAAFNqZjJtZ0158.jpg

点击Troubleshoot,进入一下界面。

wKioL1YVylqy_pVzAAL_LmeMc0I304.jpg

根据提示进行操作

wKiom1YVzICif_SbAADxKervWvo198.jpg

更改后就可以上传文件了

wKioL1YVzPCi2VuLAAHLKnitnCQ550.jpg

例二:本地lj用户ftp登陆,直接用本地用户tom访问ftp,将会提示“不能改变目录”。

查看相关的selinux布尔值

wKioL1YVzjnhX9NhAAIEOFLcLSE276.jpg

再次用lj用户登录,就可以登录成功。

wKiom1YV1G6DQuKpAAFrou0Df3w268.jpg

例三:windows通过samba访问linux

1)安装samba

wKiom1YV1QrT6UFOAACVRnpQWq4106.jpg

2添加一个samba用户为root把系统用户添加成一个samba用户。

wKioL1YV1xuTRL1VAACfNMjGGso539.jpg

3)启动服务

wKioL1YV11GgPQ8KAABzuPTwiaM101.jpg

4)在windows下用UNC路径访问,能够看到root的家目录,但是双击打不开

wKiom1YV2Dvz3q14AABwwn9zt8k956.jpg

5获得与samba相关的selinux布尔值

#  getsebool �Ca | grep  samba

wKioL1YV2LeR8OynAAHhXrxbDbQ169.jpg

6开启samba服务的写入权限

#  sebsebool  -P  samba_export_all_rw1

wKioL1YV2aOhJbG2AABcP3zcHVc406.jpg

7)再次在windows下用UNC路径访问,可以打开root的家目录

4、安装setroubleshoot

# yum install �Cy setroubleshoot*

重启

有任何的selinux违规行为,系统都会给出提示和解决方案。

如果是图形界面下,屏幕右上角会弹出消息。如果是字符终端下,可以查看日志/var/log/message。如:

[root@fanlj log]# tail -2/var/log/messages

Dec 4 11:39:42 fanlj setroubleshoot: SELinux is preventing /usr/sbin/httpdfrom getattr access on the file /var/www/html/index.html. For complete SELinuxmessages. run sealert -l96114052-1747-4334-873e-3a48c35c514c

Dec 4 11:39:42 fanlj setroubleshoot: SELinux is preventing /usr/sbin/httpdfrom getattr access on the file /var/www/html/index.html. For complete SELinuxmessages. run sealert -l96114052-1747-4334-873e-3a48c35c514c

根据提示,在终端上运行命令:

# sealert -l96114052-1747-4334-873e-3a48c35c514c ->显示selinux解决方案

5、获得SELINUX设置的帮助

1# man ftpd_selinux

    # man httpd_selinux

    # man samba_selinux

2)有些服务,配置文件中也有说明

    # vim /etc/samba/smb.conf

你可能感兴趣的:(SELINUX在系统环境中的应用)