Closed 70599 closed 1 year ago
dns-hijack?
dns-hijack?
劫持已经成功了,直接运行dig
时sing-box的日志有反应,请求已经进sing-box了。
我给出配置的中,只有www.google.com
走fakeip,其他是ali或cf的dot,所有请求都按预期工作。
还是说fakeip有特殊的劫持方式?
try dig @172.20.0.2 www.google.com ?
try dig @172.20.0.2 www.google.com ?
# dig www.google.com @172.20.0.2
;; communications error to 172.20.0.2#53: timed out
;; communications error to 172.20.0.2#53: timed out
;; communications error to 172.20.0.2#53: timed out
; <<>> DiG 9.18.11 <<>> www.google.com @172.20.0.2
;; global options: +cmd
;; no servers could be reached
无法重现,请提供完整配置。
无法重现,请提供完整配置。
我这套配置是使用在openwrt上的,sing-box监听本地15353端口,并设置为dnsmasq上游完成dns解析
# uci show dhcp | grep 15353
dhcp.@dnsmasq[0].server='127.0.0.1#15353' '::1#15353'
fakeip以外都能如预期分流dns并得到正确解析结果,只有fakeip如前述,没有结果返回。
刚才又指定解析端口,测试得到了解析结果。
(但是不知道为什么有几个connection refused
)
# dig www.google.com -p 15353
;; communications error to 127.0.0.1#15353: connection refused
;; communications error to 127.0.0.1#15353: connection refused
;; communications error to 127.0.0.1#15353: connection refused
; <<>> DiG 9.18.11 <<>> www.google.com -p 15353
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11775
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 259 IN A 172.20.0.6
;; Query time: 15 msec
;; SERVER: ::1#15353(::1) (UDP)
;; WHEN: Sun Mar 26 12:06:10 CST 2023
;; MSG SIZE rcvd: 62
看起来可能是这种设置dnsmasq上游的方法,仅对fakeip工作不正常。 如果没有别人有类似场景可供参考的话,我就close本issue吧。
有 dnsmasq 在出错时产生的日志吗?
再次测试,把dnsmasq的默认端口改成53以外,sing-box直接监听[::]:53
。
这时dig
可以直接得到fakeip了。
# dig www.google.com
; <<>> DiG 9.18.11 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26505
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 600 IN A 172.20.0.7
;; Query time: 47 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sun Mar 26 12:18:12 CST 2023
;; MSG SIZE rcvd: 62
但是浏览器中不能正常打开www.google.com
有 dnsmasq 在出错时产生的日志吗?
刚才复查dnsmasq的设置,发现启用了DNSSEC 检查未签名
。
禁用后,恢复设置dnsmasq监听默认端口53,sing-box监听15353,并设置为dnsmasq上游。
此时dig
可以正常得到fakeip:
# dig www.google.com
; <<>> DiG 9.18.11 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65433
;; flags: qr; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 487 IN A 172.20.0.10
;; Query time: 11 msec
;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP)
;; WHEN: Sun Mar 26 13:05:35 CST 2023
;; MSG SIZE rcvd: 62
但是浏览器中依然不能正常打开www.google.com
。
dns.fakeip.inet4_range
和inbounds[1].inet4_address
完全照抄文档(其他配置未动)以后,现在网站也能正常打开了。
应该是我没能正确理解文档中的下述描述。
If using tun, make sure FakeIP ranges is included in the tun's routes.
我以为dns.fakeip.inet4_range
应该是inbounds[1].inet4_address
的子集。
您可以尝试添加 DNS 规则以屏蔽 DNSSEC 检查。具体来说,添加一条 query_type
为 DNSKEY 的规则到类型为 rcode://success
的服务器的规则。
您可以尝试添加 DNS 规则以屏蔽 DNSSEC 检查。具体来说,添加一条
query_type
为 DNSKEY 的规则到类型为rcode://success
的服务器的规则。
感谢回复。 经过反复调试发现与DNSSEC无关。
dns.fakeip.inet4_range
和inbounds[1].inet4_address
完全照抄文档开启dnsmasq的日志
# vim /etc/dnsmasq.conf
...增加以下设置
log-dhcp
log-queries
log-facility=/tmp/log/dnsmasq.log
possible DNS-rebind attack detected
Mar 26 15:36:56 dnsmasq[5752]: query[A] www.google.com from 10.10.2.2
Mar 26 15:36:56 dnsmasq[5752]: forwarded www.google.com to 127.0.0.1#15353
Mar 26 15:36:56 dnsmasq[5752]: possible DNS-rebind attack detected: www.google.com
重绑定保护
,重启dnsmasq
# uci set dhcp.@dnsmasq[0].rebind_protection='0'
# uci commit
# service dnsmasq restart
之后dig
、浏览器访问就都正常了。
(您早就提示过dnsmasq的日志,我没有马上按照建议调试,不好意思耽误时间了)
以前用过*ray系的fakedns,应该是没有触发过openwrt的重绑定保护
。
请尝试 inet4_range 修改为与 tun.inet4_address 不重合的值。
FakeIP ranges is included in the tun's routes.
不是指 tun 地址必须包含,auto_route 启用时默认路由所有地址(除非与别的接口冲突)。
请尝试 inet4_range 修改为与 tun.inet4_address 不重合的值。
感谢建议,已经重新设置,目前没有问题了。
Welcome
Description of the problem
FakeIP启用后,日志里有IP。 但是
dig
或nslookup
没有结果,浏览器中也提示找不到IP,打不开对应网站。Version of sing-box
Server and client configuration file
Server and client log file