nginx基本安全优化

这篇具有很好参考价值的文章主要介绍了nginx基本安全优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

nginx基本安全优化

一、调整参数隐藏Nginx软件版本号信息

说明:软件的漏洞和版本有关,这一点很像汽车的缺陷,同一批次的产品要有问题就都有问题,别的批次可能就都是好的。因此,我们应尽量隐藏或消除Web服务对访问用户显示各类敏感信息(例如Web软件名称及版本号等信息)。

二、使用步骤

1.了解所使用软件的版本号

代码如下(示例):

[/data/aideploy]curl -I 10.67.10.198:32001
HTTP/1.1 403 Forbidden
Server: nginx/1.6.3   #<==这里很清晰地暴露了Web版本号(1.6.3)及软件名称(Nginx)
Date: Thu, 27 Oct 2022 00:56:14 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive

2.配置文件加参数来隐藏Nginx版本号

在Nginx配置文件nginx.conf中的http标签段内加入“server_tokens off;”参数,具体如下:
代码如下(示例):

http
{ .. 
server_tokens  off;    
..}

此参数放置在http标签内,作用是控制http response header内的Web服务版本信息的显示,以及错误信息中Web服务版本信息的显示。
server_tokens参数的官方说明如下:

http
syntax:  server_tokens on | off; #?<==此行为参数语法,on为开启状态,off为关闭状态
default:        server_tokens on;       #?<==此行的意思是不配置该参数,软件默认
情况的结果context:        http, server, location  #?<==此行为server_tokens参数可以放置的位置参数作用:激活或禁止Nginx的版本信息显示在报错信息和Server的响应首部位置中
Enables or disables emitting of nginx version in error messages and in the "Server" responseheader field.                #?<==此行是参数的作用原文,一定要细

官方资料地址:http://nginx.org/en/docs/http/ngx_http_core_module.html。

2.更改源码隐藏Nginx软件名及版本号

隐藏了Nginx版本号后,更进一步,可以通过一些手段把Web服务软件的名称也隐藏起来,或者更改为其他Web服务软件名以迷惑黑客。

依次修改3个Nginx源码文件。

修改的第一个文件为nginx-1.6.3/src/core/nginx.h,代码如下:

http
[root@oldboy core]# sed -n '13,17p' nginx.h 
#define NGINX_VERSION      "1.6.3"      #<==修改为想要显示的版本号,如2.2.23
#define NGINX_VER          "nginx/" NGINX_VERSION                                            
                                  #<==将Nginx修改为想要修改的软件名称,如OWS
#define NGINX_VAR          "NGINX"      
#<==将Nginx修改为想要修改的软件名称,                                            
如OWS(Oldboy Web Server)
#define NGX_OLDPID_EXT     ".oldbin

server_tokens,nginx,安全,运维
修改的第二个文件是nginx-1.6.3/src/http/ngx_http_header_filter_module.c的第49行,需要修改的字符串如下:

root@oldboy http]# grep -n 'Server: nginx'  ngx_http_header_filter_module.c
49:static char ngx_http_server_string[] = "Server: nginx " CRLF; #<==修改本行结尾的Nginx

server_tokens,nginx,安全,运维
修改的第三个文件是nginx-1.6.3/src/http/ngx_http_special_response.c,对外页面报错时,它会控制是否展示敏感信息。这里输出修改前的信息ngx_http_special_response.c中的第21~30行,代码如下:
server_tokens,nginx,安全,运维
server_tokens,nginx,安全,运维

修改后编译软件,使其生效

[root@oldboy http]# curl -I bbs.etiantian.org/oldboy/
HTTP/1.1 404 Not FoundServer: OWS/2.2.23                      #<==也更改了
Date: Thu, 12 Feb 2015 07:00:52 
GMTContent-Type: text/html
Content-Length: 198
Connection: keep-alive

更改Nginx服务的默认用户

cat nginx.conf|grep '#user'
#user  nobody;

为了防止黑客猜到这个Web服务的用户,我们需要将其更改成特殊的用户名,例如nginx或特殊点的inca,但是这个用户必须是系统里事先存在的,下面以nginx用户为例进行说明。

(1)为Nginx服务建立新用户。为Nginx服务建立新用户的操作过程如下:
useradd nginx -s /sbin/nologin -M
#<==不需要有系统登录权限,应当禁止其登录能力,相当于Apache里的用户
id nginx #<==检查用户
(2)配置Nginx服务,让其使用刚建立的nginx用户。
更改Nginx服务默认使用的用户,方法有两种:
第一种为直接更改配置文件参数,将默认的“#user nobody;”改为如下内容:

user  nginx nginx;

第二种方法为在编译Nginx软件时直接指定编译的用户和组,命令如下:

./configure  --user=nginx --group=nginx --prefix=/application/nginx1.6.3 --with-http_stub_status_module  --with-http_ssl_modul
提示:前文在编译Nginx服务时,就是这样带着参数的,因此无论配置文件中是否添加参数,默认都是nginx用户。

