我不想让任何人发现我在使用NGINX,甚至是互联网上的Ubuntu。有一些工具(如BuiltWith)可以扫描服务器以检测它们使用的工具。此外,一些破解工具可能有助于检测。我能对外界隐藏所有这些信息的最好/最接近的方法是什么?
发布于 2010-12-19 21:18:07
您可以通过添加
server_tokens off;到http、server或location上下文。
或者,如果您想要完全删除服务器头,则需要在Nginx源代码中编译具有header更多模块的Nginx,因为该标头是在Nginx源代码中硬编码的,并且该模块允许更改任何http标头。
more_clear_headers Server;然而,有许多隐藏的方式,服务器通过它们的实现执行意外,这可能有助于识别系统。例如,它如何响应错误的SSL请求。我看不出有什么切实可行的办法来防止这件事。
我可能会提出一些建议:
发布于 2016-03-29 04:19:22
如果您已经使用apt-get在Debian或Ubuntu中安装了nginx,则可能需要安装包nginx- in来设置或清除"Server“标头。
完成后,可以在nginx.conf (通常为/etc/nginx/nginx.conf)中添加以下行:
若要彻底清除“服务器”标题,请执行以下操作:
more_clear_headers Server; 将自定义字符串设置为“服务器”
more_set_headers 'Server: some-string-here';发布于 2011-06-11 04:36:38
@马丁F.是的。您必须从源代码编译它,并在编译源代码之前更改所需的内容。
我假设您下载了最后一个稳定版本,然后解压缩它,您就知道文件在哪里了。如果是这样的话,请执行以下操作:
nano src/http/ngx_http_header_filter_module.c如果我没记错的话,找第48行。
static char ngx_http_server_string[] = "Server: nginx" CRLF;用MyWhateverServerNameIWant代替nginx。
static char ngx_http_server_string[] = "Server: MyWhateverServerNameIWant" CRLF; 然后
nano src/core/nginx.h 找线
#define NGINX_VER "nginx/" NGINX_VERSION将"nginx/“改为"MyWhateverServerNameIWant/”,改为
#define NGINX_VER "MyWhateverServerNameIWant" NGINX_VERSION最后,如果还想更改版本号
查找# NGINX_VERSION定义"1.0.4“行
为你想要的任何版本修改"1.0.4“。例如,它会读到
#define NGINX_VERSION "5.5.5"希望能帮上忙。不管怎样。保护服务器的安全远远超过不显示正在运行的内容。PHP本质上是不安全的,linux也是不安全的。当然,如果采取了所有必要的措施来实现良好的安全性,linux可能是相当安全的。就PHP而言,我建议使用索申来帮助增强代码的安全性。
https://serverfault.com/questions/214242
复制相似问题