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

2021-04-29 14:42:57 +08:00
 ltycomputer

家里联通,转发了路由管理页面被联通警告了,查了下,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 流量以后回报域名然后核实,那这办法也将会无效

2847 次点击
所在节点    宽带症候群
17 条回复
XIU2
2021-04-29 16:00:41 +08:00
就像你最后一句说的,这种方法很容易针对。

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX