bind + DNSCrypt 实现安全加密转发,避免DNS污染
首先我先贴俩图,看看现象
我解析下敏感域名
巧了,我瞎蒙的随便一个国外地址都特么是DNS ?
当然不是,因为祖国的出口伫立着一套高端设备,,,, 不说了,敏感了!
此法的基本思路是避免DNS污染和DNS劫持。(不关心原理的同学请跳过此段)众所周知,GFW的一大凶器是在DNS上做文章。关于DNS污染和DNS劫持的区别,请参考这篇文章。概括地说,DNS劫持是通过DNS服务器返回虚假的IP地址实现的,我们只需将本机使用的DNS服务器改成8.8.8.8等国外服务器即可。但这种方法无法避免DNS污染,因为DNS查询默认使用UDP协议,而墙可以干扰我们与DNS服务器的通信。今天介绍的dnscrypt-proxy,则开设本地的DNS服务器,对DNS请求进行加密(墙无法干扰加密后的请求),从国外的DNS服务器获取正确的IP地址后反馈回来,是为DNS代理的基本原理。
但这也就决定了,此法不可能成为通用的×××方法,因为GFW对于有些网站是直接通过IP地址屏蔽的。
平台:RHEL 6.6 x64 (CentOS)
dns服务器:Bind Server
yum源并没有dnscrypt-proxy,所以只能编译安装了
首先下载 dnscrypt-proxy
下载地址http://download.dnscrypt.org/dnscrypt-proxy/ (巧,这也被qiang了)
另外需要安装 libsodium依赖库 (我这里选择的是libsodium-0.5.0-mingw.tar.gz)
下载地址http://download.libsodium.org/libsodium/releases/
wget http://download.libsodium.org/libsodium/releases/libsodium-0.5.0-mingw.tar.gz tar xf libsodium-0.5.0-mingw.tar.gz cd cd libsodium-0.5.0 CFLAGS="-O3 -fPIC" ./configure make && make install ldconfig
依赖库装好了,下面来安装 dnscrypt
上传dnscrypt-proxy-1.4.0.tar.gz至服务器
tar xf dnscrypt-proxy-1.4.0.tar.gz cd dnscrypt-proxy-1.4.0 cd src/libevent-modified/ CFLAGS="-O3 -fPIC" ./configure make && make install cd .. cd .. ./configure make -j 2 && make install
安装好了
dnscrypt-proxy -h //显示帮助信息可用选项-a --local-address=... //监听的本地地址[端口] (不指定端口默认监听在53端口)-d --daemonize //后台运行(不提示错误信息)-R --resolver-name=... //选定的国外加密解析服务器-T --tcp-only //仅以TCP协议运行(默认监听在udp tcp上)-k //手动指定密钥串-V --version //版本信息
常用就这几个选项 更多详细帮助 man dnscrypt-proxy
运行 dnscrypt-proxy 提示有错误,但是请注意这一条
这个文件中有默认的已经支持dnscrypt查询的公共dns opendns也在其中。
我们来查看下这个文件 dnscrypt-resolvers.csv
第一行定义的是列标题,每个字段用逗号隔开,每一行开头就是 resolver_name
用法如下
dnscrypt-proxy --resolver-name=resolver_name --local-address=127.0.0.1:40 --daemonize dnscrypt-proxy -R resolver_name -a 127.0.0.1:40 -d //简写,监听在本地udp tcp40端口,远端加密dns选用resolver_name
不加-d参数 默认是前台运行
然后如果需要局域网开启加密访问,记得在iptables开启相应端口
最后在其他电脑上查询一下看是否生效,
dig www.youtube.com @*.*.*.* -p 3535 ; <<>> DiG 9.10-P2 <<>> www.youtube.com @*.*.*.* -p 3535 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32356 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.youtube.com. IN A ;; ANSWER SECTION: www.youtube.com. 86400 IN CNAME youtube-ui.l.google.com. youtube-ui.l.google.com. 900 IN CNAME youtube-ui-china.l.google.com. youtube-ui-china.l.google.com. 180 IN A 173.194.72.138 youtube-ui-china.l.google.com. 180 IN A 173.194.72.102 youtube-ui-china.l.google.com. 180 IN A 173.194.72.100 youtube-ui-china.l.google.com. 180 IN A 173.194.72.113 youtube-ui-china.l.google.com. 180 IN A 173.194.72.101 youtube-ui-china.l.google.com. 180 IN A 173.194.72.139 ;; Query time: 872 msec ;; SERVER: *.*.*.*#3535(*.*.*.*) ;; WHEN: Sun Jan 11 99:29:00 ?D1ú±ê×?ê±?? 2015 ;; MSG SIZE rcvd: 205
解析是对了,但是并不代表 FQ 所以,这主要是搭配其他工具来实现FQ 。
转载于:https://blog.51cto.com/professor/1601753
bind + DNSCrypt 实现安全加密转发,避免DNS污染相关推荐
- Linux DNS配置权限不够,Linux下配置DNScrypt避免DNS污染
关于DNScrypt DNSCrypt是OpenDNS发布的加密DNS工具,可加密DNS流量,阻止常见的DNS攻击,如重放攻击.观察攻击.时序攻击.中间人攻击和解析伪造攻击.DNSCrypt支持Mac ...
- 使用DNSCrypt解决DNS污染问题
DNSCrypt是OpenDNS发布的加密DNS工具,可加密DNS流量,阻止常见的DNS攻击,如重放攻击.观察攻击.时序攻击.中间人攻击和解析伪造攻击.DNSCrypt支持Mac OS和Windows ...
- Linux bind安装问题-无法提供查询转发解析
Linux bind 安装完成无法提供查询转发解析 需要将主配置文件/etc/named.conf文件中的dns安全扩展"dnssec-enable"与"dnssec-v ...
- 网站域名服务器加密,网站实现全站https加密可以防止DNS劫持吗?
DNS劫持一般指域名劫持,它是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或恶意要求 ...
- DNS,DNS污染劫持,DNS加密
1. DNS(Domain Name System) DNS(Domain Name System), 也叫网域名称系统,是互联网的一项服务.它实质上是一个 域名 和 IP 相互映射的分布式数据库. ...
- 第十代酷睿 I7 IPSEC加密转发性能测试报告
对第十代酷睿I7进行IPSEC加密转发性能测试,下图是组网图.两台I7的设备各自有2个独立的物理网口,其中网口L为LAN,网口W为WAN.发包测试仪采用晨晓科技的千兆发包仪. 针对不同报文长度,在不丢 ...
- php域名免备案转发,免备案高防CDN支持过墙域名跳转解决域名DNS污染
免备案服务器联系咨询我 QQ:281846000 全国节点,自动切换,保证业务的安全和稳定 1.301跳转,解决域名被墙,国内免备案不限制内容服务器. 2.域名防劫持,DNS防护专属套餐,视频***C ...
- 如何防止DNS污染?
对于DNS污染,一般除了使用代理服务器和VPN之类的软件之外,并没有什么其它办法.但是利用我们对DNS污染的了解,还是可以做到不用代理服务器和VPN之类的软件就能解决DNS污染的问题,从而在不使用代理 ...
- 使用 dnscrypt-proxy 防止 dns 污染
今天发现上不了中文维基百科(zh.wikipedia.org),用了 VPN 也上不了.ping 了一下,发现得到的 IP 和世界各地的不一样.应该是 DNS 污染的问题. 几年前有个叫 DNSCry ...
- DNS污染是什么、DNS污染定义及原理分析
网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning),是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的I ...
最新文章
- 美国科学家发现:AI跟人类一样,都是需要“睡觉”的
- python天天学怎么样-每天一遍,好好学习,天天向上(Python)
- 重构——39以多态取代条件表达式(Replace Conditional with Polymorphism)
- Oracle 密码过期问题
- python postmessage 鼠标_SilkTest高级进阶系列7-用PostMessage模拟鼠标
- 配置jupyter notebook到conda env虚拟环境里可运行
- 有多少人乘坐公交车时用NFC付钱?
- dp(0,1背包)-----高数Umaru系列(9)——哈士奇
- Linux glibc 库的修复方案扯出更严重的新漏洞
- 贵州大数据崛起背后的阿里云力量
- Idea安装Eslint插件详解 提示:Plugin NativeScript was not installed解决
- windows10 记事本进程 键盘消息钩子 dll注入
- 离散Hopfield神经网络的联想记忆—数字识别
- 红蓝药丸的选择:大脑在缸中还是颅中?
- java mp3合并_java合并MP3文件
- qq_seconds.html,qq英语名字汇总82句
- 联想拯救者y7000怎么配置Java环境_联想拯救者y7000重新安装系统教程
- 深入理解深度学习——语境词嵌入(Contextual Word Embedding)
- 造轮子--MLP与EBP的实现
- iso硬盘安装 凤凰os_系统之家ISO硬盘安装图解
热门文章
- Db2干净卸载Linux,在Linux/Aix环境下完全卸载DB2
- 【树上分块】【dfs序】2018沈阳网络赛 —— J题
- linux脚本中使用转义括号,Linux之shell中的大括号、中括号、小括号的使用详解+多示例...
- 简单的maven自定义webapp目录
- 服务器获取真实客户端 IP [ X-Forwarded-For ]
- Intellij IDEA创建maven项目无java文件问题
- AJAX 数据库实例
- linux:nohup 不生成 nohup.out的方法
- Proteus中8259的仿真[无dos,纯手工]
- netty中ChannelHandler执行顺序案例详解