unit10~~selinux 的管理
2017-04-26 21:13
281 查看
1.selinux的准备工作
后重启电脑
2.显示及更改 SELINUX 模式
• getenforce• setenforce 0|1
– 0 表示 permissive
# 警告
– 1 表示 enforcing # 强制
3.selinux 安全上下文访问规则
• 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 的文件 , 因此将拒绝这些访问 , 即
使常规文件权限指出应该允许这些访问
显示 SELinux 文件上下文
• 什么确定文件的初始 SELinux 上下文 ? 通常是父目录。将父目录的上下文指定给新创建的文件。这对 vimcp 和 touch 等
命令其作用 , 但是 , 如果文件是在其他位置创建的并且保留了权
限 ( 与 mv 或 cp -a 一样 ) 则还将保留 SELinux 上下文
• 许多处理文件的命令具有一个用于显示或设置 SELinux 上下
文的选项 ( 通常是 -Z ) 。例如 , ps 、 ls 、 cp 和 mkdir 都
使用 -Z 选项显示或设置 SELinux 上下文
• 显示上下文
– ps axZ
– ps -ZC
– ls -Z
4.修改 selinux 安全上下文
• chcon -t– 一次性定制安全上下文,执行 restorecon 刷新后还原
• semanage fcontext
– 永久更改文件的上下文
5.semanage 命令
• restorecon 是 policycoreutil 软件包的一部分• semanage 是 policycoreutil-python 软件包的一部分
• semanage fcontext 可用与显示或修改 restorrecon 用来
设置默认文件上下文的规则
• semanage fcontext 使用扩展正则表达式来指定路径和文
件名。 fcontext 规则中最常用的扩展正则表达式是
(/.*)?, 表示随意地匹配 / 后跟任何数量的字符
• semanage fcontext 将递归地与在表达式前面列出的目录
以及该目录中的所有内容相匹配
示例:
[root@serverX ~]# mkdir /virtual
[root@serverX ~]# touch /virtual/index.html
[root@serverX ~]# ls -Zd /virtual/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /virtual/
[root@serverX ~]# ls -Z /virtual/
-rw-r--r--. root root unconfined_u:object_r:default_t:s0 index.html
[root@serverX ~]# semanage fcontext -a -f "" -t httpd_sys_content_t
'/virtual(/.*)?'
[root@serverX ~]# restorecon -RFvv /virtual/
restorecon reset /virtual context system_u:object_r:default_t:s0-
>system_u:object_r:httpd_sys_content_t:s0
restorecon reset /virtual/index.html context system_u:object_r:default_t:s0-
>system_u:object_r:httpd_sys_content_t:s0
[root@serverX ~]# ls -Zd /virtual/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /virtual/
[root@serverX ~]# ls -Z /virtual/
-rw-r--r--. root root system_u:object_r:httpd_sys_content_t:s0 index.html
6.管理 SELinux 布尔值
• SELinux 布尔值是更改 SELinux 策略行为的开关。SELinux 布尔值是可以启用或禁用的规则。安全管理员可
以使用 SELinux 布尔值来调整策略 , 以有选择地进行调整
• 许多软件包都具有 man page *_selinux(8), 其中详细说明
了所使用的一些布尔值 ; man -k ‘_selinux’ 可以轻松地找
到这些手册
• getsebool 用于显示布尔值 , setsebool 用于修改布尔值
• setsebool -P 修改 SELinux 策略 , 以永久保留修改。
semanage boolean -l 将显示布尔值是否永久
示例
[root@serverX ~]# getsebool -a
abrt_anon_write --> off
.....
[root@serverX ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs --> off
[root@serverX ~]# setsebool httpd_enable_homedirs on
[root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs
httpd_enable_homedirs
-> off Allow httpd to read home directories
[root@serverX ~]# getsebool httpd_enable_homedirs
httpd_enable_homedirs --> on
[root@serverX ~]# setsebool -P httpd_enable_homedirs on
[root@serverX ~]# semanage boolean -l |grep httpd_enable_homedirs
httpd_enable_homedirs
-> on
Allow httpd to read home directories
7.监控 SELinux 冲突
• 必须安装 setroubleshoot-server 软件包 , 才能将SELinux 消息发送至 /var/log/messages
• etroubleshoot-server 侦听
/var/log/audit/audit.log 中的审核信息并将简短摘
要发送至 /var/log/messages
• 摘要包括 SELinux 冲突的唯一标识符 ( UUIDs ),
可用于收集更多信息。 Sealert -l UUID 用于生成
特定事件的报告。 Sealert -a
/var/log/audit/audit.log 用于在该文件中生成所有
事件的报告
示例
[root@demo ~]# echo www.westos.org /root/file1
[root@demo ~]# mv /root/file1 /var/www/html/
[root@demo ~]# service httpd start
[root@demo ~]# elinks -dump http://localhost/file1
Forbidden
You don't have permission to access /file1 on this server.
[root@demo ~]# tail -1 /var/log/audit/audit.log
....
type=AVC msg=audit(1312818090.800:25721): avc: denied { getattr } for
pid=29653 comm="httpd"
Path="/var/www/html/file1" dev=dm-1 ino=54309
scontext=unconfined_u:system_r:httpd_t:s0
tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
....
[root@demo ~]# tail /var/log/messages
[root@demo ~]# tail /var/log/messages
.....
Aug 8 23:41:30 demo setroubleshoot: SELinux is preventing /usr/sbin/httpd
"getattr" access to /var/www/html/file1.
For complete SELinux messages. run sealert -l bbb10235-7683-4387-977d-
a34c141bba86
[root@demo ~]# sealert -l bbb10235-7683-4387-977d-a34c141bba86
Summary:
SELinux is preventing /usr/sbin/httpd "getattr" access to /var/www/html/file1.
Detailed Description:
... ...
You can restore the default system context to this file by executing the
restorecon command. restorecon
'/var/www/html/file1', if this file is a directory, you can recursively restore using
restorecon -R
'/var/www/html/file1'.
Fix Command:
/sbin/restorecon '/var/www/html/file1'
[ 执行事件报告中给出的解决命令 :
[root@demo ~]# restorecon /var/www/html/file1
[root@demo ~]# elinks -dump http://localhost/file1
www.westos.org
相关文章推荐
- Linux--RH134---unit 10 selinux的初级管理
- linux初级学习之selinux的管理2-10
- 『mcse 2008 系统管理』Unit 10 Windows Server 2008安全策略
- 10、进程管理,case和函数 学习笔记
- selinux的初级管理
- 客户关系管理系统10(自定义拦截器)
- OCA读书笔记(10) - 管理UNDO数据
- 协议森林10 魔鬼细节 (TCP滑窗管理)
- SELinux的策略与规则管理相关命令
- 现代软件工程 10 绩效管理
- RHCE7学习笔记20――管理SELinuxx安全
- 操作系统学习笔记_10_文档管理 --文件系统
- 第十七章、程序管理与 SELinux 初探
- django “如何”系列10:如何管理静态文件
- 开发管理 CheckLists(10) -开发准备列表
- 博客10:Linux的网络管理
- RHEL二十(管理SELINUX的安全性)
- 常耀俊老师经典《项目管理实战(10步法)》 课程
- 第二十七天 sudo使用、selinux管理、手工制作linux系统
- 10项目沟通管理