热门标签 | 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.
  }

推荐阅读
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 深入解析Nginx中的Location指令及其属性
    本文将详细探讨Nginx配置文件中关键的location指令,包括其三种匹配方式(精准匹配、普通匹配和正则匹配),以及如何在实际应用中灵活运用这些匹配规则。此外,还将介绍location下的重要子元素如root、alias和proxy_pass,并解释相关参数的使用方法。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
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社区 版权所有