修改nginx服务器类型实现简单伪装(隐藏nginx类型与版本等)

这篇文章主要介绍了修改nginx服务器类型实现简单伪装(隐藏nginx类型与版本等),需要的朋友可以参考下

修改服务器类型为了防止被有所图的人利用,才做的一些调整。比如当前使用的一个低版本正好被爆出漏洞,如果被发现,那岂不是危险。

1、隐藏版本号,修改nginx.conf,在http区块加入


server_tokens off;

然后重新加载nginx,可以看到server头部也是不带版本号,也可以通过404查看

2、返回自定义服务器类型
通过curl -i http://127.0.0.1 查看当前的类型或者一些站长工具都可以看到,可以修改一为gws或者GFW来威慑一些利用工具扫描的家伙

具体方法:


[root@REDIS_CLUSTER nginx-1.8.1]# vim src/http/ngx_http_header_filter_module.c
修改前
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
...
修改后
static char ngx_http_server_string[] = "Server: gws" CRLF;
static char ngx_http_server_full_string[] = "Server: gws" CRLF;

然后重新编译后,查看效果(Server: gws)


[root@REDIS_CLUSTER nginx-1.8.1]# /usr/local/nginx/sbin/nginx -s stop
[root@REDIS_CLUSTER nginx-1.8.1]# /usr/local/nginx/sbin/nginx
[root@REDIS_CLUSTER nginx-1.8.1]# curl -i http://127.0.0.1
HTTP/1.1 404 Not Found
Server: gws
Date: Tue, 02 Feb 2016 04:02:40 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive

下面是补充的内容:

修改NGINX版本名称伪装任意WEB SERVER

无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势。其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着。

国内淘宝、新浪、网易、腾讯等都在使用。其中淘宝正是基于原作者的BSD-like协议,在其源代码基础上开发了Tengine,这暂且不表。

今天我们来说说,如何修改Nginx其内部默认名称。这对安全或者装逼都是非常实用的。

我们都知道一般Nginx有哪些内部名称展示,如有通过HTTP Response
Header中的Server、错误页的footer、FPM-FastCGI等。

一般来说修改3个位置,一个是nginx.h、另一个是ngx_http_header_filter_module.c、还有一个ngx_http_special_response.c。

提示:以下修改需要在编译安装Nginx之前进行,修改之后再编译

现在Web Server使用广泛,针对它的攻击也越来越多,Nginx这玩意出道时间也并不长,虽然国内很多门户网站都用它,小内存VPS用户也爱它,但是我可不想哪天它爆出了个惊天BUG,上次80sec公布的Nginx相关PHP FPM漏洞就是警示哦,倘若伪装了我的Nginx服务器,攻击者就不知道我使用的是何种Web Server,也就无从下手了。


修改src/core/nginx.h(Nginx内部名称的)


#define NGINX_VERSION      "1.8.0"
#define NGINX_VER          "NGINX/" NGINX_VERSION

NGINX_VERSION是版本号,NGINX_VER是名称

修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)


static char ngx_http_server_string[] = "Server: nginx" CRLF;

修改src/http/ngx_http_special_response.c(修改错误页的底部Footer)

static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;

为什么不修改安装后的Nginx Config下的fastcgi.conf呢?
因为现在外部已经是无法了解我们的服务器名称,已经达到我们的目的了。
而且我们常用的一些程序,可能会对你的前端(反向代理服务器)做判断,毕竟Nginx不同于Apache,无法动态规则。

特别是Wordpress的缓存插件,大多会通过判断你是否Nginx,如果是的话,提醒你添加一些规则语句。

这时fastcgi.conf就起作用的,其中的
fastcgi_param SERVER_SOFTWARE
nginx/$nginx_version;可以使得PHP与Nginx内部之间的互相了解。

所以我的建议,还是不修改fastcgi.conf,当然你非要改,也可以的。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

一:确定你的系统是UTF编码 [root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8 二:NGINX配置文件里默认编码设置为utf-8 server { listen 80; server_name .inginx.com ; index index.html index.htm index.php; root /usr/local/nginx/html/inginx.com; ch
很多网站需要采用伪静态来访问动态网页。所以像phpcms这样的系统,都提供了一个.htaccess文件,供写伪静态规则。但这个规则是针对Apache的。在nginx服务器上并不起作用。 nginx 可以直接将伪静态规则写在配置文件中,但这个需要有服务器管理权限,普通站长不
在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向,用户的收藏和搜索引 擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失。不仅如此,之前该页面的一切积
利用nginx泛域名解析配置二级域名和多域名 网站的目录结构为 html ├── bbs └── www html为nginx的安装目录下默认的存放源代码的路径。 bbs为论坛程序源代码路径 www为主页程序源代码路径 把相应程序放入上面的路径通过 http://www.youdomain.com 访问
一:安装nginx nginx在windows下进行完整配置,需要下载windows的nginx,下载完成后,将下载的nginx解压到你要安装配置的路径,假设我这里是D:\nginx-1.11.4\nginx-1.11.4\,打开nginx的文件夹,找到里面的conf目录的nginx.conf,修改以下内容: 打开错误日
一直在Linux平台上部署web服务,但是最近的一个项目,必须要用windows,不得已再次研究了nginx在windows下的表现,因为Apache httpd在Windows下表现其实也不算太好,而我更喜欢nginx。 惊奇地发现nginx在Windows下已经趋于稳定,于是我决定使用nginx作为web