2011年4月7日星期四

OpenVPN用户DNS污染问题的深入研究

OpenVPN虽然可以实现翻墙,但是解决不了DNS污染问题,令翻墙的效果大打折扣。

我们深入分析DNS污染产生的原理。

测试中的OpenVPN配置,在server端已经推送8.8.8.8作为客户端的DNS.

redirect-gateway def1 也已经开启。Windows PC端将以OpenVPN网关作为默认网关。
DNS请求会从OpenVPN网关发送出去。

尽管如此,GFW还是会污染我们的DNS查询请求。
据估计,可能是这样的,当PC发起DNS查询,同时会向两个网关查询。哪个网关先响应,就用哪一个的。 这样就麻烦了。GFW完全可以发送假的数据包。

解决DNS污染的方法是在VPS 上建立Bind9  DNS Server.
并建立 dns.domain.com 的 dns反向解析 至 10.8.0.1.
OpenVPN推送 10.8.0.1作为DNS解析。
Windows系统的DNS会反向解析10.8.0.1,如果有效,则使用10.8.0.1作为域名解析。

因为10.8.0.1是局域网,所以Windows会优先查询局域网。这样局域网查询的请求结果会优先返回。 由此可以避免DNS污染。

1 条评论:

  1. 客户端查询10.8.0.1,如何返回一个有效结果?bind9起着什么特别作用?是否如同局域网Ics共享的一般,192.168.0.1是服务器,也是客户端dns server,在openvpn里10.8.0.1为网关服务端,其dns为8.8.8.8

    回复删除