网站运营
位置:首页>> 网站运营>> SELinux中的Apache和MySQL设定

SELinux中的Apache和MySQL设定

 来源:asp之家 发布时间:2010-05-09 17:54:00 

标签:SELinux,apache,mysql

Fedora Core 3 在安装时默认把SELinux的选项激活了。SELinux比普通的Linux内核提供了更高的安全性,理论上说,在系统因为未知漏洞溢出的时候,普通用户是不可能得到超级用户的权限了。但是,就是因为SELinux安全性的提高,导致我们在使用时,会发生一些我们以前从没遇到的问题。

前两天我在使用Fedora Core 3搭建PHP+MySQL的WebServer时就遇到了一些问题。现在整理一下,如果您也遇到同样的问题,那么,看过这篇文章,就应该可以轻而易举的解决了。

1. Apache - Document root must be a directory 问题。

有可能和这个问题并发的问题还有 403 Forbidden 禁止访问的问题。

现象描述:

不使用系统默认的 /var/www/html作为系统的Document Root,自己新建一个目录后修改 /etc/httpd/conf/httpd.conf 中的配置,然后重起Apache的Daemon,发现Apache无法起动,系统报错:

Document root must be a directory

但是,我们设置的DocumentRoot 的确是一个目录,而且apache用户具有可读权限。

另一种情况:新建一个虚拟目录或文件后,无法访问,显示 Forbidden, 403 Error,但文件或目录有可读权限。

问题产生的原因:

一开始我想来想去想不出为什么,但是给我感觉是权限的问题,用传统的Linux的思维方式来看,权限绝对没有问题。但是仔细一想,SELinux是不是会有其他安全的设定?

检查 avc message,查看 /var/log/messages文件,发现有类似以下内容的这样一段:

Dec 24 17:54:59 hostname kernel: audit(1098222899.827:0): avc: 

denied { getattr } for pid=19029 exe=/usr/sbin/httpd

path=/var/www/html/about.html dev=dm-0 ino=373900

scontext=root:system_r:httpd_t tcontext=user_ubject_r:user_home_t

tclass=file

嘿嘿,问题找到了,果然是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型,因此apache的进程没有权限,无法访问。针对Apache的进程所使用的SELinux target policy规定了apache的进程只能访问httpd_sys_content_t类型的目录或文件。

解决办法:

很简单,把目录或文件的策略类型改成 httpd_sys_content_t 就可以了

使用root用户

# chcon -t httpd_sys_content_t 目录名或文件名

然后可以用 ls -laZ 命令查看文件目录的策略类型

2. Mysql - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

刚搞定Apache,mySQL又出问题了。

问题现象:

本机用mysql命令可以正常登录数据库并正常操作。但是在php写的页面中,不管怎样,连接mySQL数据库时,都会报如下错误:

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)

问题原因:

查看mysql.sock文件,存在并且任何人都可读可写。发现avc message (/var/log/messages)中同样有策略错误的记录。

用 ps -efZ|grep mysql 命令检查mysql的进程,发现mySQL使用了unconfined_t 这个未定义策略类型在运行,而mysql.sock以及mysqld文件的策略类型都是var_lib_t。很明显,这应该是个Fedora Core 3 的 BUG,SELinux target policy的BUG,redhat并没有为mySQL制定正确的target policy。

解决办法:

到redhat的bugzilla系统上搜索,果然找到了这个BUG。

Bug #:  138421 

https://bugzilla.redhat.com/bugzill...g.cgi?id=138421

在这个页面找到新的target policy的补丁安装即可

补丁下载页面:

ftp://people.redhat.com/dwalsh/SELinux/FC3

你也可以从本文的附件中下载

只要下载

selinux-policy-targeted-1.17.30-2.23以上的版本就能正常使用mySQL了。

如果你原来的系统安装了 selinux-policy-targeted-source (源代码),那么你也必需下载source的rpm文件,并首先升级这个包,因为两个包有依赖关系。

补丁安装办法:

使用root用户。

