当前位置:   article > 正文

公网域名流量禁用详解

公网域名流量禁用详解

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

一、明确禁用目标

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

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

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

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

  • 注释模块proxy_pass(域名多业务共享
  1. upstream liangkk {
  2. server 0.0.0.0:80;
  3. }
  4. server {
  5. listen 80;
  6. server_name liangkk.blog.csdn.net;
  7. location / {
  8. if ($request_uri !~ "\?functionId=|\?.+=.+functionId=|^/startup|^/client\.action|^/strategy|^/crashLog|^/apmRule|^/apmReport|^/statsReport|^/statsConfig|^/basicConfig|^/appPublishUpgrade|^/appPublishStats|^/getUpgradeInfo|^/jdaInfos|^/ideInfos")
  9. {
  10. return 403;
  11. }
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  15. # proxy_pass http://liangkk/;
  16. access_log /usr/local/nginx/logs/liangkk_proxy.log;
  17. }
  18. }

要禁用对通过 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/936614
推荐阅读
相关标签
  

闽ICP备14008679号