专注前端,专注网页设计制作 - (网页制作/模板制作/设计) QQ:755150799 织梦模板 | 网页特效 | 网站模板 | 建站教程 | TOP排行榜 | Tag标签 | 联系我们

服务器教程之关于DNS和Apache

时间:2014-03-06来源:学技巧网站制作 作者:学技巧 阅读: 次 【 点评一下

不要让Apache在分析配置文件的时候使用到DNS解析。如果Apache在分析配置文件时用到了DNS解析,您的服务器就会发生可靠性的问题(也可能根本无法启动),或者遭致拒绝(偷窃)服务攻击(包括用户可以从其他用户那里偷窃点击)。
一个简单示例
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
为了让Apache功能正常,一个虚拟主机绝对需要以下两部分的信息:ServerName和与该服务器绑定的至少一个IP地址。上述示例没有包括IP地址,于是Apache必须要使用DNS解析来查询www.abc.dom的地址。如果在某些不可预料的情况下,当您的服务器解析配置文件时没有得到DNS的支持,那么这个虚拟主机将不会被配置。它将不会对任何请求作出反应。(在Apache1.2之前的版本,服务器甚至无法启动)。
假设www.abc.dom的IP地址是10.0.0.1,那么考虑以下这个配置片断:
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
现在Apache需要DNS对这个虚拟主机进行反向域名解析来确定其ServerName。如果反向解析失败,那么将导致这个虚拟主机功能丧失(在Apache的1.2版本之前,服务器将不能启动)。如果虚拟主机是基于域名的,它将完全不能使用,但如果它是基于IP的,那么它将很有可能工作。然而,如果Apache不得不为一个已经包含了服务器域名的服务器产生一个完整的URL,那么它将可能产生一个无效的URL。
以下是一个可以避免上述两个问题的配置片断:
ServerName www.abc.dom
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
拒绝服务
拒绝服务主要由(至少)两种形式导致。如果您在运行Apache1.2以前的版本,在上述两种情况下,如果您的任何一个虚拟主机的DNS解析失败,您都会无法启动服务。在一些情况下,DNS解析甚至不在您的控制范围之内。比如说,如果abc.dom是您的一个客户,而且他们自己控制着DNS。那么仅仅是因为他们删除了www.abc.dom这个记录,都会导致您1.2版本以前的Apache无法启动。
另外一种形式就更隐蔽了。比如说下面这个配置片断:
 ServerAdmin webgirl@abc.dom
 DocumentRoot /www/abc
 ServerAdmin webguy@def.dom
 DocumentRoot /www/def
假设您已经为www.abc.dom设定了10.0.0.1、为www.def.dom设定了10.0.0.2。更进一步,假设def.dom自己控制DNS。在这种配置下,def.dom可以将所有指向abc.dom的流量据为己。为了达到这个目的,他们只需把www.def.dom的地址解析设置成10.0.0.1就可以了。因为他们控制着自己的DNS服务,所以您无法阻止他们把www.def.dom这个记录指向任何一个IP地址。
然后,所有向10.0.0.1发出的请求(包括用户所有类似http://www.abc.dom/whatever的URL)都将会被def.dom这个虚拟主机所接收。为了更好的理解这一切是怎样发生的,您需要一个关于Apache是怎样将进入的请求分配给它的虚拟主机的深入说明。


分享到:
  • 用微信  “扫一扫”

    将文章分享到朋友圈。

    关注公众号:xue-jiqiao

本文版权归原作者所有,转载请注明原文来源出处,学技巧网站制作感谢您的支持!