本文共 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,如需转载请自行联系原作者