SELinux 安全机制
- 唯有相似的类型才可互相访问,因此以 httpd_t 运行的 Apache 可以读入拥有 httpd_sys_content_t 类型的 /var/www/html/index.html
- 由于 Apache 在 httpd_t 这个本地内运行但不属 username 这个用户,纵使 /home/username/myfile.txt 可供任何人读入,Apache 却不能访问该文件,因为它的 SELinux 安全性脉络并不是 httpd_t 类型
- 倘若 Apache 被人占用,又假设它仍未取得更改 SELinux 标签至另一个脉络的 root 权限,它将会不能引导 httpd_t 本地外的进程(藉此防止权限升级),或访问与 httpd_t 本地不相关的文件
SELinux 拒绝某个文件、进程或资源被访问的基要原因
- 一个被错误标签的文件
- 一个进程在错误的 SELinux 安全性脉络下运行
- 政策出错,某个进程要访问一个在编写政策时意料不到的文件,并产生错误信息
- 一个入侵的企图
日志分析
- 日志档是排除任何疑难的关键,而 SELinux 亦不例外
- SELinux 缺省会通过 Linux 审计系统 auditd 将日志写在 /var/log/audit/audit.log 内,而该务服缺省为启用的
- 假若 auditd 长驻程序并未运行,信息将会被写进 /var/log/messages
- SELinux 的日志都以 AVC 这个关键字作标签,让 grep 等程序可轻易地把它们从其它信息中过滤出来 。
日志分析工具
- 用 SELinux排除疑难工具协助你分析日志档,将它们转换为供人阅读的格式
- SELinux 排除疑难工具是由 setroubleshoot 组件所提供的
- 这个工具包含一个以可读格式显示信息及解决方案的图像界面、一个桌面通报图示、与及一个长驻进程,setroubleshootd,它负责查阅新的 SELinux AVC 警告并传送至通报图示
# 这个工具可以从 X 窗口图像管理员的「系统」选单或从命令行引导 sealert -b # 不运行 X 服务器的人可以通过命令行产生供人阅读的报告 sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt
5.2 重新标签文件chcon: 这个指令可以用来更改一个或多个文件与目录的 SELinux 安全性脉络,正如 chown 或 chmod 可以用来更改一个文件的拥有者或标准权限 。
语法
- chcon [OPTION]... CONTEXT FILE...
- chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE...
- chcon [OPTION]... --reference=RFILE FILE...
【Linux安全之SELinux理解】选项
- -R:递归打标
举例
- chcon -t httpd_sys_content_t index.html
实战演示
# 就以Apache为例,假设你想修改DocumentRoot以另一个位置来伺服网页,替换缺省的/var/www/html #目录 。譬如说我们在 /html 创建了一个目录(又或者挂载点),然后在那里创建一个 index.html文档: mkdir /html touch /html/index.html # 查看selinux属性信息 # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:default_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:default_t html # 我们可以见到/html这个目录以及/html/index.html这个文件都拥有缺省的default_t安全性脉络类型 。# 如果我们打开浏览器并尝试查看该页,SELinux 将会正确地拒绝它们被访问并记录错误,因为该目录与文 # 件拥有不正确的安全性脉络 。我们须要设置供 Apache 使用的 httpd_sys_content_t 正确安全性脉络 。# chcon -v --type=httpd_sys_content_t /html context of /html changed to user_u:object_r:httpd_sys_content_t # chcon -v --type=httpd_sys_content_t /html/index.html context of /html/index.html changed to user_u:object_r:httpd_sys_content_t # ls -Z /html/index.html -rw-r--r-- root root user_u:object_r:httpd_sys_content_t /html/index.html # ls -Z | grep html drwxr-xr-x root root user_u:object_r:httpd_sys_content_t html # 我们同样也可以利用 -R 这个回递标旗同时将它们的脉络设置: chcon -Rv --type=httpd_sys_content_t /html # 以这个方式更改安全性脉络在系统重新开机后仍会获保留,直至该部份文件系统被重新标签 。# 这个动作也算颇常,因此正确的解决方法,就是于测试后编写一条自定的规则,并把它与本地 # 的规则进行合并 。它将会是原有的 200 多条规则外的一条规则 。要作出永久性、能过渡文件 # 系统重新标签的安全性脉络改动,我们采用SELinux管理工具,或者在命令行执行semanage指令 。semanage fcontext -a -t httpd_sys_content_t "/html(/.*)?" # 如此便会将 /html 以下的一切加入 httpd_sys_content_t 这个文件脉络类型 。
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Atoms 是一个可以让你轻松管理 Linux Chroot 环境的 GUI 工具 | Linux 中国
- Delphi之后,新型国产可视化编程工具,风头正盛
- 听完我的建议,Linux将不再困难
- 网络攻击之网络隐身简介
- 10 大可以摧毁你的 Linux 的命令
- Linux命令中特殊符号
- 有关父母之爱的诗歌名言名句?赞美父母之爱的诗句或名言有哪些
- 人物设定|《你安全吗》秦淮、军师人设惊艳,以后“职场剧”请按这个标准拍
- 朱之文|一会儿去当兵,一会儿竞选村长,大衣哥的儿子在悠悠之口中好忙碌
- 杨紫|如何评价杨紫、杨幂、赵丽颖?都是女强人,实绩让她们立于不败之地!