
1 Jay54520 2022-05-02 13:20:04 +08:00 1. 使用 IP 段,比如 1.1.0.0/32 ,把你可能的 IP 全部放进去。好处是减少了被恶意访问的范围,不用改代码。坏处是没有完全解决问题。 2. 增加鉴权手段。比如增加 query string ?key=abcd ,key 不对就返回 400 Bad Request ,key 对了再继续正常流程。如果你会修改 DoH 中的代码,就直接修改 DoH ;或者用自己熟悉的语言写一个代理放到 DoH 前面,只转发鉴权通过的请求。 |
2 blakejia 2022-05-02 13:23:01 +08:00 前置 nginx 加个鉴权? |
3 leavic 2022-05-02 13:32:40 +08:00 http 怎么鉴权就怎么做 |
4 huangtao728 2022-05-02 15:15:54 +08:00 via Android 改变路径,不要使用 /dns-query 即可 |
5 Sekai 2022-05-02 15:32:04 +08:00 换 adh |
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; } } |
7 0o0O0o0O0o 2022-05-02 15:41:55 +08:00 via iPhone 路径用个 uuid |
8 yaott2020 2022-05-02 15:54:41 +08:00 via Android 改路径更实际一些 |
9 cloudsigma 2022-05-02 15:59:14 +08:00 ssl 客户端验证 |
10 wwbfred 2022-05-02 16:03:02 +08:00 不要用 dns-query ,这就是最好的办法。另外如果在墙外使用这个路径域名会被墙。 |
11 andyliu24 2022-05-02 16:05:52 +08:00 iptables 把目标端口除 127.0.0.1 的 input 包直接 drop 掉? |
12 AlphaTauriHonda 2022-05-02 16:12:24 +08:00 @wwbfred 是 IP 还是端口被屏蔽,还是 DoH 的域名直接被污染? |
13 wwbfred 2022-05-02 16:18:25 +08:00 @AlphaTauriHonda 我的情况没有屏蔽端口,是给你的 DOH 域名发 RST 。不开 DOH 服务了过几天这个域名会放出来。 |
14 Overfill3641 2022-05-02 16:24:00 +08:00 @wwbfred #10 DOT 853 端口会被屏蔽,非标准端口 IOS 和安卓不认,感觉直接 IP 限制或者像 AdGuard Home 对每个设备特定 ID 白名单就行了。 |
15 AlphaTauriHonda 2022-05-02 16:41:21 +08:00 @wwbfred 相当于域名被阻断了。 |
16 dem0ns 2022-05-02 17:24:38 +08:00 ssl 客户端验证+1 |
17 dem0ns 2022-05-02 17:25:45 +08:00 服务器端校验客户端的证书,自己生成一对证书就可以 |
18 xyjincan 2022-05-03 08:05:06 +08:00 via Android 干掉监控客户端? |
19 buxiaozisun &nsp; 2022-05-04 15:08:20 +08:00 via Android proxy_intercept_errors on; error_page 400 =404 /404.html; |
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~ |
21 root0 2022-05-30 23:12:45 +08:00 看你客户端 是怎么访问。如果可以自定义 访问那可以很方便。 后端可以用 写个 go 的 http Server (或者其他 PHP ,python )然后就可以用户名密码或者 Key 签名啥的。。。(如果你不会写 找人会的人几分钟就可以弄好) |
22 billytom 2022-06-11 16:27:45 +08:00 直接装 ADH ,用 client ID 验证不就行了? |