有什么方法限制外人访问自己的 DoH 服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PMR
2EX    DNS

有什么方法限制外人访问自己的 DoH 服务

  •  
  •   PMR 2022-05-02 12:56:49 +08:00 via Android 6522 次点击
    这是一个创建于 1307 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Qcloud 国内机器搭建的 DoH
    已用非标端口 还是被探测到

    有什么办法只允许自己的网络访问

    家宽非固定 ip
    用 ddns 在服务器防火墙限制有时延 ip 变更时就会中断几分钟
    22 条回复    2022-06-11 16:27:45 +08:00
    Jay54520
        1
    Jay54520  
       2022-05-02 13:20:04 +08:00   1
    1. 使用 IP 段,比如 1.1.0.0/32 ,把你可能的 IP 全部放进去。好处是减少了被恶意访问的范围,不用改代码。坏处是没有完全解决问题。
    2. 增加鉴权手段。比如增加 query string ?key=abcd ,key 不对就返回 400 Bad Request ,key 对了再继续正常流程。如果你会修改 DoH 中的代码,就直接修改 DoH ;或者用自己熟悉的语言写一个代理放到 DoH 前面,只转发鉴权通过的请求。
    blakejia
        2
    blakejia  
       2022-05-02 13:23:01 +08:00   1
    前置 nginx 加个鉴权?
    leavic
        3
    leavic  
       2022-05-02 13:32:40 +08:00   1
    http 怎么鉴权就怎么做
    huangtao728
        4
    huangtao728  
       2022-05-02 15:15:54 +08:00 via Android   3
    改变路径,不要使用 /dns-query 即可
    Sekai
        5
    Sekai  
       2022-05-02 15:32:04 +08:00   1
    换 adh
    totoro625
        6
    totoro625  
       2022-05-02 15:36:04 +08:00
    提问一下 doh 被人蹭用会有什么后果吗?
    我也在国内云服务上挂了 doh
    ------------
    本质上 doh 是网页服务吧,设置一下无法通过 ip 访问应该就很少有人去访问了吧,实在不行设置一个复杂的二级域名
    我在用的直接就是 doh.example.com ,开了 5 台机器的 doh ,4 台丢国外 1 台丢国内,2 个多月了至今没见有人蹭过

    我的 nginx 配置:
    server {
    listen 80;
    return 302 https://www.example.com/302;
    }
    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate /data/ssl/example.cer;
    ssl_certificate_key /data/ssl/example.key;
    return 302 https://www.example.com/302;
    }
    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name doh.example.com;
    ssl_certificate /data/ssl/example.cer;
    ssl_certificate_key /data/ssl/example.key;
    location / {
    proxy_pass https://adguardhome:443;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    0o0O0o0O0o
        7
    0o0O0o0O0o  
       2022-05-02 15:41:55 +08:00 via iPhone   1
    路径用个 uuid
    yaott2020
        8
    yaott2020  
       2022-05-02 15:54:41 +08:00 via Android
    改路径更实际一些
    cloudsigma
        9
    cloudsigma  
       2022-05-02 15:59:14 +08:00
    ssl 客户端验证
    wwbfred
        10
    wwbfred  
       2022-05-02 16:03:02 +08:00
    不要用 dns-query ,这就是最好的办法。另外如果在墙外使用这个路径域名会被墙。
    andyliu24
        11
    andyliu24  
       2022-05-02 16:05:52 +08:00
    iptables 把目标端口除 127.0.0.1 的 input 包直接 drop 掉?
    AlphaTauriHonda
        12
    AlphaTauriHonda  
       2022-05-02 16:12:24 +08:00
    @wwbfred 是 IP 还是端口被屏蔽,还是 DoH 的域名直接被污染?
    wwbfred
        13
    wwbfred  
       2022-05-02 16:18:25 +08:00   1
    @AlphaTauriHonda 我的情况没有屏蔽端口,是给你的 DOH 域名发 RST 。不开 DOH 服务了过几天这个域名会放出来。
    Overfill3641
        14
    Overfill3641  
       2022-05-02 16:24:00 +08:00
    @wwbfred #10 DOT 853 端口会被屏蔽,非标准端口 IOS 和安卓不认,感觉直接 IP 限制或者像 AdGuard Home 对每个设备特定 ID 白名单就行了。
    AlphaTauriHonda
        15
    AlphaTauriHonda  
       2022-05-02 16:41:21 +08:00
    @wwbfred 相当于域名被阻断了。
    dem0ns
        16
    dem0ns  
       2022-05-02 17:24:38 +08:00
    ssl 客户端验证+1
    dem0ns
        17
    dem0ns  
       2022-05-02 17:25:45 +08:00
    服务器端校验客户端的证书,自己生成一对证书就可以
    xyjincan
        18
    xyjincan  
       2022-05-03 08:05:06 +08:00 via Android
    干掉监控客户端?
    buxiaozisun
        19
    buxiaozisun &nsp;
       2022-05-04 15:08:20 +08:00 via Android
    proxy_intercept_errors on; error_page 400 =404 /404.html;
    of2
        20
    of2  
       2022-05-29 13:17:49 +08:00
    我用的 AdGuard Home ,Nginx 做前端。

    `= /dns-query` 全返回 `418`,设置一个 `~* /dns-query/(client1|client2|...)` 的白名单列表,同时 AdGuard Home 里 `DNS settings` 下设置 `Allowed clients`,只允许设定好的的 clients~
    root0
        21
    root0  
       2022-05-30 23:12:45 +08:00
    看你客户端 是怎么访问。如果可以自定义 访问那可以很方便。 后端可以用 写个 go 的 http Server (或者其他 PHP ,python )然后就可以用户名密码或者 Key 签名啥的。。。(如果你不会写 找人会的人几分钟就可以弄好)
    billytom
        22
    billytom  
       2022-06-11 16:27:45 +08:00
    直接装 ADH ,用 client ID 验证不就行了?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     817 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 20ms UTC 22:19 PVG 06:19 LAX 14:19 JFK 17:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86