nginx安全优化之隐藏版本

安全一直是互联网不可忽视的问题,今天介绍下nginx隐藏版本,别人不清楚你的版本,就无法使用针对nginx的漏洞进行攻击。nginx软件是开源的但是源码中也携带版本信息,可以修改源代码进行隐藏版本信息。

版本显示

[[email protected] ~]# curl -I 192.168.1.7|grep Server

Server: nginx/1.8.1 #nginx的软件版本信息

51CTO的web容器版本

[[email protected] nginx-1.8.1]# curl -I www.51cto.com|grep Server

Server: Tengine   #隐藏了版本信息

隐藏了版本,让版本漏洞无法使用

修改nginx源代码来隐藏nginx版本信息

文件1 "nginx-1.8.1/src/core/nginx.h" 12行-23行

原配置文件

[[email protected] tools]# sed -n ‘12,23p‘ nginx-1.8.1/src/core/nginx.h

#define nginx_version      1008001

#define NGINX_VERSION      "1.8.1"  #修改想要显示的版本如:2.2.23

#define NGINX_VER          "nginx/" NGINX_VERSION

#将nginx修改成想要显示的软件名称

#ifdef NGX_BUILD

#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"

#else

#define NGINX_VER_BUILD    NGINX_VER

#endif

#define NGINX_VAR          "NGINX" #将nginx修改成想要显示的软件名称(Evan Web Server)

#define NGX_OLDPID_EXT     ".oldbin"

修改后

[[email protected] tools]# sed -n ‘12,23p‘ nginx-1.8.1/src/core/nginx.h

#define nginx_version      1008001

#define NGINX_VERSION      "2.2.23" #版本修改为2.2.23

#define NGINX_VER          "EWS/" NGINX_VERSION

#nginx修改为EWS

#ifdef NGX_BUILD

#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"

#else

#define NGINX_VER_BUILD    NGINX_VER

#endif

#define NGINX_VAR          "EWS" #nginx修改为EWS

#define NGX_OLDPID_EXT     ".oldbin"

文件2 "nginx-1.8.1/src/http/ngx_http_header_filter_module.c" 49行

源文件

[[email protected] tools]# sed -n ‘49p‘ nginx-1.8.1/src/http/ngx_http_header_filter_module.c

static char ngx_http_server_string[] = "Server: nginx" CRLF;  #将nginx修改为想要的版本

修改后

[[email protected] tools]# sed -n ‘49p‘ nginx-1.8.1/src/http/ngx_http_header_filter_module.c

static char ngx_http_server_string[] = "Server: EWS" CRLF;   #将nginx修改为了EWS

修改链接错误的版本显示

错误链接网站显示

访问错误的链接也有暴露版本信息的危险

文件3 "nginx-1.8.1/src/http/ngx_http_special_response.c" 29行

源文件

[[email protected] tools]# sed -n ‘21,31p‘ nginx-1.8.1/src/http/ngx_http_special_response.c

"<hr><center>nginx</center>" CRLF  #将nginx修改为想要的版本信息

修改后

[[email protected] tools]# sed -n ‘29p‘ nginx-1.8.1/src/http/ngx_http_special_response.c

"<hr><center>EWS</center>" CRLF

重新编译安装,可以看到如下效果

编译安装方法:http://iywdd.blog.51cto.com/11177578/1767529

版本信息

[[email protected] nginx-1.8.1]# curl -I 192.168.1.7

HTTP/1.1 200 OK

Server: EWS/2.2.23   #更改为EWS/2.2.23

Date: Thu, 07 Apr 2016 11:51:41 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Thu, 07 Apr 2016 11:50:40 GMT

Connection: keep-alive

ETag: "57064990-264"

Accept-Ranges: bytes

错误链接修改后结果

访问错误的链接更改了版本信息

时间: 2025-01-14 16:56:11

nginx安全优化之隐藏版本的相关文章

Nginx服务优化------(隐藏版本+缓存+修改用户与组+日志分割+进程超时)

[TOC] 文章目录 一.配置Nginx隐藏版本号 1.1.修改配置文件法 1.2.修改源码法 二.修改Nginx用户与组 2.1.修改配置文件指定用户与组 三.配置Nginx网页缓存时间 四.配置日志分割 五.实现连接超时 nginx的安装已经提前配置好了,需要的可以参考我的博客,链接为:Nginx 的配置 一.配置Nginx隐藏版本号 在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏 查看方法 使用fiddler工具在Windows客户端查看Nginx版本号 在CentOS系统

