Bind9 试玩 DNS over https (DOH)

近几年对DNS解析防劫持的要求越来越高, 关于dns加密查询,主要分为DOT, DOH 两种方式,含义如下:

DOT: DNS over TLS

DOH: DNS over HTTPS

两者的目的一致,都是为了加密DNS的请求内容,防止伪造、劫持攻击。区别在于 HTTPS是TLS上的HTTP协议, 更通用些。

本文使用环境: ubuntu 20.04, bind9.17-dev

安装配置步骤:

首先切换到bind9开发分支,因为从bing9.17才开始支持doh  

$ sudo add-apt-repository -r ppa:isc/bind-dev # 移除
$ sudo add-apt-repository ppa:isc/bind-dev
$ sudo apt-get update
$ sudo apt install bind9

1.  修改bind的配置文件,文件路径:/etc/bind/named.conf.options

修改内容如下:

    // 设置证书
    tls local-tls {
                    key-file "/etc/replace/yours/item.key";
                    cert-file "/etc/replace/yours/item.pem";
    };
    options {
            // ... 其他配置略.....


            // ipv4 监听端口,这里使用自定义的643, 不是https的443,根据个人需要
            listen-on port 643 tls local-tls http default {any;};

           // ipv6
            listen-on-v6 port 643 tls local-tls http default {any;};
};

2. 配置apparmor, 允许访问证书路径:

$ sudo nano /etc/apparmor.d/local/usr.sbin.named

apparmor添加内容:

/etc/replace/yours/** r,

3. 重启bind9服务

$ sudo service bind9 restart

验证结果:

测试doh, 注意指定你的端口,如果使用默认的443端口,则不用指定。

$ dig -p 643 +https @127.0.0.1 www.rangotec.com AAAA

浏览器使用:

edge、chrome 在安全性里设置自己的doh地址,模板如下:

https://yun.rangotec.com:643/dns-query{?dns}

在安全性下选择服务商栏里填写自己的解析地址。

dns over https

 

评论列表: