RH135-13-管理SELinux
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3.以下哪些属于标准SELinux 上下文类型?(选 择一项或多项)
– – – – – a)selinux_type ——不存在 b)object_r ——这是SELinux角色 c)httpd_sys_content_t d)tmp_t e)user_u ——这是SELinux上下文用户
SELinux模式
Hale Waihona Puke • 如何使用semanage 针对新目录添加上下文。
– – – – – # mkdir /virtual # touch /virtual/index.html # ls -Zd /virtual/ # ls -Z /virtual/ # semanage fcontext -a -f " " -t httpd_sys_content_t '/virtual(/.*)?‘ – #restorecon –RFvv /virtual – # ls -Zd /virtual/ – # ls -Z /virtual/
基本SELinux概念测试
• 1.SELinux对以下哪些项目应用安全性上下文(选 择所有适合项目)?
– – – – – a)端口 b)进程 c)文件 d)目录 e)远程文件系统
• 2.SELinux可以用于:(选择一项或多项)?
– – – – – a)防止服务在其他端口上运行 b)保护来自web服务器等应用的用户数据 c)阻止远程系统访问本地端口 ——这是指防火墙 d)使系统保持更新 ——这是指RHN等 e)访问web服务器 ——这是指firefox等web访问
单元 13
管理SELinux
目标
• • • • • 复习基本SELinux 概念 显示和设置SELinux模式 显示和设置SELinux文件上下文 通过SELinux布尔值调整策略行为 监控SELinux策略冲突情况
基本SELinux安全性概念
• SELinux是一组可确定哪个进程能访问哪些文件, 目录,端口等的安全规则。 • 每个文件,进程,目录和端口都具有专门的安全 标签,称为SELinux上下文。 • 上下文只是一个名称,SELinux策略使用它来确 定某个进程是否能够访问文件,目录或端口。 • 默认情况下,该策略不允许任何交互,因此明确 的规则授予访问权限。如果没有允许规则,则不 允许访问。
– – – – – # ps axZ # service httpd start # ps -ZC httpd # ls -Z /home # ls -Z /var/www
• 什么确定文件的初始SELinux 上下文呢?
– 通常是父目录。将父目录的上下文指定给新创建的文 件。 – 这对vim,cp 和touch 等命令起作用,但是,如果文件 是在其他位置创建的并且保留了权限(与mv,或cp -a 一样),则还保留SELinux 上下文。 – # ls -Zd /var/www/html/ – # touch /var/www/html/index.html – # ls -Zd /var/www/html/index.html
• semanage fcontext 可用于显示或修改, restorecon 用来设置默认文件上下文的规则。它 使用扩展正则表达式来指定路径和文件名。 • fcontext 规则中最常用的扩展正则表达式是(/.* )?,表示随意地匹配/后跟任何数量的字符。本 质上,它将递归地与表达式前面列出的目录以及 该目录中的所有内容相匹配。
• • • • •
# touch /root/file3 # mv /root/file3 /var/www/html # service httpd restart # tail /var/log/audit/audit.log # tail /var/log/messages – “允许访问”部分建议使用
• SELinux标签有若干个上下文,但我们最关注第 三个上下文:类型上下文。 • 类型上下文名称是以_t结尾。
– web服务器的类型上下文是httpd_t 。 – 通常位于 /var/www/html 中的文件和目录的类型上下文 是httpd_sys_content_t 。 – 通常位于/tmp 和 /var/tmp 中的文件和目录的类型上下 文是tmp_t。 – web服务器端口的类型上下文是 http_port_t。
管理SELinux 布尔值
• SELinux 布尔值是更改SELinux 策略行为的开关 。 • SELinux 布尔值是可以启用或禁用的规则。 • 安全管理员可以使用SELinux 布尔值来调整策略 ,以有选择地进行调整。 • 许多软件包都具有man page*_selinux(8),其中 详细说明了所使用的一些布尔值;man -k ‘_selinux’可以轻松地找到这些手册。
监控SELinux 冲突
• 必须安装setroubleshoot-server 软件包,才能将 SELinux 消息发送到 /var/log/messages。 • setroubleshoot-server 侦听 /var/log/audit/audit.log 中的审核信息并将简短摘 要信息发送至/var/log/message。该摘要包括 SELinux 冲突的唯一标识符(UUIDs),可以用 于收集更改资料。 • sealert -l UUID 用于生成特定事件的报告。 sealert -a /var/log/audit/audit.log 用户组该文件中 生成所有事件的报告。
• restorecon /var/www/html/file3。如果你要调整其他文件 restorecon,可以递归的重设上下文: • restorecon –R /var/www/
测试:管理SELinux
• • • • • • • • • • 1)将student 用户身份登录系统,打开终端,并切换到root。 2)将web_content_tgz 归档文件从 instructor:/var/ftp/pub/materisls # cp /net/instructor/var/ftp/pub/materials/web_content.tgz /tmp 3)将归档文件提取到/tmp # cd /tmp # tar -xvf web_content.tgz 4)将提取的目录或文件移至/var/www/html # mv web_content /var/www/html 5)启动web服务 # service httpd start
• getsebool 用于显示布尔值,setsebool用于修改 布尔值。 • setsebool -P 修改 SELinux策略,以永久保留修 改。 • semanage boolean -l 将显示布尔值是否永久。
– – – – – – –
# getsebool -a # getsebool httpd_enable_homedirs # setsebool httpd_enable_homedirs on # semanage boolean -l | grep httpd_enable_homedirs # getsebool httpd_enable_homedirs # setsebool -P httpd_enable_homedirs on # semanage boolean -l | grep httpd_enable_homedirs
• 6)通过web浏览器访问 url: http://serverX/web_content,以尝试观 察新目录 • # elinks -dump http://serverX/web_content • 7)从系统中搜索尝试浏览新安装的内容时可能生成的所有SELinux 冲突的UUID。 • # cat /var/log/message | grep 'sealert -1' • 8)生成冲突的文本报告 • # sealert -1 UUID > ~/httpd_selinux.log • 9)按照报告的建议恢复新内容的SELinux上下文。 • # restorecon -Rv /var/www/html/web_content • 10)通过访问url,http://serverX/web_content, 确定可以通过web浏 览器查看资料。 • # elinks -dump http://serverX/web_content
• SELinux模式
– 1)强制模式(enforcing) – 2)许可模式(permissive) – 3)禁用模式(disabled)
• 显示和修改SELinux模式
– 在引导时,使用/etc/sysconfig/selinux 更改默认 SELinux 模式。 – 如要显示当前SELinux 模式,请使用 getenforce。 – 如要修改当前SELinux 模式,请使用setenforce。
练习
• 要求你将远程计算机的dns 配置调整为与桌面计 算机的配置完全匹配。你确定最简单方法是将文 件/etc/resolv.conf 从本地计算机复制到远程计算 机。
– – – – 1)scp /etc/resolv.conf root@serverX 2)ssh root@serverX 3)观察初始/etc/resolv.conf 的SElinux 上下文 # ls -Z /etc/resolv.conf
练习
• 更改强制模式和许可模式 • 1)在系统上,将默认SELinux 模式更改为许可模 式,并重新引导。 • 2)重新引导后,验证系统是否处于许可模式 • 3)将默认SELinux 模式更改为强制模式 • 4)将当前SELinux 模式更改为强制模式
显示和修改 SELinux 文件上下文
• 许多处理文件的命令具有一个用于显示或设置 SELinux 上下文的选项(通常是 -Z)。 • 例如,ps,ls,cp 和 mkdir 都使用 -Z 选项显示或 设置 SELinux 上下文。
– – – – – – – –
4)将resolv.conf 从root的主目录移至 /etc/resolv.conf # mv /root/resolv.conf /etc 5)观察新复制的/etc/resolv.conf 的 SElinux 上下文 # ls -Z /etc/resolv.conf 6)恢复新定位的 /etc/resolv.conf 的 SElinux 上下文 # restorecon /etc/resolv.conf 7)观察恢复的 /etc/resolv.conf 的 SElinux 上下文 # ls -Z /etc/resolv.conf
• 策略中有一个规则允许Apache(作为httpd_t 运 行的web服务器进程)访问通常位于 /var/www/html 中的具有上下文的文件和目录及其 他web服务器目录(httpd_sys_content_t)。 • 策略中没有适用于通常为于/tmp 和/var/tmp 中文 件的允许规则,因此不允许访问。 • 有了SELinux,恶意用户就无法访问/tmp目录, SELinux甚至还有适用于nfs 和cifs 等远程文件系 统的规则,尽管这些文件系统上的所有文件都用 相同的上下文标记。
• restorecon 是 policycoreutil 软件包的一部分, semanage 是 policycoreutil-python 软件包的一部 分。
– – – – – – – – # touch /tmp/file1 /tmp/file2 # ls -Z /tmp/file* # mv /tmp/file1 /var/www/html # cp /tmp/file2 /var/www/html # ls -Z /var/www/html/file* # semanage fcontext -l # restorecon -Rv /var/www/ # ls -Z /var/www/html/file*