Chinaunix首页 | 论坛 | 博客
  • 博客访问: 145378
  • 博文数量: 13
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1192
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-11 15:41
个人简介

Cyber Security

文章分类

全部博文(13)

文章存档

2015年(1)

2014年(6)

2013年(6)

分类: LINUX

2014-01-02 12:48:33

为了防止被黑客扫描到web服务器信息,通过相对应的web服务器信息找出对应的版本漏洞,从而对web服务器进行入侵,nginx虽然功能强大,但是也是软件,软件就可能会有漏洞,例如nginx- 0.6.32版本,默认情况下可能导致服务器错误的将任何类型的文件以php的方式进行解析,比如上传一个jpg格式的木马到论坛网站,通过漏洞解析成一 个php的webshell,从而入侵获得服务器的权限,这将导致严重的安全问题,使得黑客可能攻陷支持php的nginx服务器。如果暴漏了nginx 版本而且该版本又存在安全漏洞那么你的web服务器肯定危在旦夕了。
针对于nginx服务器,可以修改源码中关于nginx的header描述信息,以下以nginx-1.2.0版本为例.

点击(此处)折叠或打开

  1. [root@www nginx-1.2.0]# cd src/core/
  2. [root@www core]# vim nginx.h -------编辑nginx.h文件

点击(此处)折叠或打开

  1. /*
  2.  * Copyright (C) Igor Sysoev
  3.  * Copyright (C) Nginx, Inc.
  4.  */
  5.  
  6.  
  7. #ifndef _NGINX_H_INCLUDED_
  8. #define _NGINX_H_INCLUDED_
  9.  
  10.  
  11. #define nginx_version 1002000
  12. #define NGINX_VERSION "2.2.2" //默认为1.2.0
  13. #define NGINX_VER "Apache/" NGINX_VERSION //默认为Nginx
  14.  
  15. #define NGINX_VAR "NGINX"
  16. #define NGX_OLDPID_EXT ".oldbin"
  17.  
  18.  
  19. #endif /* _NGINX_H_INCLUDED_ */

然后进行正常编译完成安装。

测试效果

使用强大的nmap扫描主机


使用curl获取http请求信息


或者访问一个不存在的URL也可以查看到效果

可以看到无论是用nmap扫描主机还是用curl获取对网站http报文的请求信息甚至是访问请求一个不存在的url都会显示web服务器使用的是 Apache2.2.2版本,从而隐藏了我们真实web服务器版本即nginx-1.2.0版本,当然这里可以伪装为IIS、Lighthttp、 Tengine甚至是自定义的名字都可以,总之迷惑了入侵者的思路,保护了web服务器的安全。

补充:有朋友留言给我,说404页面还是显示出nginx的风格,那就修改默认404页面吧

在nginx.conf中增加如下内容指定404页面路径(/usr/local/nginx/html)


点击(此处)折叠或打开

  1. error_page 404 /404.html;
  2. location = /404.html {
  3.       root html;
  4. }
重新加载配置文件

点击(此处)折叠或打开

  1. /usr/local/nginx/sbin/nginx -s reload
任意访问一个不存在的页面,就可以看到效果了!

最好修改成windows系统web服务器IIS的404页面,更具有迷惑性,具体可以结合我的另一篇关于修改源码隐藏Apache的版本号的文章.


阅读(3425) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~