在另一篇“如何简单获取Web服务器(Apache)的版本”中,我说到了为了防止某些别有用心的家伙窥视我们的服务器,应该做些什么,即便是为我们的服务器砌上一堵砖墙也好(虽然不怎么结实,但总比裸露在外界好些吧!)
   Okay,让我们先来看看,这砖墙应该砌在什么地方?呵呵 ,让我们着眼于2个参数,分别为ServerTokens和ServerSignature,通过控制这2个阀门应该就能起到一些作用,比如我们可以在配置文件中这么写:

ServerTokens ProductOnly
ServerSignature Off

ServerTokens
   这个阀门用于控制服务器是否相应来自客户端的请求,向客户端输出服务器系统类型或内置模块等重要的系统信息。

  • 在主配置文件中提供全局控制
  • 默 认阀值为”Full”(ServerTokens Full),所以,如果你的Linux发行版本没有更改过这个阀值的话,所有与你的系统有关的敏感信息都会向全世界公开(恐怖哦~)。比如RHEL会将该 阀值更改为”ServerTokens OS”,而Debian依然使用默认的”Full”阀值

  以apache-2.0.55为例,阀值可以设定为以下某项(后面为相对应的Banner Header):  

ProductOnly  >>>    Server: Apache
Major  >>>    Server: Apache/2
Minor  >>>  Server: Apache/2.0
Minimal  >>>  Server: Apache/2.0.55
OS  >>>  Server: Apache/2.0.55 (Debian)
Full (or not specified) default  >>>  Server: Apache/2.0.55 (Debian) PHP/5.1.2-1
                                                         +b1 mod_ssl/2.0.55 OpenSSL/0.9.8b


ServerSignature

   这个阀门控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。

  • 可在全局设置文件中控制,或是通过.htaccess文件控制
  • 默认为”off “(ServerSignature Off),有些Linux发行版本可能会打开这个阀门,比如Debian在默认的虚拟主机上默认将这个阀门设置为开放
  • 全局阀门的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,所以,必须确保这样的事情不应该发生

可用的阀值为下面所示:

Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)
On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName
     (2.0.44之后的版本,由ServerTokens负责是否输出版本号)
EMail: 创建一个发送给ServerAdmin的”mailto”


注意*上述关于如何设置2个阀门从而尽量减少敏感信息泄露的方法,并不会使你的服务器真的更安全,如果你现在使用的版本比较旧,请务必尽快将系统升级,降低被蠕虫***的风险。

=======================================================================

如果你已经看过我写的另一篇关于如何隐藏Apache信息的文章,你就不会感到陌生,是的,我们今天再来谈谈如何隐藏PHP信息,毕竟apache+php的组合,就像切片面包+果酱一样,深入千家万户,呵呵
   还记得我们上次提到的那2个阀门了吗?对,就是ServerTokens & ServerSignature,Okay,让我们先来看看,通过设置这2个阀门后系统会提供给我们一些什么“有用”的信息:

HEAD http://test01.10domains.com/index.html
200 OK
Connection: close
Date: Fri, 16 Oct 2006 01:13:23 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Client-Date: Fri, 16 Oct 2006 21:42:53 GMT
Client-Peer: 192.168.0.102:80
Client-Response-Num: 1

  哦~,看上去还不错是吗。好的,再来看看,如果指向的是index.php,那会发生什么:

HEAD http://test01.10domains.com/index.php
200 OK
Connection: close
Date: Fri, 16 Oct 2006 01:16:30 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Client-Date: Fri, 16 Oct 2006 21:48:13 GMT
Client-Peer: 192.168.0.102:80
Client-Response-Num: 1
X-Powered-By: PHP/5.1.2-1+b1

看到最后那行了吗?我们的狐狸尾巴被暴露了~

   要隐藏这条大尾巴,我们就得去php.ini把它关闭掉,因为它默认是开放的(哦~太搞笑了,这么大条尾巴),编辑你的php.ini文件(它可能位于 /etc/php.ini , /etc/oho5/apache2/php.ini,或是其他什么只有你自己知道的地方8-P),找到”expose_php On”这行,把它改成”Off “就可以了:


expose_php = Off

   这下好了,再也不用担心大尾巴了,我只是把大尾巴牢牢绑在大腿上藏在大风衣下面而已,但这并不代表我们就不是只狐狸了,哈哈哈