前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fedora 40中使用BIND自建递归服务器并启用DoT/DoH

Fedora 40中使用BIND自建递归服务器并启用DoT/DoH

原创
作者头像
CN-JS-HuiBai
修改2024-08-09 13:05:13
700
修改2024-08-09 13:05:13

本文简要介绍一下自建递归解析服务以打破阿里DNS等提供公共DNS服务的请求频率限制:

1、安装软件包:

代码语言:shell
复制
sudo dnf -y install bind bind-utils 

2、修改递归服务器的配置,使其可以接受网络中发起的递归请求,

打开配置文件:

代码语言:shell
复制
vim /etc/named.conf

这里我们只需要简单的对默认的配置进行一下修改即可,按下i进入编辑模式:

代码语言:shell
复制
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { any; };
        allow-recursion { any; };

        /* 
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable 
           recursion. 
         - If your recursive DNS server has a public IP address, you MUST enable access 
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification 
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface 
        */
        recursion yes;

        dnssec-validation yes;

        managed-keys-directory "/var/named/dynamic";
        geoip-directory "/usr/share/GeoIP";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

        /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
        include "/etc/crypto-policies/back-ends/bind.config";
};

按下ESC,输入 :wq 退出并保存,在这里我们主要修改的是以下的部分:

在这里,listen-on port 53 { any; }; 以及 listen-on-v6 port 53 { any; };表示监听所有IPV4和IPV6,因为在家庭网络中普遍存在的NAT,这里不需要进行限制。allow-query { any; };表示允许所有地址向该递归服务器发起请求。allow-recursion { any; };表示允许所有地址向该服务器发起递归请求。可以根据自己实际的情况来进行调整。

保持其他的配置部分不要变更。

3、使用命令检查配置文件是否存在错误:

代码语言:shell
复制
named-checkconf /etc/named.conf

4、启动解析服务并配置其开机自动启动:

代码语言:shell
复制
systemctl enable --now named

5、为服务器配置DNS Over TLS以及DNS Over HTTPS(略去了ACME申请证书的步骤):

在options { }块之前添加一个部分以配置证书,记得给这里的路径换成你证书所在的路径:

代码语言:shell
复制
tls local-tls {
    key-file "/ssl/domain.pem";
    cert-file "/ssl/domain.key";
};

为证书路径配置权限:

代码语言:shell
复制
chown -R named:named ssl

在options { } 块中添加以下内容以启用=

代码语言:shell
复制
        listen-on port 443 tls local-tls http default {any;};
        listen-on port 853 tls local-tls {any;};

使用命令检查配置文件是否存在错误:

代码语言:shell
复制
named-checkconf /etc/named.conf

重新启动解析服务:

代码语言:shell
复制
systemctl restart named

打开防火墙:

代码语言:shell
复制
firewall-cmd --add-port=53/udp --permanent 
firewall-cmd --add-port=53/tcp --permanent 
firewall-cmd --add-port=443/tcp --permanent 
firewall-cmd --add-port=853/tcp --permanent 
firewall-cmd --reload

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、安装软件包:
  • 2、修改递归服务器的配置,使其可以接受网络中发起的递归请求,
  • 3、使用命令检查配置文件是否存在错误:
  • 4、启动解析服务并配置其开机自动启动:
  • 5、为服务器配置DNS Over TLS以及DNS Over HTTPS(略去了ACME申请证书的步骤):
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档