Nginx服务优化(一)隐藏版本号
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,配置Nginx隐藏版本号在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏查看方法使用fiddler工具在Windows客户端查看Nginx版本号在CentOS系统中使用"curl -I网
千家信息网最后更新 2025年02月02日Nginx服务优化(一)隐藏版本号
配置Nginx隐藏版本号
在生产环境中,需要隐藏Nginx的版本号,以避免安全漏洞的泄漏
查看方法
使用fiddler工具在Windows客户端查看Nginx版本号
- 在CentOS系统中使用"curl -I网址"命令查看
Nginx隐藏版本号的方法
- 修改配置文件法
- 修改源码法
编译安装nginx服务
1.将宿主机上的工具包共享出去
2.通过Samba服务将工具包挂载到Linux系统
[root@localhost ~]# mkdir /mnt/tools[root@localhost ~]# smbclient -L //192.168.100.50/Enter SAMBA\root's password: OS=[Windows 10 Enterprise LTSC 2019 17763] Server=[Windows 10 Enterprise LTSC 2019 6.3] Sharename Type Comment --------- ---- ------- IPC$ IPC 远程 IPC share Disk tools Disk Users Disk Connection to 192.168.100.50 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)NetBIOS over TCP disabled -- no workgroup available[root@localhost ~]# mount.cifs //192.168.100.50/tools /mnt/tools/Password for root@//192.168.100.50/tools: [root@localhost ~]#
3.将nginx服务源码包解压到"/opt/"目录
[root@localhost ~]# cd /mnt/tools/[root@localhost tools]# lsawstats-7.6.tar.gz extundelete-0.2.4.tar.bz2 forbid.png jdk-8u191-windows-x64.zip LAMP-C7 picture.jpgcronolog-1.6.2-14.el7.x86_64.rpm fiddler.exe intellijideahahau2018.rar john-1.8.0.tar.gz LNMP[root@localhost tools]# cd LNMP/[root@localhost LNMP]# lsDiscuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz nginx-1.12.2.tar.gz php-7.1.10.tar.bz2 php-7.1.20.tar.gz[root@localhost LNMP]# tar zxvf nginx-1.12.2.tar.gz -C /opt/...............//省略解压过程[root@localhost LNMP]#
4.安装编译所需工具包
[root@localhost ~]# yum install gcc gcc-c++ pcre-devel zlib-devel -y...........//省略安装过程[root@localhost ~]#
5.切换到nginx服务源码包目录,创建一个nginx用户
[root@localhost LNMP]# cd /opt/[root@localhost opt]# lsnginx-1.12.2 rh[root@localhost opt]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# lsauto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src[root@localhost nginx-1.12.2]# [root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx //-M 不创建家目录[root@localhost nginx-1.12.2]# id nginxuid=1001(nginx) gid=1001(nginx) 组=1001(nginx)[root@localhost nginx-1.12.2]#
6.配置nginx服务
[root@localhost nginx-1.12.2]# ./configure \> --prefix=/usr/local/nginx \ //安装路径> --user=nginx \ //属主> --group=nginx \ //属组> --with-http_stub_status_module //启用统计模块
7.编译安装nginx服务
[root@localhost nginx-1.12.2]# make && make install..........//省略过程[root@localhost nginx-1.12.2]#
8.在易于系统识别的目录下,建立nginx服务命令的软链接
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //建立软链接[root@localhost nginx-1.12.2]# nginx -t //配置文件测试nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost nginx-1.12.2]#
9.制作nginx服务管理脚本(任选一种即可)
脚本一:通过"systemctl"命令管理
[root@localhost nginx-1.12.2]# cd /lib/systemd/system[root@localhost system]# vim nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/bin/kill -s HUP $MAINPIDExecStop=/usr/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target[root@localhost system]# chmod 754 nginx.service //添加执行权限[root@localhost system]# systemctl start nginx.service //开启服务[root@localhost system]# netstat -ntap | grep 80 //查看tcp80端口tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 52924/nginx: master [root@localhost system]# [root@localhost system]# systemctl stop firewalld.service //关闭防火墙[root@localhost system]# setenforce 0[root@localhost system]#
脚本二:通过"service"命令管理
[root@nginx nginx-1.12.2]# vim /etc/init.d/nginx#!/bin/bash# chkconfig: - 99 20# description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" in start) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo "Usage: $0 {start|stop|restart|reload}" exit 1esacexit 0[root@nginx nginx-1.12.2]#[root@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx //添加执行权限[root@nginx nginx-1.12.2]# chkconfig --add nginx //添加让service能识别nginx服务[root@nginx nginx-1.12.2]# [root@nginx nginx-1.12.2]# service nginx start //开启服务[root@nginx nginx-1.12.2]# netstat -ntap | grep 80 //查看tcp80端口tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 58696/nginx: master [root@nginx nginx-1.12.2]#[root@nginx nginx-1.12.2]# systemctl stop firewalld.service //关闭防火墙[root@nginx nginx-1.12.2]# setenforce 0[root@nginx nginx-1.12.2]#
修改配置文件法
1.查看IP地址
[root@localhost nginx-1.12.2]# ifconfig ens33: flags=4163 mtu 1500 inet 192.168.52.131 netmask 255.255.255.0 broadcast 192.168.52.255 inet6 fe80::8629:c3e2:139c:884a prefixlen 64 scopeid 0x20 ether 00:0c:29:7a:41:33 txqueuelen 1000 (Ethernet) RX packets 53364 bytes 74679913 (71.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 16068 bytes 1016893 (993.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.查看版本号
[root@localhost nginx-1.12.2]# curl -I http://192.168.52.131/HTTP/1.1 200 OKServer: nginx/1.12.2 //版本号Date: Wed, 13 Nov 2019 07:10:22 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Wed, 13 Nov 2019 07:03:51 GMTConnection: keep-aliveETag: "5dcbaad7-264"Accept-Ranges: bytes[root@localhost nginx-1.12.2]#
3.修改配置文件
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.confhttp { include mime.types; default_type application/octet-stream; server_tokens off; //添加,关闭版本号显示
4.再次查看版本号
[root@localhost nginx-1.12.2]# service nginx restart [root@localhost nginx-1.12.2]# curl -I http://192.168.52.131/HTTP/1.1 200 OKServer: nginx //版本号不再显示Date: Wed, 13 Nov 2019 07:15:09 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Wed, 13 Nov 2019 07:03:51 GMTConnection: keep-aliveETag: "5dcbaad7-264"Accept-Ranges: bytes[root@localhost nginx-1.12.2]#
修改源码法
1.修改配置文件
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.confhttp { include mime.types; default_type application/octet-stream; server_tokens on; //开启版本号显示
2.修改版本号
[root@localhost nginx-1.12.2]# vim src/core/nginx.h#define nginx_version 1012002#define NGINX_VERSION "1.1.1" //修改版本号为1.1.1#define NGINX_VER "nginx/" NGINX_VERSION
3.重新配置nginx服务
[root@localhost nginx-1.12.2]# lsauto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src[root@localhost nginx-1.12.2]# ./configure \> --prefix=/usr/local/nginx \> --user=nginx \> --group=nginx \> --with-http_stub_status_module........//省略配置过程
4.重新编译安装nginx服务
[root@localhost nginx-1.12.2]# make && make install.........//省略编译过程[root@localhost nginx-1.12.2]#
5.开启服务,并查看版本号
[root@localhost nginx-1.12.2]# service nginx restart //开启服务[root@localhost nginx-1.12.2]# curl -I http://192.168.52.131/ //查看版本HTTP/1.1 200 OKServer: nginx/1.1.1 //版本号伪装成功Date: Wed, 13 Nov 2019 07:35:32 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Wed, 13 Nov 2019 07:03:51 GMTConnection: keep-aliveETag: "5dcbaad7-264"Accept-Ranges: bytes
版本
服务
配置
文件
过程
编译
命令
工具
源码
目录
工具包
系统
脚本
管理
方法
权限
端口
链接
防火墙
防火
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql数据库 两张表关联
阜阳安卓软件开发定制
嵌入式软件开发的三种高度
哪些服务器有安全资质
网络安全员竞赛
网络安全主题心得体会200字
日本网络安全宣传月
日本电脑网络安全
软件开发毕业设计答辩都怎么问
常熟数据网络技术服务价格
单招软件开发面试自我介绍
学校的网络安全教育教案
魔兽轮回服务器人数
企业网络安全应急措施
查询数据库目录
win7配置服务器
软件开发公司考核考试
域名和服务器成本
软件开发需要什么硬件配置
wamp 获取数据库中文
软件开发端
关于校园网络安全的心得
日本服务器安装配置
2k22连接不到服务器错误代码
怪物猎人ol新服务器
2022年如何做软件开发
服务器做raid步骤
数据库deletefrom
海量数据库查询优化技术
百度智能云服务器怎么上传网页