博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SELinux
阅读量:6231 次
发布时间:2019-06-21

本文共 3301 字,大约阅读时间需要 11 分钟。

                   SELinux

1.SELinux

全称是Security-Enhanced Linux,安全增强的linux;

一套强化linux安全的mac扩展模块;

美国国家安全局主导开发;


SELinux 的运作机制

集成到Linux内核(2.6及以上)

为操作系统提供可定制的策略,管理工具


2.红帽的SELinux策略


SELINUXTYPE=targeted

--仅保护最常见的/关键的网络服务,其他不限制


SELINUXTYPE=mls

--提供多层次,全面的安全防护策略


我们vim /etc/selinux/config进去之后看到的SELINUXTYPE=targeted是比较常用的类型


3.SELINUX的运行模式

修改文件/etc/selinux/config(或者vim /etc/sysconfig/selinux,其实是同一个文件)

设置 SELINUX=disabled 以禁用 

设置 SELINUX=permissive 宽松模式 (0):SELinux prints warnings instead of enforcing(警告而不是强制)                    

设置 SELINUX=enforcing 强制模式 (1)


查看当前运行模式

# getenforce


临时修改运行模式

[root@rhel6-1 html]# setenforce 

usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]


当我们有时候怀疑是selinux的限制,导致某服务不能被访问时,我们可以临时修改selinux的运行模式,设为0,再查看下服务能否被访问,如果想永久修改,就需要修改他的配置文件


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


1、SELINUX上下文环境

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

# ls  -Z    //通过ls -Z 来查看上下文

(2)修改selinux上下文环境值

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


# restorecon  -Rv  /var/www/html    //restrorecon表示恢复


或者设置某个文件的指定值

[root@rhel6-1 html]# chcon -t admin_home_t abc    //chcon表示修改


常用选项:

-t,指定访问类型;

-u,-r,分别用来指定用户,角色;

-R,递归修改;

--reference=RFILE,参考指定文件的上下文


2、SELINUX布尔值


使用getsebool查看

#getsebool -a         //-a 查看所有布尔值


使用setsebool设置

#setsebool -P allow_httpd_anon_write off     //-P,永久更改,重启后仍然有效


设者布尔值的时候可以设为1或者on开启,同理,也可以设者为0或者off关闭



5.SELinux实例:


例一:SELINUX上下文环境

# echo  ‘my test web site’ > ~/index.html

#  ls  -Z  ~/index.html

# mv ~/index.html  /var/www/html

通过web页面访问,无法访问到这个主页

# restorecon  -Rv  /var/www/html

# ls  -Z  /var/www/html/index.html

刷新web页面,可以访问到主页


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

(1)#  mkdir –m 757  /var/ftp/incoming

(2)修改vsftpd.conf打开匿名上传

(3)上传文件测试,如果已经安装setroubleshoot,屏幕右上角会弹出提示,根据提示修改

# chcon  -t  public_content_rw_t  /var/ftp/incoming

#  getsebool -a  |  grep ftp  ->获得与ftp相关的selinux布尔值

#  setsebool  -P  allow_ftpd_anon_write  1(4)再次尝试上传,成功


例三:本地用户ftp登陆


直接用本地用户tom访问ftp,将会提示“不能改变目录”

查看相关的selinux布尔值

#  getsebool -a  |  grep ftp  ->获得与ftp相关的selinux布尔值

[root@rhel6-1 ~]# setsebool -P ftp_home_dir on

再次用tom登陆测试,成功

bool值相当于开关

可以装setroubleshooting


例四、windows通过samba访问linux

(1)安装samba

(2)#  smbpasswd  -a  root

(3)启动服务

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

(5)#  getsebool –a | grep  samba

(6)#  sebsebool  -P  samba_export_all_rw 1

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


6、图形化管理SELinux,安装setroubleshoot

# yum install –y setroubleshoot*

重启

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

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

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

Dec  4 11:39:42 rhel6-1 setroubleshoot: SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/index.html. For complete SELinux messages. run sealert -l 96114052-1747-4334-873e-3a48c35c514c

Dec  4 11:39:42 rhel6-1 setroubleshoot: SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/index.html. For complete SELinux messages. run sealert -l 96114052-1747-4334-873e-3a48c35c514c

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

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


7、获得SELINUX设置的帮助

(1)# man ftpd_selinux

    # man httpd_selinux

    # man samba_selinux

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

    # vim /etc/samba/smb.conf




附:

  1.SELinux安全上下文,Security Context,为文件/目录/设备标记访问控制属性;

     属性构成  用户:角色:访问类型:选项...

     [root@localhost html]# ls -Z /etc/samba/smb.conf 

-rw-r--r--. root root system_u:object_r:samba_etc_t:s0 /etc/samba/smb.conf

比如,配置samba共享的时候,共享文件如果不更改上下文环境是不能共享出去的


  2.安全上下文的一般规律:

    移动的文件,原有的上下文属性不变;

    复制的文件,自动继承目标位置的上下文。


      本文转自Jx战壕  51CTO博客,原文链接:http://blog.51cto.com/xujpxm/1403235,如需转载请自行联系原作者

你可能感兴趣的文章
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
《OpenGL ES应用开发实践指南:Android卷》—— 1.3 初始化OpenGL
查看>>
马士兵教学语录
查看>>
计算机网络与Internet应用
查看>>
标签制作软件中如何导出标签模板为PDF文件?
查看>>
[CF919E]Congruence Equation
查看>>
Java IO最详解
查看>>
关于错误error C4430 error C2365 error C2078 error C2440 error C2143的处理。
查看>>
用python写一个抽奖程序
查看>>
npm使用入门(package.json)
查看>>
You are beautiful
查看>>
inline和宏之间的区别
查看>>
hibernate篇章五--Hibernage工作原理
查看>>
MongodDB学习笔记(二)(复制)
查看>>
oracle在线迁移同步数据,数据库报错
查看>>
Java中1.0 / 0.0 会输出什么?
查看>>
linux性能剖析工具
查看>>
DP ZOJ 3872 Beauty of Array
查看>>
jQuery Ajax实例 ($.ajax_$.post_$.get)
查看>>
垃圾桶丁
查看>>