linux笔记-selinux

来源:互联网 发布:veket linux img 编辑:程序博客网 时间:2024/06/06 02:44
###############
#### selinux ####
###############


#### 1、selinux

SELINUX (安全增强型 Linux),是可保护你系统安全性的额外机制,在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 ,并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权 SELINUX 的另一个不同之处在于 , 若要访问文件 , 你必须具有普通访问权限和 SELINUX 访问权限。因此 , 即使以超级用户身份 root 运行进程 , 根据进程以及文件或资源的SELinux 安全性上下文可能拒绝访问文件或资源限 ) 标签。

#### 2、selinux安全上下文

1)、安全上下文访问规则
• WEB 服务器的 HTTPD 进程设置了 SELINUX 上下文system_u:system_r:httpd_t 标签。该上下文的重要部分是第三个用冒号分隔的字段 SELINUX 类型 : httpd_t
• 系统上的文件和资源也设置了 SELINUX 上下文标签 , 并且重要的部分是 SELINUX 类型。例如 , /var/www/html 中的文件具有类型 httpd_sys_content_t 。 /tmp 和/var/tmp 中的文件通常具有类型 tmp_t
• Seliux 策略具有允许以 httpd_t 身份运行的进程访问标记为 httpd_sys_content_t 的文件的规则。没有规则允许这些进程访问标记有 tmp_t 的文件 , 因此将拒绝这些访问 , 即使常规文件权限指出应该允许这些访问

2)、显示selinux文件上下文
• 什么确定文件的初始 SELinux 上下文 ? 通常是父目录。将父目录的上下文指定给新创建的文件。这对 vim cp和 touch 等命令其作用 , 但是 , 如果文件是在其他位置创建的并且保留了权限 ( 与 mv 或 cp -a 一样 ) 则还将保留 SELinux上下文
• 许多处理文件的命令具有一个用于显示或设置 SELinux下文的选项 ( 通常是 -Z) 。例如 , ps、ls、cp和 mkdir 都使用 -Z选项显示或设置 SELinux下文
• 显示上下文
– ps axZ
– ps -ZC
– ls -Z

3)、修改selinux安全上下文

* 临时修改,执行restorecon命令或系统重启后还原。
chcon -t
* 永久修改文件的安全上下文
semanage fcontext

semanage命令:
restorecon 是 policycoreutil 软件包的一部分
semanage 是 policycoreutil-python 软件包的一部分
semanage fcontext 可用与显示或修改 restorrecon 用来设置默认文件上下文的规则
semanage fcontext 使用扩展正则表达式来指定路径和文件名。 fcontext 规则中最常用的扩展正则表达式是(/.*)?, 表示随意地匹配 / 后跟任何数量的字符
semanage fcontext 将递归地与在表达式前面列出的目录
以及该目录中的所有内容相匹配

例:
ls -Zd /var/www/cgi-bin/
semanage fcontext -a -t httpd_sys_script_exec_t'/var/www/music/cgi(/.*)?'
restorecon -FvvR /var/www/music/cgi        ##刷新该文件的安全上下文

4)、管理selinux的布尔值
• SELinux 布尔值是更改 SELinux 策略行为的开关。SELinux 布尔值是可以启用或禁用的规则。安全管理员可以使用 SELinux 布尔值来调整策略 , 可以有选择地进行调整
• 许多软件包都具有 man page *_selinux(8), 其中详细说明了所使用的一些布尔值 ; man -k ‘_selinux’ 可以轻松地找到这些手册
• getsebool 用于显示布尔值 , setsebool 用于修改布尔值
• setsebool -P 修改 SELinux 策略 , 以永久保留修改。
semanage boolean -l 将显示布尔值是否永久

#### 3、selinux模式
1)、强制模式:selinux主动拒绝尝试读取类型上下文为 tmp_t的 web服务器。在强制模式中 ,SELINXU及时记录冲突 , 也强制执行规则
2)、许可模式:通常用于对问题进行故障排除。在许可模式下 , 即使没有明确规则 , SELINUX 也允许所有交互 , 并且记录所有被拒绝的交互。此模式可以用于确定你是否有 SELINUX问题。无需重新引导即可从强制模式转为许可模式 , 或再从许可模式转回强制模式

3)、显示及更改selinux模式
getenforce            ##显示selinux模式
setenforce 1|0     
            0        ##表示 permissive 警告
            1        ##表示 enforcing 强制
4)、更改selinux的开机状态
vim /etc/sysconfig/selinux
*********
SELINUX=disable|permissive|ernforcing
*********
说明:disable表示关闭,从disable切换到其它状态需要重启系统


0 0
原创粉丝点击