(3)检查更改用户的效果。
重新加载配置后,检查Nginx服务进程的对应用户。
通过查看上述更改后的Nginx进程,可以看到worker processes对应的用户都变成了nginx。

总结

·提升网站安全,要从最简单、最短板、最低点的地方入手解决问题,如果门打开着,即使给窗户安装再结实的护栏也没有意义。
·向有经验的人及优秀的网站公司学习。
·学会看官方文档,根据第一手资料去分析。
·命令输出结果中含有需要过滤或要保留的内容时,命令自身可能有参数可直接实现。文章来源地址https://www.toymoban.com/news/detail-780127.html

到了这里,关于nginx基本安全优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx服务性能和安全优化

    目录 一、配置Nginx隐藏版本相关信息 1.隐藏版本号 2.修改版本号及相关信息 ​编辑​编辑 二、修改Nginx运行时的属主和属组 三、配置Nginx网页缓存时间 四、配置Nginx站点日志分割 五、设置Nginx长连接及超时时间 六、配置Nginx网页压缩 七、配置Nginx防盗链 1.模拟盗链 2.配置防盗

    2024年02月11日
    浏览(63)
  • Nginx的优化,安全与防盗链

     在Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。进行相关的配置修改,就能实现Nginx页面的压缩,达到节约带宽,提升用户访问速度   重启服务,进行访问测试:    压缩已经生成 (accept- Encoding) 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方

    2024年02月02日
    浏览(26)
  • Nginx的HTTPS部署与安全性能优化

    Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛用于应用部署和负载均衡。在安全环保意识的逐渐提高下,HTTPS也成为现代Web应用中必不可少的一环。本篇文章将重点介绍Nginx的HTTPS部署和安全性能优化。 证书申请 首先需要去证书颁发机构(CA)进行SSL证书的申请。

    2024年02月11日
    浏览(25)
  • nginx通过配置文件来进行的安全方面优化

    目录 1、隐藏版本号 2、配置错误页面重定向 3、添加header防止XSS攻击 4、利用referer图片防盗链 5、拒绝某些user-agent 6、限制HTTP请求方法 7、nginx开启https 8、控制迸发连接数 说明: 由于某些 Nginx 漏洞只存在于特定的版本,隐藏版本号可以提高安全性。 Nginx隐藏版本信息配置示

    2024年02月08日
    浏览(27)
  • Nginx服务优化措施、网页安全与配置防盗链

    目录 一.优化Nginx 二.隐藏/查看版本号 隐藏版本号方法一:修改配置文件,关闭版本号  隐藏版本号方法二:修改源码文件中的版本号,重新编译安装 三.修改用户与组 四.设置缓存时间 五.日志切割脚本 六.设置连接超时控制连接访问时间 七.开启多进程 八.配置网页压缩 九

    2024年02月07日
    浏览(31)
  • Web服务器群集:Nginx网页及安全优化

    目录 一、理论 1.Nginx网页优化 2.Nginx安全优化 3.Nginx日志分割 二、实验 1.网页压缩 2.网页缓存 3.连接超时设置 4.并发设置 5.隐藏版本信息  6.脚本实现每月1号进行日志分割 7.防盗链 三、总结 (1)概述 在企业中,部署Nginx后只采用默认的配置参数,会引发网站很多问题,换言

    2024年02月13日
    浏览(30)
  • 网络安全之防火墙 server nat 基本配置实验

    目录 网络安全之防火墙 server nat 基本配置实验 实验图  1.进入视图模式  2.配置端口IP地址即区域 防火墙       ​编辑  untrust区域 DMZ区域 trust区域 配置trust-untrust区域的ftp 在untrust区域中的server1开启ftp服务  配置trust-untrust区域的ftp的安全策略 登陆ftp  查找server-map 配置 

    2024年02月15日
    浏览(31)
  • PHP之linux、apache和nginx与安全优化面试题

    1.linux常用命令 2、nginx的优化 gzip压缩优化 expires缓存 网络IO事件模型优化 隐藏软件名称和版本号 防盗链优化 禁止恶意域名解析 禁止通过IP地址访问网站 HTTP请求方法优化 防DOS攻击单IP并发连接的控制,与连接速率控制 严格设置web站点目录的权限 将nginx进程以及站点运行于监

    2024年02月07日
    浏览(37)
  • 【Nginx运维】Nginx升级打补丁

    升级nginx的过程主要需要以下步骤: 1.备份当前nginx版本及其配置文件。 2.下载新版本的nginx安装包。(如nginx-1.20.1.tar.gz) 3.解压缩安装包,并进入该目录。 4.使用configure脚本配置编译选项。 5.执行make命令进行编译。 make 6.停止旧版本的nginx服务,启动新版本nginx服务。 7.验证

    2024年02月12日
    浏览(25)
  • 【运维】Nginx添加/替换/更新ssl证书

    xxx.com.key xxx.com.pem 添加或替换红圈里的内容为对应的证书文件目录    打开对应的网站   https://xxx.com

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包