热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux/vps环境下nginx安全配置小记

1.删除不需要的Nginx模块我们可能根据我们的需要配置Nginx,当然在编译时可以选择某些不需要的模块不编译进去,比如精简掉autoindex和SSI模块,命令如下:./configure--without-http_autoindex_module--without-http_ssi_modulemakemakei
  1. 删除不需要的Nginx模块
  我们可能根据我们的需要配置Nginx,当然在编译时可以选择某些不需要的模块不编译进去,比如精简掉autoindex和SSI模块,命令如下:
  ./configure --without-http_autoindex_module --without-http_ssi_module
  make
  make install
  当然在编译前可以通过下面的命令查看那些模块是可以开启或者关闭的:
  ./configure --help | less

  2. 修改Nginx服务器名称和版本号

  著名的NETCRAFT网站可以很轻松的查到你服务器的操作系统和服务程序版本,或者HTTP Response Header也能向我们透露这些信息,很多情况下,这些信息将为黑客进行攻击提供依据,因此我们需要对其进行伪装。
  编译Nginx源文件src/http/ngx_http_header_filter_module.c,输入以下命令:
  vi +48 src/http/ngx_http_header_filter_module.c
  找到下面两行:
  static char ngx_http_server_string[] = "Server: nginx" CRLF;
  static char ngx_http_server_full_string[] = "Server: "NGINX_VER CRLF;
  改成如下,当然具体显示什么你可以自己定义:
  static char ngx_http_server_string[] = "Server: NOYB" CRLF;
  static char ngx_http_server_full_string[] = "Server: NOYB" CRLF;

  3. 修改Nginx配置文件
  3.1 避免缓冲区溢出攻击
  修改nginx.conf并且为所有客户端设置缓冲区大小限制:
  vi /usr/local/nginx/conf/nginx.conf
  编辑并且设置如下:
  ## Start: Size Limits &Buffer Overflows ##
  client_body_buffer_size 1K;
  client_header_buffer_size 1k;
  client_max_body_size 1k;
  large_client_header_buffers 2 1k;
  ## END: Size Limits &Buffer Overflows ##
  当然也许你还需要配置下面的内容以便于改善服务器性能:
  ## Start: Timeouts ##
  client_body_timeout 10;
  client_header_timeout 10;
  keepalive_timeout 5 5;
  send_timeout 10;
  ## End: Timeouts ##
  3.2 限制一些访问
  仅允许访问我们指定的域名,避免有人扫描绑定当前IP的所有域名,或者避免直接的IP访问以及恶意的域名绑定:
  ## Only requests to our Host are allowed
  ## i.e. nixcraft.in, images.nixcraft.in and www.nixcraft.in
  if ($host !~ ^(nixcraft.in|www.nixcraft.in|images.nixcraft.in)$ ) {
  return 444;
  }
  ##
  当然,网上还流传这么个写法:
  server {
  listen 80 default;
  server_name _;
  return 500;
  }
  限制一些方法,一般GET和POST已经够我们用了,其实HTTP还定义有类似于DELETE、SEARCH等方法,用不到的话就拒绝这些方法访问服务器:
  ## Only allow these request methods ##
  if ($request_method !~ ^(GET|HEAD|POST)$ ) {
  return 444;
  }
  ## Do not accept DELETE, SEARCH and other methods ##
  下面这段参考了WordPress的官方Nginx配置。
  3.3 全局的限制文件restrictions.conf
  # Global restrictions configuration file.
  # Designed to be included in any server {} block.
  location = /favicon.ico {
  log_not_found off;
  access_log off;
  }
  location = /robots.txt {
  allow all;
  log_not_found off;
  access_log off;
  }
  # Deny all attempts to access hidden files
  # such as .htaccess, .htpasswd, .DS_Store (Mac).
  location ~ /\. {
  deny all;
  access_log off;
  log_not_found off;
  }
  建立包含上述内容的文件,然后修改站点配置文件,比如说这里有个示例:
  # Redirect everything to the main site.
  server {
  server_name *.example.com;
  root /var/www/example.com;
  include restrictions.conf;
  // Additional rules go here.
  }

推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了brain的意思、读音、翻译、用法、发音、词组、同反义词等内容,以及脑新东方在线英语词典的相关信息。还包括了brain的词汇搭配、形容词和名词的用法,以及与brain相关的短语和词组。此外,还介绍了与brain相关的医学术语和智囊团等相关内容。 ... [详细]
author-avatar
lookadgo_544
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有