公网域名流量禁用详解

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

一、明确禁用目标

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

  • 阻止未经授权的访问。
  • 防止恶意流量攻击,如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的访问,可以这样做:

cpp 复制代码
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(域名多业务共享
cs 复制代码
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控制台操作入口:

相关推荐
冰 河19 分钟前
《Nginx核心技术》第16章:实现Nginx的高可用负载均衡
运维·nginx·程序员·负载均衡·高可用
人工智障调包侠4 小时前
Linux 目录介绍
linux·运维·服务器
SnowMan19935 小时前
使用Nginx部署前端Vue项目的详细指南
前端·vue.js·nginx
Java小白白同学5 小时前
Linux 硬盘扩容操作手册
linux·运维·服务器
大白菜和MySQL6 小时前
keepalived和lvs高可用集群
linux·运维·lvs
好奇的菜鸟6 小时前
如何使用Docker快速启动Nginx服务器
服务器·nginx·docker
学习向前冲7 小时前
高效诊断Linux性能问题
linux·运维·服务器
wd5205217 小时前
常用环境部署(十七)——Docker安装pritunl+openvpn
运维·docker·容器
威迪斯特7 小时前
视频监控接入平台web客户端有时无法登录,有时打开实时视频出现黑屏的问题解决
linux·运维·服务器·视频监控·df命令·磁盘空间·接入平台
Wang's Blog8 小时前
Nginx: 基于多网卡,端口,域名的虚拟主机实现
服务器·网络·nginx