用户工具

站点工具


freebsd:network:nginx_dot

使用 Nginx 搭建 DNS over TLS (DoT)

参考文档及源代码

配置 Nginx

以下是简明配置, 详细的参考上面的文档 #1

如果上游DNS服务器使用DNS over TLS(DoT),一般是853端口, 则 stream 配置需要启用 proxy_ssl

如果上游DNS服务器是普通形式, 一般是53端口, 则 stream 配置需要启用 proxy_ssl

stream {
	ssl_protocols			TLSv1.2 TLSv1.3;
	ssl_ciphers			"EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
	ssl_prefer_server_ciphers	on;
	#ssl_session_cache		shared:SSL:50m;
	ssl_session_timeout		1d;
	ssl_dhparam			/path/dh4096.pem;
	tcp_nodelay			on;
	upstream dot {
		zone	dot 64k;
		server	8.8.8.8:853;
		server	8.8.4.4:853;
		server	1.1.1.1:853;
		server	1.0.0.1:853;
	}
	server {
		listen			853 ssl;
		ssl_certificate		/path/fullchain.pem;
		ssl_certificate_key	/path/privkey.pem;
		proxy_pass		dot;
		proxy_ssl		on; # 如果上面upstream dot内的DNS服务器不是DoT, 即是普通53端口, 则注释本行
	}
}

测试

用 kdig 测试

简单的不检查TLS证书

kdig -p 853 @dns_server_ip +tls intel.com

匹配TLS证书为domain

kdig -p 853 @dns_server_ip +tls-ca +tls-host=domain intel.com

使用 getdns 查询

  1. Transport order: 选择TLS
  2. TLS resolver IP: 输入要检查的DNS服务器IP
  3. TLS auth name: (可选)TLS证书验证域名
freebsd/network/nginx_dot.txt · 最后更改: 2019/12/08 21:42 由 Hshh

工业和信息化部备案管理系统网站 浙ICP备05015161号-1