您现在的位置是:首页 > 榴榴无忌

加密DNS流量防止被窃听

| 人围观 |

天府娇子2024-11-19 17:37:03

由于dns本身的缺陷,我们日常家用网络,每一级网络出口都有流量检测设备,各运营商都有自己的dns,随后带来的dns劫持(运营商广告),dns污染(无法访问),隐私泄露(通过dns分析流量构成)等一系列问题。
自此以后,衍生出来了很多的安全产品,比如“上网行为管理”和“dns威胁情报”系统用来分析个人上网流量以及安全监控。
那么在这种情况下,对于个人而言,如何解决上述问题,确保个人隐私不被监听?
加密dns试验
反正就一句话,只要是涉及dns的地方,我们要做的就是加密。介于涉及到某些技术,安全和隐私之间的平衡,,下面举个例子点到为止:
通常我们的网络架构是这样的,尽管我们使用了在前半部分使用了cdn,但后半部分没有安全措施,网络仍然可以监控到:
 
一般云服务器会自带默认dns,问题就出在这里,这个默认dns上部署了上面我们说的各种监控,现在我们把云服务器上的dns流量加密,也就是部署一个dns over https软件;
我们安装cloudflare的warp软件
複製代码
  root@pentest:~# dpkg -i cloudflare_warp_2022_10_116_1_amd64_bfe553cbb1.deb 

doh软件都是基于2部分,首先让server端在本机启一个dns服务,该服务负责连接上级dns,这个过程端到端加密
複製代码
  1.         root@pentest:~# service warp-svc status
  2.       ● warp-svc.service - Cloudflare Zero Trust Client Daemon
  3.         Loaded: loaded (/lib/systemd/system/warp-svc.service; enabled; vendor preset: enabled)
  4.         Active: active (running) since Thu 2022-12-08 12:32:25 CST; 24s ago   
複製代码

然后是client部分:注册,设置模式为doh,会自动连接本机的dns服务;
複製代码
  1.     root@pentest:~# warp-cli register
  2. ...
  3. Success
  4. root@pentest:~# warp-cli set-mode doh
  5. Success
  6. root@pentest:~# warp-cli connect
  7. Success 
複製代码

部署前,服务器默认dns为某云dns,它能够监控;
複製代码
  1.   root@pentest:~# nslookup baidu.com
  2. Server:    183.60.83.19
  3. Address:  183.60.83.19#53 
複製代码

部署后,服务器默认使用本机解析dns;
複製代码
  1.   root@pentest:~# nslookup baidu.com
  2. Server:    127.0.2.2
  3. Address:  127.0.2.2#53
  4. Non-authoritative answer:
  5. Name:  baidu.com
  6. Address: 110.242.68.66
  7. Name:  baidu.com
  8. Address: 39.156.66.10 
複製代码

那么,本机dns可以用到我们需要使用的任何地方, 比如:
 
 
使用tcpdump抓取服务器出口流量;
複製代码
  1.     tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
  2. ^C7344 packets captured
  3. 7375 packets received by filter
  4. 0 packets dropped by kernel 
複製代码

至此,服务器所有出口dns流量已全部加密,无法被监听;