Nginx服务优化之隐藏版本号、修改用户与组、配置页面缓存与时间、日志分割以及设置连接超时

Nginx服务优化之隐藏版本号.修改用户与组.配置页面缓存与时间.日志分割以及设置连接超时 前言 ? 在企业信息化应用环境中,服务器的安全性和响应速度需要根据实际情况进行相应参数配置,以达到最优的用户体验. ? 默认的nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服务器的最大作用. 一.隐藏版本号 ? 我们为什么要隐藏版本号? ? 我们一定要有一个意识:对于软件或者说服务,其安全性必然不可能是无懈可击的,总会或多或少地存在各种bug或者

配置nginx使用http2同时隐藏版本信息

配置nginx使用http2 一.配置opensslopenssl版本需大于1.0.2版本yum install -y gcc zlib-devel pcre-develwget https://www.openssl.org/source/openssl-1.1.0g.tar.gztar zxvf openssl-1.1.0g.tar.gzcd openssl-1.1.0g./config --prefix=/usr/local/openssl shared zlibmake && ma

查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息

昨天配置nginx的时候说道隐藏版本信息的问题,今天就罗列一下 要操作的信息列表 nginx版本信息查询及隐藏 Apache版本信息查询及隐藏 php版本信息查询及隐藏 tengine版本信息查询及隐藏 tomcat版本信息查询及隐藏 详细操作步骤 1.1.nginx版本信息查询       [[email protected]_nginx ~]# nginx -vnginx version: nginx/1.6.0 1.2.nginx编译配置参数查询        [[email protec

nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)

Nginx配置和优化 1.隐藏版本号 默认情况下,使用curl命令会把nginx的版本信息等获取到,如: [[email protected]_machine ~]# curl -I -H"www.beyond.com" "http://172.16.254.5/index.php"  HTTP/1.1 200 OK Server:nginx/1.6.3 Date: Wed, 24 Jun 2015 02:50:59 GMT Content-Type: text/h

Apache网页优化与安全优化(网页压缩;网页缓存;网页防盗链;隐藏版本信息)

1,网页压缩 网站的访问速度是由多个因素所共同决定的包括: 1)应用程序的响应速度 2)网络带宽 3)服务器性能 4)与客户端之间的网络传输速度等等 其中最重要的就是Apache本身的响应速度,因此提升网站性能第一个需要着手进行处理的便是尽可能地提升Apache的执行速度,使用网页压缩可以提升应用程序的速度,而且不需要任何成本. Apache的压缩模块 Apache2.x内建了mod_deflate这个模块,使用gzip压缩算法.mod_deflate可使用DeflateCompressionL

Apache安全优化:设置防盗链,隐藏版本信息 (内含Apache源码包和抓包工具)

防盗链:一些不良网站有时为了不增加成本又想扩充自己站点的内容,经常盗用其他网站的链接,一方面损害了原网站的合法利益,另一方面又加重了服务器的负担 隐藏版本信息:一般情况下,软件的漏洞信息和特定版本是相关的如果×××或别有用心之人得到了Apache的版本信息,就会使服务器遭受被×××的风险,为了防止这些事的发生,我们可以隐藏版本号,减少危险的发生 实验环境:一台linux作为web服务器,IP为192.168.100.222 一台win7作为盗链网站,IP为192.168.100.3 一台win7

Apache网页与安全优化——防盗链和隐藏版本(理论实践相结合!)

Apache防盗链 防盗链就是防止别人的网站代码里面盗用服务器的图片,文件,视频等相关资源 如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力 所有作为网站的维护人员,是要杜绝我们服务器的静态资源被其他网站盗用 配置规则变量说明 * %{HTTP_REFERER}:浏览header中的链接字段,存放一个链接的URL, 代表是从哪个链接访问所需的网页 * !^:不以后面的字符串开头 * .*$:以任意字符结尾 * NC:不区分大写 * R:强制跳转 规则匹配说明 RewriteEngi

nginx基本优化

1.1   隐藏nginx header里版本号信息 1.2   更改源码隐藏软件名称及版本号 1.3   更改掉nginx默认用户及用户组(worker进程服务用户优化) 1.4   配置nginx worker进程个数 1.5   根据cpu核数进行nginx进程优化 1.6   nginx事件处理模型优化 1.7   调整nginx worker单个进程允许的客户端最大连接数 1.8   配置nginx worker进程最大打开文件数 1.9   开启高效的文件传输模式 1.10  设置连