Apache和PHP的安全设置

curl查询网站信息

大多数Linux服务器都自带了curl软件, 使用方法如下:

curl --head "http://www.phphp.net"

关于curl详细的参数的说明, 请点击文章最后的引用. 上一条命令得到以下结果:

HTTP/1.1 200 OK
Date: Sat, 12 Apr 2014 05:31:50 GMT
Server: Apache/版本 (CentOS)
X-Powered-By: PHP/版本
Connection: close
Content-Type: text/html; charset=UTF-8

Apache配置

默认情况下, curl的结果暴露出了web server的版本和操作系统的种类, 以及使用的PHP版本

编辑Apache配置文件:

vi /etc/httpd/conf/httpd.conf

修改参数:

ServerTokens ProductOnly # 隐藏apache版本和OS信息
ServerSignature Off # 隐藏系统生成的页面页脚信息

如果访问网站目录的时候会把文件目录都列出来, 那就在<Directory>之间配置:

Options -Indexes

这个方法不唯一, 不能配置成功的话, 搜索一下.

PHP配置

编辑php配置文件:

vi /etc/php.ini

将 expose_php On 改成:

expose_php Off

顺便查看PHP是否在生产模式, 生产模式错误报告一般是:

display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED

配置结果

完成httpd.conf和php.ini配置后, 重启Apache:

/etc/init.d/httpd restart

再使用curl查询:

HTTP/1.1 200 OK
Date: Sat, 12 Apr 2014 05:54:05 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=UTF-8

结果去掉了Apache和PHP的版本, 同时OS信息也没显示. 还可以修改Apache源文件, 把Server改成"Microsoft-IIS/6.0"来迷惑别人.

引用

标签: Linux, 安全, Apache