V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ltycomputer
V2EX  ›  宽带症候群

使用 haproxy 负载均衡器应对运营商检测宽带绑定 web 页面

  •  
  •   ltycomputer · 2021-04-29 14:42:57 +08:00 · 3110 次点击
    这是一个创建于 1302 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里联通,转发了路由管理页面被联通警告了,查了下,nginx 提供 https 服务的端口,如果用 http 访问的话会返回 400 Bad Request,有返回就会被检测到……

    于是搜了下,haproxy 可以解决这个问题,实现只能用正确域名访问的需求

    目标:

    访问 http ://IP:端口                   不响应(超时或拒绝)
    
    访问 https ://IP:端口                  不响应(超时或拒绝)
    
    访问 http ://正确域名:端口              不响应(超时或拒绝)
    
    openssl s_client -host -port          不建立 SSL 链接
    
    telnet                                TCP 端口未打开
    
    访问 https ://正确域名:端口            正常使用
    

    haproxy 可以装在 docker 上或者 openwrt 上( openwrt 记得装 haproxy 不是 haproxy-nossl )

    配置文件示例

    frontend router_frontend
        mode tcp
        bind 192.168.1.1:44444
    
        tcp-request inspect-delay 5s
        tcp-request content accept if { req_ssl_hello_type 1 }
    
        acl is_example req_ssl_sni -i example.com
    
        use_backend router_backend if is_example
        default_backend no_sni
    
    backend router_backend
            server router 192.168.1.1:443
    
    backend no_sni
            server no_sni 127.0.0.1:65535
    

    以上配置绑定 192.168.1.1:44444,只有接受的请求中 sni 为 example.com 时才会转发给 192.168.1.1:443

    否则转发给 127.0.0.1:65535 形成超时,也可以找个防火墙阻断的端口形成拒绝

    此法不关注证书是自签还是购买,只要后端是 HTTPS 就行

    理论上 HTTP 也有类似的操作

    当然运营商或许可以在 SDN 光猫上跑个入站检测,检测到入站 https 流量以后回报域名然后核实,那这办法也将会无效

    17 条回复    2021-06-01 14:09:11 +08:00
    XIU2
        1
    XIU2  
       2021-04-29 16:00:41 +08:00
    就像你最后一句说的,这种方法很容易针对。

    HTTPS 建立加密链接前,运营商是可以看到 域名 和 IP 的。
    即使隐藏域名,运营商也是能看到有人在与该 IP 建立 HTTPS 链接,而运营商一看这个 IP 是家宽 IP 。。。
    justs0o
        2
    justs0o  
       2021-04-29 16:23:15 +08:00
    运营商是分光检测,任何伪装都能检测到
    diguoemo
        3
    diguoemo  
       2021-04-29 16:34:36 +08:00 via Android
    是只有大城市才管这些吗……我 nas 一直映射出去了,电信联通双线,没找过我
    PerFectTime
        4
    PerFectTime  
       2021-04-29 17:15:33 +08:00
    @diguoemo #3 流量小,没人管罢了
    mooyo
        5
    mooyo  
       2021-04-29 17:22:59 +08:00 via iPhone
    别搞,再抓住可能就要断网了
    cpstar
        6
    cpstar  
       2021-04-29 17:26:59 +08:00
    我开非 80 、443 端口,没人管,但是 80 和 443 运营商是直接拒绝的,开了也没用
    swiftg
        7
    swiftg  
       2021-04-29 18:06:35 +08:00 via iPhone   ❤️ 1
    nginx 本身就支持 sni 探测
    tankren
        8
    tankren  
       2021-04-29 22:36:10 +08:00
    我开的 ipv6 的 443 小地方没啥问题
    LOVOQ
        9
    LOVOQ  
       2021-05-02 00:15:22 +08:00
    @diguoemo 三线以下没大流量且不被举报不造成影响基本不查
    早晚的事儿罢了)
    dorothyREN
        10
    dorothyREN  
       2021-05-02 03:51:16 +08:00
    这用 nginx 一样能实现,为什么再搞个 haproxy
    brMu
        11
    brMu  
       2021-05-03 07:47:02 +08:00 via Android
    再给你提供个思路,用 https 的子目录提供服务,根目录直接超时,就算运营商抓到 sni 域名了,也模拟打不开。
    比如访问 https://www. abc.com/secret 这个是你的正常服务,访问 https://www. abc.com 这个就是超时。
    原理就是 https 的子目录抓不到。
    Tengwait
        12
    Tengwait  
       2021-05-04 14:21:06 +08:00
    @brMu 其实只要你用运营商的服务,想抓你跑没跑 web 也太简单了,不管你怎么装,最后你还是会有握手行为的,而请求头就能暴露你有无用 web 了,怎么说都不保险
    brMu
        13
    brMu  
       2021-05-05 22:03:23 +08:00
    @Tengwait 证据,懂吗?再说白点就是要给你的 web 截个图,这样才可以封你宽带,之前很多的帖子都已经说明了这一点,运营商拿着截图再封你账号。我提供的方法就是他无论如何也打不开你的网页,截不了你的图,OK ?
    Tengwait
        14
    Tengwait  
       2021-05-06 23:28:00 +08:00
    @brMu 你想多了,之前有域名指向都不行,不管你有没有 web
    brMu
        15
    brMu  
       2021-05-07 22:54:09 +08:00 via Android
    @Tengwait 你想多了,那只是个别,多看看论坛的贴子吧!
    deyu260
        16
    deyu260  
       2021-05-31 12:19:17 +08:00 via iPhone
    @brMu 哪个帖 来个链接
    brMu
        17
    brMu  
       2021-06-01 14:09:11 +08:00
    @deyu260 找不到了,抱歉
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2680 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:25 · PVG 08:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.