公网域名流量禁用详解

news2024/9/20 18:32:14

公网域名流量禁用是一个涉及网络安全流量管理的复杂操作,它通常需要根据具体的网络环境和业务需求来实施。以下是一些可能的步骤和考虑因素:

一、明确禁用目标

首先,需要明确禁用公网域名流量的具体目标。这可能包括:

  • 阻止未经授权的访问。
  • 防止恶意流量攻击,如DDoS攻击。
  • 节约带宽资源,减少不必要的网络流量。
  • 特殊时期,主动对部分业务公网流量禁用

二、评估网络环境

在禁用公网域名流量之前,需要评估当前的网络环境,包括:

  • 网络架构:了解网络的拓扑结构、路由设置等。
  • 域名使用情况:确定哪些域名是业务必需的,哪些可能是非必需的或恶意的。
  • 流量分析工具:使用如tcpdump、Wireshark等工具来分析网络流量,识别异常流量。

三、实施禁用措施

根据评估结果,可以采取以下措施来禁用公网域名流量:

  1. DNS级别控制
    • 修改DNS设置,阻止对特定域名的解析。这可以通过修改本地DNS服务器设置或在DNS服务器上设置策略来实现。
    • 使用安全的DNS服务,如ISP或网络运营商提供的DNS服务器,以防止DNS劫持等安全问题。
  2. 防火墙规则
    • 网络防火墙中设置规则,阻止对特定域名的访问。这可以通过IP地址过滤、端口过滤或协议过滤等方式实现。
    • 使用iptables(Linux系统)或Windows防火墙等工具来配置这些规则。
  3. 路由控制
    • 路由器上设置路由策略,将特定域名的流量重定向到无效地址或黑洞地址。
    • 使用更高级的路由协议和策略,如BGP社区属性等,来实现更精细的流量控制。
  4. 应用层控制
    • 应用服务器上配置安全策略,禁止对特定域名的请求。
    • 使用Web应用防火墙(WAF)等安全设备来检测和阻止恶意流量。

四、注意事项

  • 在实施禁用措施时,需要确保不会误伤业务必需的域名和流量。
  • 禁用公网域名流量可能会影响用户体验和业务连续性,因此需要谨慎操作
  • 需要定期更新和维护禁用列表和防火墙规则,以应对新的安全威胁和业务需求变化。

综上所述,公网域名流量禁用是一个需要综合考虑多个因素的操作。在实施过程中,需要根据实际情况灵活调整策略和方法,以确保网络的安全和稳定。

五、域名流量禁用实战

1、需求及方案确认
  • 特殊期间,临时对公网流量进行禁用,后续业务需要继续使用
  • 公网域名为多个业务系统公用

因此,本次部分业务公网流量禁用主要通过【应用层控制】,来实现公网流量禁用。

