Nginx安全防护与HTTPS部署

目录

 Nginx 隐藏版本号

 限制危险请求方法

 请求限制(CC攻击防御)

 压力测试

 防盗链

 防止防盗链

 动态黑名单

 自动添加黑名单

 HTTPS配置

        HTTPS 概念

        安全通信的四大原则

        HTTPS的几种加密方式

        nginx https的作用


Nginx 隐藏版本号

        !!!注意 每个配置过的文件都要重启nginx 注意!!!!

        !!!配置文件 要及时覆盖掉 或者删除掉 要不然会有冲突 !!!!

        在生产环境中,需要隐藏Nginx的版本号,以避免泄漏 nginx的版本,使攻击者不能针对特定的版本进行攻击;在隐藏版本号之前可以使用Fiddler 工具抓取数据包,查看nginx版本,也可以在OpenEuler 中使用命令curl -I 查看

        修改配置文件(vim /etc/nginx/conf/nginx.conf)

        配置前 是可以看到版本号的 

                       

        验证:

                 

 限制危险请求方法

 验证:

        

 请求限制(CC攻击防御)

        验证: 

vim /usr/local/nginx/html/index.html        #内容随便写
111111111for i in $(seq 100);do curl 192.168.10.101;done     #访问多次就访问失败了
curl 192。168.10.101            #单个访问就可以访问到

 压力测试

        在另外一台电脑上下载  httpd-tools

         验证:        也可以通过访问nginx的日志信息访问的次数

        防盗链

        先修改win10的hosts文件 

        同时;也要修改Linux系统中的hosts文件

 