先升级新的target-policy-source (如果你之前安装了这个包的话)

# rpm -Uvh selinux-policy-targeted-sources-1.17.30-2.61.noarch.rpm

升级新的target-policy

# rpm -Uvh selinux-policy-targeted-1.17.30-2.61.noarch.rpm

更新mysql相关的target policy

# rpm -q -l mysql-server | restorecon -R -v -f -

# rpm -q -l mysql | restorecon -R -v -f -

重起mysql的服务

# service mysqld restart

试一下吧,一定有效

0
投稿

猜你喜欢

  • 我做了如下测试:(1) http://www.xxx.com/new/new.asp?id=49’Microsoft OLE DB Prov
  • 小编日前发现,美国搜索巨头Google开始实施“更有进攻性”的搜索广告策略,具体是在搜索结果的顶部显示关键词广告,将广告和搜索结果“在视觉上
  • 下面教给Godaddy用户电子邮件转发的设置步骤:第一、登陆AccountManger.第二、在MyProducts部分,点击Email/E
  • 11月13日,支付宝“免费试用”频道赫然出现一台斯柯达昊锐汽车,网站表示,凡拥有驾照的上海或者浙江的支付宝用户,都可以申请用一周的时间来免费
  • 昨日一则关于Google今日要举办特别发布会的报道在业内大肆流传,据报道,Google要在今日下午举办的“Front E
  • 在织梦系统中有内容模型这个概念,不同内容模型可以用来构建不同内容形式的站点,在系统中自带了以下几种模型:普通文章、图集、软件、商品、分类信息
  • 我是名站长,就像08上海草根大会上哪位嘉宾(忘了)一直强调自己是一名草根一样,我是名真正的站长,因为我有自己的站,并且很多人,可是我现在关注
  • 做站的都是苦孩子,也都是好孩子。 先说下 自己的经历,99 年开始上网,01年开始做个人站,都是小站,没有赚到钱,倒是后来玉米卖了点钱,把价
  • 报告称三分之一美国网民浏览YouTube网站,惊人的数字不是吗?全球互联网的风向标就在美国,web2.0在国内的盛行来源于其在美国的风光。2
  • 网页游戏又称Web游戏,无需庞大的客户端,打开浏览器即可进行游戏。近年来网页游戏发展势头迅猛,玩家也是越来越喜爱和认可网页游戏。开发一款网页
  • 最近经常和一些站长在讨论各大搜索优化效果。个人执己见,但在我看来,优化百度比优化Google轻松得多,效果也好得多,或许是因为我优化过的网站
  • 10月23日消息,国内领先的社交网站51.com宣布,截止2009年10月中旬,该网站用户上传的图片数量已经超过110亿张,相比去年10月份
  • 打开:inc_channel_unit_functions.php加入下面一段//zouql //$f 列表总数 //$t&nbs
  • 百度热门关键词能带来很大的流量,这是大家有目共睹的事情。看看百度指数,如“货架”、“手机”这些词每天的检索量都过千过万。现在SEO教程都是“
  • 先说:这是俺一个菜鸟建站到如今想到的,俺的原则是--写自己的帖子,让高手笑去吧,在别人的笑声中我们能得到更多(这好像是几年前看到阿江老大的一
  • 在威客这个平台上,出现最多的是设计(这里指图形图像类),出现最少的恐怕就是这个软件开发了。什么是软件?先要明白这个概念。软件(softwar
  • 在日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了机器、打不开文件
  • DedeCMS是织梦团队开发的堪称国内最专业的PHP网站管理系统,它以简单、易用、高效为特色,成为了众多站长建站的首选利器,同时也受到了一致
  • 默认的方式下linux会把文件访问的时间atime做记录,这在绝大部分的场合都是没有必要的,如果遇到机器IO负载高或是CPU WAIT高的情
  • 有用户问Godaddy怎么把iTunes RSS重新定位到另一位置呢?现在我们就来解决这一问题。如果你想把某个RSS feed重新定位到另外
手机版 网站运营 asp之家 www.aspxhome.com