2、修改nginx.conf配置
  • 使用server_name拒绝特定域名(域名该业务独享

虽然你不能直接“禁用”一个域名,但你可以为那个域名配置一个server块,并在其中使用return指令来返回一个错误码或重定向到其他URL

例如,如果你想要拒绝所有对test.example.com的访问,可以这样做:

nginx

server {  
    listen 80;  
    server_name test.example.com;  
    return 444; # 444 是一个非标准的错误码,用于关闭连接而不发送任何响应头或响应体  
    # 或者你可以使用 404 或 403 等标准错误码  
    # return 404;  
    # 或者重定向到另一个域名  
    # return 301 http://www.example.com;  

}

注意:444 是一个非标准的HTTP状态码,Nginx使用它来直接关闭连接而不发送任何响应给客户端。然而,并非所有的HTTP客户端都能很好地处理这个状态码,它们可能会显示一个连接错误或超时。 HTTP响应状态码详解

  • 注释模块proxy_pass(域名多业务共享

upstream liangkk {
            server 0.0.0.0:80;
        }

server {
    listen       80;
	server_name  liangkk.blog.csdn.net;
	
	location / {
          if ($request_uri !~ "\?functionId=|\?.+=.+functionId=|^/startup|^/client\.action|^/strategy|^/crashLog|^/apmRule|^/apmReport|^/statsReport|^/statsConfig|^/basicConfig|^/appPublishUpgrade|^/appPublishStats|^/getUpgradeInfo|^/jdaInfos|^/ideInfos") 
		     {
              return 403;
             }
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#              proxy_pass http://liangkk/;
              access_log /usr/local/nginx/logs/liangkk_proxy.log;
        }
    }

要禁用对通过 upstream 定义的服务器组的访问,你实际上不能直接“禁用”upstream 块本身,因为 upstream 只是一个配置指令,用于定义一组后端服务器,而不是直接处理请求的入口点。不过,你可以通过以下几种方式间接地实现禁用访问的效果:

通常,最简单最直接的方法是第1种方法:确保 Nginx 配置中没有引用该 upstreamproxy_pass 指令(即注释proxy_pass。这样,就没有任何请求会被转发到这些后端服务器上,从而实现了“禁用访问”的效果。

  1. 不引用 upstream
    在 Nginx 配置中,不要在任何 serverlocation 块中使用 proxy_pass 指令来引用这个 upstream。这样,就没有任何请求会被转发到这个 upstream 定义的服务器组。

  2. 配置返回特定状态码
    如果你想要对尝试访问该 upstream 的请求返回特定的响应(比如 404、403 或其他自定义错误页面),你可以创建一个 server 块,该块匹配所有可能转发到该 upstream 的请求,并返回一个错误码或重定向到另一个页面。

  3. 使用条件判断(不推荐)
    虽然 Nginx 的 if 指令在 serverlocation 块中通常不推荐用于复杂的条件判断,但在某些情况下,你可以用它来根据特定的请求头或变量来阻止请求。然而,对于基于 upstream 的访问控制,这种方法可能不够直接或不够灵活。

  4. 修改 DNS 或网络配置
    如果可能的话,你可以通过修改 DNS 记录或网络路由规则来确保没有任何流量能够到达这些后端服务器。这通常是一个更底层、更全局的解决方案,可能会影响到其他依赖于这些网络设置的服务。

  5. 在服务器上禁用监听
    最后,你也可以直接在后端服务器上禁用相应端口(如 80 或 443)的监听。这可以通过修改服务器的防火墙规则、停止相关的服务或修改服务的配置文件来实现。然而,这种方法需要你有权访问并修改后端服务器的配置。

3、刷新CDN缓存

源站静态文件更新后,CDN不会自动刷新缓存,而是在缓存时间过期后,才会经由用户触发回源获取最新文件。如希望在缓存过期时间之前,实现CDN节点与源站静态文件同步更新,则需要通过CDN控制台-【刷新预取】菜单,或通过API接口,选择相应的刷新操作,将对应文件在CDN节点服务器置为过期。用户下次请求时,CDN将重新向源站请求最新文件,实现缓存更新。

天翼云CDN控制台操作入口:

image.png

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

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

相关文章

Vue Flow: 高效构建可视化工作流的利器

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

DeEcoStudio快捷键设置

例如 打 bgc 快捷键 直接出 .backgroundColor( ) 第一步:点击文件——>设置 第二步:找到编辑器——>实时模板 第三步:点击加号——>点击实时模板 第四步:设置快捷键 第五步:点击变更——>点击全选…

jangow靶机教程

项⽬地址 https://www.vulnhub.com/entry/jangow-101754/ 用vmware需要修改部分配置,才能通过C段扫描成功 1.在系统启动时(⻓按shift键)直到显示以下界⾯ 选择第⼆个,按回⻋ 继续选择第⼆个 2.按e进⼊编辑,进⼊以下界⾯ 删除"recove…

Linux学习笔记:Linux基础知识汇总(个人复习版)

常用命令: 1、ls -a:显示所有文件(包括隐藏文件),简洁版 -l:显示所有文件,详细版 -R:显示所有文件以及子目录下文件,简洁版 可以搭配使用。 2、netstat -i&#x…

gitlab-runner /var/run/docker.sock connect permission denied

usermod -aG docker gitlab-runner sudo service docker restart参考:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3492

LeetCode接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,…

深入SpringBoot:SpringCache的集成与使用

目录 一、SpringCache集成声明式与编程式1. 引入依赖2. SpringCache配置3. key的设置4. 使用 二、SpringCache使用1. 基于声明式注释的缓存1.1 Cacheable注解1.2 Cacheable注解属性1.2.1 CacheManager和CacheResolver1.2.2 cacheName1.2.3 key和KeyGenerator1.2.4 同步缓存 2. …

Linux 内核源码分析---处理 VFS 对象及标准函数

处理VFS对象 注册文件系统:在文件系统注册到内核时,文件系统是编译为模块,或者持久编译到内核中。 fs/super.c 中的register_filesystem用来向内核注册文件系统。我们可以通过/proc/filesystems查看系统所有的文件系统类型。 一个文件系统不…

Idea绿色下载安装教程-最新,2024版本通用-附下载链接

插件链接: 脚本 Idea下载安装完成后 进入激活码输入页面,然后关闭IDEA 按照下面流程进行激活 1. 按照以下步骤,亲测可用,记得一定要先关闭idea 2. 选择对应软件 3.选择bin、目录对应选项 5.激活 6.成功

MySQL--读写分离与分布式存储

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、读写分离 1、什么是读写分离 在数据库集群架构中,让主库负责处理写入操作,而从库只负责处理select查询,让两…

部署MySQL数据库时常见错误

登录数据库 时,可能会出现如图错误 1.确认是否部署MySQL服务 2.过滤MySQL端口号,查看服务是否开启(如图上半部分,则是服务未开启) 3.如图部分,则是密码错误 4.如果忘记了 mysql 的密码,或者登陆…

Apple Vision Pro 游戏开发:挑战与反思

随着Apple Vision Pro的推出,许多游戏开发者开始尝试在这个全新的平台上构建沉浸式的虚拟现实体验。然而,开发者们很快发现,在这个新兴领域中面临着不少挑战,包括支付延迟、技术支持不足、设备性能限制等问题。本文将探讨这些挑战,并提出一些开发者需要注意的关键点。 支…

Qt:自定义钟表组件

使用QWidget绘制两种钟表组件,效果如下: 源码下载链接:GitHub - DengYong1988/Clock-Widget: Qt 自定义钟表组件 https://download.csdn.net/download/ouyangxiaozi/89616407 主要代码如下: ClockWgt.h #ifndef CLOCKWGT_H #d…

spring源码阅读-推断构造方法

如何构造一个对象? 1、默认情况下,或者只有一个构造方法的情况下,就会使用默认构造方法或者唯一的一个构造方法 2、由程序员指定构造方法入参值,通过getBean()的方式获取,可以指定参数类型以及个数,但是该…

【康复学习--LeetCode每日一题】572. 另一棵树的子树

题目: 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree …

SpringBoot3里的文件上传

需求分析: 在用户更换头像或者添加文章时,都需要携带一个图片的URL访问地址。当用户访问文件上传接口将图片的数据上传成功后,服务器会返回一个地址。我们后台需要提供一个文件上传的接口,用来接收前端提交的文件的数据并且返回文…

C++入门基础(完整版)含下卷

C入门基础 hello 各位未来的程序员大佬们,这一篇是详细介绍入门基础,和上一篇不同的是这一篇补完了引用的知识和inline,nullptr的知识,希望大家有所收获 namespace的价值 在C/C中,变量、函数和后⾯要学到的类都是⼤…

【w门大学】云计算与大数据零基础特训班视频教程合辑

提取地址 云计算与大数据零基础特训班 课程目录

“数据要素×”大赛江西分赛官网正式上线 共设置12个赛道

7月17日,2024年“数据要素”大赛江西分赛在南昌市拉开帷幕。作为全国“数据要素”大赛的地方分赛,江西分赛由国家数据局、江西省人民政府指导,江西省发展改革委(省数据局)联合18家省级单位共同主办,江西分赛…

CCRC-DSA数据安全评估师:ISC.AI2024数字安全峰会:安全大模型引领安全行业革命

7月31日,以“构建先进的安全模型,引领安全产业变革”为主题,ISC.AI 2024数字安全峰会在北京国家会议中心成功举办。 本次峰会旨在鼓励行业通过大规模模型重构安全框架,确保数字经济的稳健前进。 会上,众多院士级专家…