如何隐藏服务器信息

2015-05-23 22:26:55 +08:00
 pangtianyu

比如说我不想让别人知道我的站点是用了 nginx 的。Google 了一下发现大多数都只说了怎么隐藏 nginx 的版本号,而不是彻底隐藏整个 nginx 的(我的意思是不让人知道用的是 nginx)。

5991 次点击
所在节点    NGINX
15 条回复
babyname
2015-05-23 22:43:42 +08:00
不要用nginx
babytomas
2015-05-23 22:46:38 +08:00
编译的时候修改点东西,参考: http://www.zntec.cn/archives/nginx-change-tengine-151.html

然后把错误页改改 。。。估计差不多可以隐藏了
viko16
2015-05-23 22:48:56 +08:00
nginx 源码修改

#define NGINX_VAR

然后编译安装之
Septembers
2015-05-23 22:49:04 +08:00
自己做一个"like nginx"
sanddudu
2015-05-23 22:49:42 +08:00
https://github.com/sanddudu/fake-iis

只是用来参考,然后改源代码,不要直接用
vimutt
2015-05-23 22:56:33 +08:00
需要改源码然后重新编译nginx吧
cevincheung
2015-05-23 23:08:12 +08:00
tengine
服务器配置:

server_token off;
server_tag 自己随便写;
rhwood
2015-05-24 11:15:35 +08:00
nginx前面放一个varnish
sub vcl_fetch {
set beresp.http.Server = "爱写什么写什么";
}
shakoon
2015-05-24 11:16:28 +08:00
记得把默认的错误页面都换掉,不然随便一个404就知道你是什么了
holulu
2015-05-24 11:44:05 +08:00
除了用 Headers More 来修改 http header 之外,再用 Echo 来改写错误页的内容就 OK 了
johnsmith123
2015-05-24 14:14:01 +08:00
高中狗就好好读书,没事别想这想那的=。=
ihciah
2015-05-24 21:40:20 +08:00
故意搞一个IIS的出错页面,改源码再编译之类的。不过还是可能被nmap等指纹检测出来的。
不明白为何用Nginx要藏着...安全问题其实大部分是出在自己的应用代码上
pangtianyu
2015-05-24 23:32:48 +08:00
@ihciah 不觉得很好玩嘛?安全什么的才不去管呢
pangtianyu
2015-05-24 23:33:21 +08:00
@johnsmith123 抱歉……我不是高中生……
orzfly
2015-05-25 05:05:57 +08:00
_(:з」∠)_想伪装 IIS 的可以注意一下这个差异,IIS 在遇到无效 HTP 请求的时候返回的 Server 头不是 IIS 而是 Microsoft-HTTPAPI/2.0,而且 400 里会有为什么是无效的请求……

漏了 Host 的请求:

-- snip --
# echo "GET / HTTP/1.1\n\n" | nc 192.168.43.177 80   0  1
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 24 May 2015 21:02:37 GMT
Connection: close
Content-Length: 334

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>
-- snip --

根本就不是 HTTP 的请求:

-- snip --
# echo "WHAT THE FUCK\n\n" | nc 192.168.43.177 80
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 24 May 2015 21:04:14 GMT
Connection: close
Content-Length: 311

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request</h2>
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>
-- snip --

好像是个正常的 HTTP 请求(相应内容被省去了):

-- snip --
# echo "GET / HTTP/1.1\nHost: 192.168.43.177\n" | nc 192.168.43.177 80
HTTP/1.1 200 OK
Content-Type: text/html
Last-Modified: Tue, 04 Nov 2014 07:02:27 GMT
Accept-Ranges: bytes
ETag: "7b6a334bfdf7cf1:0"
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Sun, 24 May 2015 21:02:54 GMT
Content-Length: 701
-- snip --

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX