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

公网开 https 端口, 能有哪些保护措施?

  •  
  •   HHHHhg · 44 天前 · 3312 次点击
    这是一个创建于 44 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是挂家里服务, 有个黑群晖 nas, 跑了些服务, 比如 web 端的 rss 阅读器, 一个 https flv 的直播流(平常一直在循环播放 BangDream It's MyGo!!!!!, 周末会和亲友在这个直播间里连麦看番), 在想怎么跑服务能不被工信部发现然后橄榄

    首先是工信部能不能发现我在挂 https 服务, 我不绑常用端口, https 的流量应该只能看出来是个 tls 流量看不出来是个 https 流量
    其次如果发现是个 tls 流量了, 工信部人工想要试下是不是 https 流量, 理论上是不是我把服务不绑定到根路径就没事了? 他们顶多能定位到域名 ip 和端口, 用默认路径打开发现一片白, 有没有可能就不会搞我了(
    然后我自己用根路径下面挂了一串随机字符串的 url 用我的服务, 不过缺点就是 虽然反代能根据路径转发, 但如果有些服务的前端页面需要读 path 做一些逻辑的话可能会有些异常
    P.S. 我有个有 ICP 备案的域名, 但我不太喜欢, 我想用另一些好玩的域名, 备没备案对这个有影响么, 有没有必要改用我有备案的域名?

    如果连 vpn 用家里服务的话就太麻烦了, 尤其是大家一起看番的时候, 要求大家都用 vpn 连有点费劲

    有个绝对安全的做法就是找台公网服务器转发, 但还是那个直播一起看番的场景, 还是挺需要带宽的. 看了眼手头的腾讯云小水管只有 8Mbps(?) 虽然我的家宽也很小水管, 但上行多少也是这个腾讯云的五倍呢

    另外 我看了 V2EX 的其他帖子, 感觉被橄榄之前都是会先提醒的, 我现在想的是在提醒之前就 https+随机路径(如果应用允许. 应用出问题的话就 https 了), 如果被提醒了就找台公网服务器, 用 frp 之类的转发流量
    除此之外, 有啥方法能在不伤及用户触达的情况下避免被橄榄么?

    第 1 条附言  ·  35 天前
    总结一下:
    1. @busier @benjaminliangcom @rrfeng 提到用 mTLS
    2. @frencis107 提到在根路径放上摄像头监控的管理页面, 假装是看监控用的
    3. @NewYear @lingo @Oohuo 提到用敲门

    还有大家都在说的:
    1. https + ipv6
    2. 路径转发/鉴权, 不能随便响应 http 服务
    3. vpn/frp

    现在我的方式:
    已经给家里一堆网页实装了 mTLS 了, docker 跑的 caddy 做的反代+mTLS
    一些希望不止我自己, 别人也能用的服务, 比如 minio(对象存储)和直播流, 目前是 ipv6only+https

    有点想上个敲门, 有时间的话整一下. 我想的是在非自己 ip 的公网放个仅作跳转的静态页面, 要用我服务的直接在页面上点个按钮, 然后前端自动按顺序用 http 请求端口, 然后跳转到对应服务的页面
    29 条回复    2024-06-06 16:16:23 +08:00
    oneisall8955
        1
    oneisall8955  
       44 天前
    橄榄是什么意思
    busier
        2
    busier  
       44 天前
    改端口没用 流量类型藏不住

    除了 VPN ,我采用自建 CA ,SSL/TLS 双向认证方案。自己的 iOS 设备发长一点证书,单位电脑偶尔访问下家里,就发个 1~2 天的短期证书。
    HHHHhg
        3
    HHHHhg  
    OP
       44 天前
    @oneisall8955 干烂
    MaverickPLS
        4
    MaverickPLS  
       44 天前
    「备没备案对这个有影响么」——虽然上游只能看出是 TLS ,但是 SNI 依然能读出来,所以能用备案域名就尽量用备案域名,至少我这边用备案域名电信家宽,333 端口跑了三年很稳;以及,一般来说流量少,不被注意到的话就不怎么会管
    「用默认路径打开发现一片白, 有没有可能就不会搞我了」——跟这个没关系,而且能打开说明也是能响应 HTTP 报文,哪怕什么也没有,也是相当于有 HTTP 服务的
    顺带一提,能用 FRP 之类转发就尽量用吧,8Mbps 应该也足够 3 ~ 4 个人一起直播看番了,如果你有硬件编码,码率压一压的话还能支撑更多人看
    f165af34d4830eeb
        5
    f165af34d4830eeb  
       44 天前
    家里服务没什么稳妥的办法,直接搭建 web 服务轻则封端口,重则直接停宽带写保证书。

    搭 vpn 麻烦可以试试 tailscale/zerotier ,这两个都是一键连接用起来相对不麻烦。
    NewYear
        6
    NewYear  
       44 天前
    可以用主动访问的方式……

    一种敲门的技术,具体名词你查下,大概就是发送特殊的 ping 包,会触发服务器打开防火墙规则,让你能够访问……

    或者用按某个顺序打开多个端口,触发这个防火墙规则。

    这样其他用户是完全无法访问的,也没办法主动触发,数据又加密了。
    basncy
        7
    basncy  
       44 天前
    https://example.com/天之涯/海之角/开门.pac

    var proxy = 'HTTPS ech.example.org:${RANDOM};';
    or
    var proxy = 'SOCKS IP:${RANDOM};';

    细品.
    HHHHhg
        8
    HHHHhg  
    OP
       44 天前
    @f165af34d4830eeb tailscale 是在用的, 确实不算麻烦
    HHHHhg
        9
    HHHHhg  
    OP
       44 天前
    @NewYear 有点妙呀, 这个按顺序开端口, 有什么好的实现方式呢
    lingo
        10
    lingo  
       44 天前
    顺序开端口有现成的 knockd
    HHHHhg
        11
    HHHHhg  
    OP
       44 天前
    @MaverickPLS 其实我也家宽跑好几年了, 只是最近感觉 v2 上看到好几个被橄榄的, 有点害怕
    HHHHhg
        12
    HHHHhg  
    OP
       44 天前
    @lingo 谢谢你, 学到了
    xixiv5
        13
    xixiv5  
       44 天前
    工信部不会主动去管的,是运营商根据他们的文件去查的,我目前就是正常跑 被警告了的时候再打算再用 nginx 根据路径或域名去转发
    xiamy1314
        14
    xiamy1314  
       44 天前
    看地方,有的地方屁事没有,懒得管你.
    ShareDuck
        15
    ShareDuck  
       44 天前   ❤️ 1
    非标端口,一般不管的。不过考虑到网络安全的问题,还是建议你用 VPN 。
    LonelyWenti
        16
    LonelyWenti  
       44 天前 via iPhone
    如果不得已必须要在公网开放 https ,第一不要使用 443 等常见端口,第二最好使用 nginx 做前置代理,同时开启网页用户密码验证,详情搜索“nginx password”
    yinmin
        17
    yinmin  
       44 天前 via iPhone
    1. 营运商能获取 https 的域名信息( sni ),建议域名备案
    2. nginx 里设置成无 sni 信息直接断开连接,防止黑客盲扫
    3. 最安全的方式是 nginx 里启用双向证书认证,比密码安全。
    frencis107
        18
    frencis107  
       44 天前   ❤️ 1
    感觉在根路径放上 《海康威视的假 Web 登录页面》 会保险点,运营商如果有人工核查,就和运营商说是监控需要(
    NewYear
        19
    NewYear  
       44 天前
    @HHHHhg

    顺序开端口,服务器端上面有了,如果只是开端口的话,客户端这边可以用网页顺序请求响应的端口就可以,之前看过这样的技术文。。。PC 端的话可以写个小程序自动处理。

    我觉得这个是最完美的方案了,,,,VPN 啥的要客户端不一定能满足。。。。又不需要第三方服务器(还受制于服务器带宽)
    benjaminliangcom
        20
    benjaminliangcom  
       43 天前
    mtls
    yshtcn
        21
    yshtcn  
       43 天前
    第一层当然是换不常用的端口,规避直接扫描,但是这主要是方法扫常用端口的。

    第二层你 https 流量的话,有流量就会引来探测,然后就会来扫端口,一测是个 https 服务,而且是公开的。严格一点的地方就 GG 了。因此第二步就是给 https 增加鉴权,部分地方会忽略这种 401 unAuth 的服务,只要不是公开 http 服务交就行。注意: http 鉴权和服务本身的登录是不一样的,比如能打开群晖首页未登录和 https 鉴权不过返回 401,不一定都认定为开放服务。

    第三层是 IP 白名单,要求你的防火墙或者路由器支持 API 或者 ssh/telnet 等交互方式,这样便于实现脚本自动修改白名单。我的思路是先通过 ip 接口(例如 https://myip.ipip.net, https://ddns.oray.com/checkip, https://ip.3322.net ,也可以自己在云服务器跑一个获取 IP 的 docker: https://github.com/yshtcn/GetIP_Service ),然后用脚本把 IP 加入白名单(我的用例是自动注册 IP 到阿里云安全组: https://github.com/yshtcn/alicloud-ip-updater ),并定期删除和清理。只要能交互,用 gpt 类实现脚本可以减轻不少工作量。

    第四层思路才是 VPN 、代理和 SD-WAN 组网,一般用在固定的两点或多点之间。比如办公室和家里。
    LnTrx
        23
    LnTrx  
       43 天前
    IPv6+https+高位端口+备案域名+域名访问打不开+私下正常使用,在实践中基本安全,虽然并不严格合规
    rrfeng
        24
    rrfeng  
       43 天前
    mTLS 解君愁
    HHHHhg
        25
    HHHHhg  
    OP
       42 天前
    @LonelyWenti 我有 caddy 做反代的
    xhcnb
        26
    xhcnb  
       42 天前
    我现在简单设置 nginx 直接关闭 http 响应, 对 https, 关闭 ip+port 访问, 只有正确的 hostname 才会响应
    HHHHhg
        27
    HHHHhg  
    OP
       42 天前
    @xhcnb 能嗅探到域名的
    xhcnb
        28
    xhcnb  
       42 天前
    @HHHHhg 运营商能嗅探, 不管他们了,找上门再说, 主要是之前群晖老是有人来扫密码, 关闭 ip 地址响应后一下子就清静了
    mitsuhasanye
        29
    mitsuhasanye  
       41 天前 via Android
    放个开源 waf 在前面
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5071 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:54 · PVG 13:54 · LAX 22:54 · JFK 01:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.