vim /uar/local/nginx/conf/nginx.conf
server {listen       80;server_name  www.aaa.com;cd /usr/local/nginx/html/(将所需要的图片放到该目录下)
vim  index.html(里面内容全删掉)
<h1>nihao zhshi wo de touxiang </h1>		#这个是网站的首行,可以随便写 记得区分两个网站
<img src="111.jpg"/>		#“111.jpg”是我当前目录下的照片

                                                ​​​​​​​        ​​​​​​​        ​​​​​​​        

        102下载httpd

dnf -y install httpdvim /var/www/html/index.html    
<h1>zh shi fangdao lian </h1>		    #这个是网站的首行,可以随便写 记得区分两个网站
<img src="http://www.aaa.com/111.jpg"/>	    #指向的是101的网站图片systemctl stop firewalld
systemctl start httpd

        

        验证:
win10 访问 www.aaa.com www.bbb.com #是可以访问到的 

防止防盗链

vim /usr/local/nginx/conf/nginx.conflocation ~* \.(png|jpg|pif|jpeg|bmp|)$ {root html;valid_referers aaa.com *.aaa.com;if ($invalid_referer) {return 403;}}win10 访问 www.aaa.com 		#可以访问到图片内容www.bbb.com		#不能访问到图片内容

验证:

 

 动态黑名单

编辑黑名单配置文件

        动态黑名单是 Nginx中一种实时拦截恶意请求的安全机制,它允许在不重启服务的情况下,动态更新需要封禁的 IP地址或网段。相比静态配置的 allow/deny指令,动态黑名单更灵活高效,适用于高并发、多变的攻击防护场景。

vim /usr/local/nginx/conf/blockips.conf
192.168.1.0  #禁止整个网段
192.168.10.102 1;    #禁止这个IPIP地址后的数字含义:0    "";    #允许
1    403;    #完全封禁
2    444;    #静默断开
3    503;    #服务不可用vim /usr/local/nginx/conf/nginx.confhttp下:
geo $block_ip {
default 0;        #默认允许访问
include /usr/local/nginx/conf/blockips.conf;        #包含黑名单
}server下:if ($block_ip) {            #判断标记值return 403;        #封禁动作}

        验证:使用102 访问101

         

自动添加黑名单

vim aaa.sh
#!/bin/bsah
awk '{print $1}' /usr/local/nginx/logs/access.log | sort | uniq -c |sort -nr | awk '{if($1>100) print $2 " 1;"}' > /usr/local/nginx/conf/blockips.conf 102:
dnf -y install httpd-tools
ab -n 300 -c 30 http://192.168.10.101/101:
cat /usr/local/nginx/logs/access.log    		#会自动记录超过100次访问的ip

102验证:

101查看访问日志

HTTPS配置

        HTTPS 概念

HTTPS,全称HyperText Transfer Protocol over Secure Socket Layer,设计初衷是为了保证数据传输安全。http(超文本传输协议)是客户端浏览器与web 服务器之间的通信协议,而 https 协议可以认为是 HTTP + SSL/TLS,在 http 之下 tcp 之上加了ss1一层,用于对应用层数据的加解密。

        HTTP不安全

        HTTP 由于是明文传输,主要存在三大风险:窃听风险、篡改风险、冒充风险。​​​​​​​

  • 窃听风险:中间人可以获取到通信内容,由于内容是明文,所以获取明文后有安全风险
  • 篡改风险:中间人可以篡改报文内容后再发送给对方,风险极大。
  • 冒充风险:比如你以为是在和某宝通信,但实际上是在和一个钓鱼网站通信。

        安全通信的四大原则

  • 机密性:即对数据加密,解决了窃听风险,因为即使被中间人窃听,由于数据是加密的,他也拿不到明文;
  • 完整性:指数据在传输过程中没有被篡改,不多不少,保持原样,中途如果哪怕改了一个标点符号,接收方也能识别出来,从来判定接收报文不合法:
  • 身份认证:确认对方的真实身份,即证明“你妈是你妈”的问题,这样就解决了冒充风险,用户不用担心访问的是某宝结果却在和钓鱼网站通信的问题:
  • 不可否认:即不可否认已发生的行为,比如小明向小红借了1000元,但没打借条,或者打了借条但没有签名,就会造成小红的资金损失。

        HTTPS的几种加密方式

         HTTP 是明文传输的,那我们给报文加密,既然要加密,我们肯定需要通信双方协商好密钥吧。一种是通信双方使用同一把密钥,即对称加密的方式来给报文进行加解密。

        非对称加密:使用一对密钥,即公钥和私钥。公钥可以公开,任何人都可以使用公钥对数据进行加密;私钥由所有者保密,只有使用对应的私钥才能对加密数据进行解密。

        数字证书:数字证书是一种由证书颁发机构(CA)签发的电子文件,它将用户的身份信息(如姓名、组织、域名等)与公钥进行绑定。其主要作用是验证公钥的真实性和持有者的身份,防止中间人攻击,确保通信双方能够安全地交换信息。        

        nginx https的作用

         加密传输数据:HTTPS 使用 SSL/TLS 协议对数据进行加密,确保数据在客户端(如浏览器)和服务器(如 Nginx 服务器)之间传输时不被窃取或篡改。例如,用户在电商网站上输入的用户名、密码、信用卡信息等敏感数据,通过 HTTPS 加密后,即使数据在传输过程中被拦截,攻击者也无法获取其真实内容。
        验证服务器身份:HTTPS 通过数字证书来验证服务器的身份,确保客户端连接到的是真实可靠的服务器,而不是假冒的服务器。用户访问银行网站时,浏览器会验证银行服务器的数字证书,如果证书有效且与银行域名匹配,用户就可以确认自己连接到了正确的银行服务器,防止遭受钓鱼攻击。
        数据完整性保护:HTTPS 使用消息认证码(MAC)等技术来确保数据在传输过程中的完整性,防止数据被意外或恶意篡改。如果数据在传输过程中被篡改,接收方可以通过验证 MAC 发现数据的变化,从而拒绝接受被篡改的数据 

mkdir -p /etc/nginx/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=benet/CN=localhost"vim /usr/local/nginx/conf/nginx.conf
server {
listen       443 ssl;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
server_name  localhost;server {
listen       80;
# listen       somename:8080;
#    server_name  somename  alias  another.alias;
return 301 https://$host$request_uri;
}

验证:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/82010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++类对象的隐式类型转换和编译器返回值优化

文章目录 前言1. 隐式类型转换1.1 单参数的隐式类型转换1.2 多参数的隐式类型转换1.3 explicit关键字 2. 编译器的优化2.1 普通构造优化2.2 函数传参优化2.3 函数返回优化 前言 在类与对象的学习过程中&#xff0c;一定会对隐式类型转换这个词不陌生。对于内置类型而言&#x…

领麦微红外温度传感器,摇奶器测温应用

在育儿领域&#xff0c;精准控制奶液温度是守护宝宝健康的重要环节。领麦微作为MEMS传感器领域的创新先锋&#xff0c;通过其红外测温传感器的非接触式测量、高精度测温、实时反馈以及智能温控节能等核心优势&#xff0c;为摇奶器注入了全新的智能化解决方案。这一技术不仅提升…

第十一届蓝桥杯 2020 C/C++组 蛇形填数

目录 题目&#xff1a; 题目描述: 题目链接&#xff1a; 思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述: 题目链接&#xff1a; 蛇形填数 - 蓝桥云课 思路&#xff1a; 思路详解&#xff1a; 看图找规律…

如何检查 Watchtower 是否正常工作及更新未生效的排查方法【日常排错】

文章目录 前言一、验证 Watchtower 是否正在运行1. 检查 Watchtower 容器状态2. 查看 Watchtower 日志 二、检查5分钟间隔设置是否正确1. 确认启动命令2. 验证环境变量 三、排查更新未生效的原因1. 检查是否有镜像更新2. 检查容器标签3. 检查监控范围 四、测试 Watchtower 功能…

宝塔面板,删除项目后还能通过域名进行访问

场景&#xff1a;在阿里云宝塔面板中&#xff0c;删除了之前建立的html项目&#xff0c;通过之前绑定的域名还是可以访问&#xff0c;又把项目的目录文件删除&#xff0c;发现还是不行 又清理了浏览器缓存&#xff0c;但还是有这个问题通过该域名重新创建一个html项目&#xff…

多层PCB SMT贴装全流程指南:从物料准备到回流焊工艺控制

在电子制造领域&#xff0c;多层PCB板元器件贴片是一项重要的技术操作。本文将详细介绍多层PCB板元器件贴片的操作流程和注意事项&#xff0c;帮助您更好地理解和掌握这项技术。 一、准备阶段 在进行多层PCB板元器件贴片操作前&#xff0c;需要做好以下准备工作&#xff1a; 1.…

PAT(最近)

1022 D进制的AB - PAT (Basic Level) Practice &#xff08;中文&#xff09; 加减位置调换 本来以为就是简单的 十进制转换为一个长的字符串 没想到在那个拼接字符串的时候 只需要简单的 加减位置调换就可以 避免使用麻烦的翻转函数 import java.util.Scanner; public clas…

【Harbor v2.13.0 详细安装步骤 安装证书启用 HTTPS】

Harbor v2.13.0 详细安装步骤&#xff08;启用 HTTPS&#xff09; 1. 环境准备 系统要求&#xff1a;至少 4GB 内存&#xff0c;100GB 磁盘空间。 已安装组件&#xff1a; Docker&#xff08;版本 ≥ 20.10&#xff09;Docker Compose&#xff08;版本 ≥ v2.0&#xff09; 域…

以pytest_addoption 为例,讲解pytest框架中钩子函数的应用

钩子函数&#xff08;Hook Function&#xff09;的概念 钩子函数&#xff08;Hook Function&#xff09;是软件框架中预定义的回调接口&#xff0c;允许开发者在程序执行的特定阶段插入自定义逻辑&#xff0c;以扩展或修改框架的默认行为。在 pytest 中&#xff0c;钩子函数覆…

合并两个有序链表 - 简单

************* C topic: 21. 合并两个有序链表 - 力扣&#xff08;LeetCode&#xff09; ************* Give the topic an inspection. Hi, guys, how is your holiday break? I went to 黄山 in the past few days. The mount Huang is really beautiful. 天都峰 is real…

13.Spring boot中使用Actuator 监控

13.Spring boot中使用Actuator 监控 Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具&#xff0c;它通过暴露各种端点&#xff08;Endpoints&#xff09;来提供应用程序的运行时信息。这些端点可以帮助开发者和管理员监控应用程序的健康状况、性能指标、…

Python+Scrapy跨境电商爬虫实战:从亚马逊/沃尔玛数据采集到反爬攻克(附Pangolin API高效方案)

从零实战到反爬攻克&#xff0c;揭秘跨境数据抓取全流程与Pangolin Scrape API终极方案 在当今数据驱动的跨境电商时代&#xff0c;谁掌握了优质的市场数据&#xff0c;谁就掌握了成功的关键。随着全球电商市场规模持续扩大&#xff08;据Statista最新报告显示&#xff0c;2025…

0基础学习鸿蒙开发-HarmonyOS4

一、初识 1. 开发工具 官网 开发-HarmonyOS NEXT鸿蒙应用开发平台-华为开发者联盟 2. ArkTS 二、TypeScript 基本语法 1.变量声明 2. 条件控制 注意 在TypeScrips中 空字符串数字0、null、undefined 都坡认为是false 其它值则为true if (num) {// num 非空执行 } 3. 循环迭…

深度学习中常用的符号表达式

在论文写作过程中&#xff0c;常常涉及到一些关键的符号的表达&#xff0c;为了更加规范常用的一些符号表达&#xff0c;现将其总结如下&#xff08;该文件会持续性更新&#xff09;&#xff1a; 数字 x x x : 标量 x \mathbf{x} x : 向量 X \mathbf{X} X : 矩阵 X \mathsf{X}…

react naive 网络框架源码解析

本文取 react native 两个区别很大的版本做分析&#xff08;0.76.5、0.53.3&#xff09; 一、0.76.5 版fetch 全流程排查 1、JS 端的实现 随手写一个fetch&#xff0c;点开。 我们这里常用的还是手机端&#xff0c;因此选择 react-native&#xff0c;react-native-windows …

OpenCV 图形API(81)图像与通道拼接函数-----透视变换函数warpPerspective()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 对图像应用透视变换。 函数 warpPerspective 使用指定的矩阵对源图像进行变换&#xff1a; dst ( x , y ) src ( M 11 x M 12 y M 13 M 31 x…

深度学习在油气地震资料反卷积中的应用

深度学习在油气地震资料反卷积中的应用 基本原理 在油气地震勘探中&#xff0c;反卷积(Deconvolution)是一种重要的信号处理技术&#xff0c;用于提高地震资料的分辨率。传统方法(如维纳滤波、预测反卷积等)存在对噪声敏感、假设条件严格等局限。深度学习方法通过数据驱动的方…

Java开发者面试实录:微服务架构与Spring Cloud的应用

面试场景 面试官: 请介绍一下你的基本情况。 程序员: 大家好&#xff0c;我叫张小明&#xff0c;今年27岁&#xff0c;硕士学历&#xff0c;拥有5年的Java后端开发经验。主要负责基于Spring Boot开发企业级应用&#xff0c;以及微服务架构的设计和实现。 面试官: 好的&#…

​Spring + Shiro 整合的核心要点及详细实现说明

在 Spring 项目中集成 Apache Shiro 可以实现轻量级的安全控制&#xff08;认证、授权、会话管理等&#xff09;。以下是 ​Spring Shiro 整合的核心要点及详细实现说明&#xff1a; 一、Spring 与 Shiro 整合的核心组件 ​组件​​作用​ShiroFilterFactoryBean创建 Shiro 过…

网络编程核心技术解析:从Socket基础到实战开发

网络编程核心技术解析&#xff1a;从Socket基础到实战开发 一、Socket编程核心基础 1. 主机字节序与网络字节序&#xff1a;数据传输的统一语言 在计算机系统中&#xff0c;不同架构对多字节数据的存储顺序存在差异&#xff0c;而网络通信需要统一的字节序标准&#xff0c;这…