在linux上使用tcp dns防止dns污染

2011年5月16日 | 分类: 翻墙相关 | 标签: , ,

看了某篇文章,对tcp dns开始感兴趣,于是动手写了一个小脚本
可以把udp和tcp的dns请求全部转换到tcp发送到dns服务器

使用方法:
使用sudo或者root下执行python tcpdns.py
(绑定1024以下的端口需要root权限)
然后把本机dns设为127.0.0.1
需要安装python和python-twisted-core

dns设置方法:
在/etc/resolv.conf中添加nameserver 127.0.0.1

注意:
默认dns为8.8.4.4 可自己打开脚本修改

其他:
为保证安全性在绑定端口后会把脚本降低权限,默认为os.setuid(1000)
使用前请检查当前用户的uid是否为1000然后做出修改,在/etc/passwd中可以查到

在xp上也可以使用,需要安装python、twisted和zope,可以在以下地址中下载
http://www.python.org/
http://twistedmatrix.com/trac/wiki/Downloads
http://pypi.python.org/pypi/zope.interface#download

下载地址http://min.us/mvoilIn

感谢lol网友的推荐,本人没有测试,

关于防dns污染还可以参考http://igfw.net/archives/2640http://igfw.net/archives/274http://igfw.net/archives/366

本文原始地址http://igfw.net/archives/2658

  1. wcg2b
    2012年9月25日08:36

    简单的办法at home,,,set it in router setting…

  2. 匿名
    2011年8月3日00:11

    有个简单的办法,实验过了可以,就是用本地防火墙软件,屏蔽UDP53, 系统win7会自动转为用TCP53查询DNS的

    • iGFW
      2011年8月3日15:42

      感谢支持,这个怎么我试试,可以就爽了。

    • John
      2012年9月24日17:51

      使用win7 自带防火墙在入站口阻止UDP53,无效。不知道是否我操作错误。谢谢!

      • iGFW
        2012年9月24日22:51

        嗯,貌似是无效,记得我也试过。

  3. 匿名
    2011年7月28日19:42

    试了下,不支持ipv6的dns server啊,好期待支持ipv6!