Nginx / 网站服务

隐藏Nginx标识和版本号:彻底消除安全隐患

浅时光博客 · 2月27日 · 2020年 430 字 · 约 2 分钟 10.2w次已读
AI 文章摘要 时光AI(本站开发)
文章来源(Source):https://dqzboy.com
文章来源(Source):https://dqzboy.com

前言

为了提升线上环境的安全性,常见的做法之一是隐藏Nginx的版本号,以减少潜在攻击者的信息收集。尽管可以通过 server_tokens off 参数来隐藏版本号,但这仍然会暴露当前使用的是Nginx服务。为了更彻底地解决这个问题,需要深入源代码进行处理。以下将详细介绍如何进行这一操作。

一、下载源码

[root@Web01 ~]# cd /opt/soft/
[root@Web01 soft]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
  • 解压至当前目录
[root@Web01 soft]# tar -zxvf nginx-1.16.1.tar.gz

二、改源文件

  • 我们将源码文件修改后,再进行编译安装
[root@Web01 soft]# cd nginx-1.16.1/
[root@Web01 nginx-1.16.1]# cd src/core/
[root@Web01 core]# vim nginx.h
image-613
[root@Web01 core]# cd ..
[root@Web01 src]# cd http/
[root@Web01 http]# vim ngx_http_header_filter_module.c
image-614
[root@Web01 http]# vim ngx_http_special_response.c
image-615

修改好后可以将整个解压后的包拷贝一份出来,之后在新环境部署则可以使用该修改好的包进行编译安装

三、编译安装

[root@Web01 ~]# yum -y install gcc gcc-c++ make
[root@Web01 ~]# cd /opt/soft/nginx-1.16.1/
[root@Web01 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/usr/local/nginx/nginx.pid --lock-path=/usr/local/nginx/nginx.lock --user=appadmin --group=appadmin --with-http_ssl_module --with-http_v2_module --with-http_dav_module --with-http_stub_status_module --with-threads --with-file-aio
image-616
[root@Web01 nginx-1.16.1]# make && make install

四、启动服务

[root@Web01 ~]# cd /usr/local/nginx/sbin/
[root@Web01 sbin]# ./nginx
[root@Web01 sbin]# ps -C nginx --header
   PID TTY          TIME CMD
 10349 ?        00:00:00 nginx
 10350 ?        00:00:00 nginx

[root@Web01 sbin]# ss -tnlp|grep 80

五、查看效果

  • 首先防火墙关闭或者放通80端口
[root@Web01 ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
[root@Web01 ~]# firewall-cmd --reload
success
  • 通过curl命令访问
[root@Web01 ~]# curl -I 127.0.0.1
image-617

通过web界面访问,点击 NETWORK(网络)查看请求信息

0 条回应

必须 注册 为本站用户, 后才可以发表评论!