素材巴巴 > 程序开发 >

unbound配置cache服务器

程序开发 2023-09-12 13:53:09

unbound

  • 检查配置
  • 查看缓存
  • 启动Unbound服务:
  • 结果验证
  • 排错方法
  • 安装unbound

    以下是将DNS over TLS(DoT)配置到RHEL 8中的步骤:

    # 安装unbound 
     yum install unbound -y# 备份配置
     cp /etc/unbound/unbound.conf{,.bak}# cd到unbound配置目录
     cd /etc/unbound/# 过滤所有的注释和空行
     grep -Ev "#|^$" /etc/unbound/unbound.conf
     

    image.png


    配置unbound

    完整版配置参数参考
    https://wiki.archlinuxcn.org/wiki/Unbound

    下方链接是以配置好的精简优化配置

    # 下载配置
     ## -P 指定保存目录
     wget -P /etc/unbound/ https://raw.githubusercontent.com/omaidb/qiaofei_notes/main/config_bak/unbound/unbound.conf# 下载named.cache根缓存文件
     wget -P /etc/unbound/ https://www.internic.net/domain/named.cache# 修改配置文件属主和数组
     chown unbound:unbound /etc/unbound/unbound.conf# 修改根缓存文件属主和数组
     chown unbound:unbound /etc/unbound/named.cache
     

    生成DOT证书

    # 创建keys目录
     mkdir -p /etc/unbound/keys# 生成DOT证书
     ## req: 使用req命令来生成证书请求和自签名证书。
     ## -new: 创建新的证书请求和新的私钥。
     ## -newkey rsa:2048: 使用RSA算法生成2048位的私钥。
     ## -days 365: 设置证书的有效期为365天。
     ## -nodes: 不加密私钥,这将允许您在使用私钥时不需要输入密码
     ## -x509: 生成自签名的X.509证书。
     ## -subj "/CN=NFSC": 设置证书主题
     ## -keyout : 将生成的私钥写入名为“dot.key”的文件中
     ## -out : 将生成的证书写入名为“dot.pem”的文件中
     openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 
     -subj "/CN=NFSC" 
     -keyout /etc/unbound/keys/dot.key 
     -out /etc/unbound/keys/dot.pem# 配置DOT证书属主和属组
     chown -R root:unbound /etc/unbound/keys
     

    配置日志

    # 创建日志文件
     touch /var/log/unbound.log# 修改文件属主属组
     chown unbound:unbound /var/log/unbound.log
     

    监听哪个IP

    如果要监听0.0.0.0interface-automatic(自动选择网路接口)这个值要设置为yes
    image.png


    允许哪些客户端查询

    unbound拒绝递归查询,除了localhost
    allow允许查询的网段
    refuse拒绝查询的网段
    deny不响应
    image.png


    配置转发

    name: "." 表示匹配所有,都进行转发
    image.png

    # 将hk域转发到指定DNS解析
     # 转发cn域名
     forward-zone:name: "hk."forward-addr: 114.114.114.114forward-addr: 223.5.5.5
     

    DNSSEC

    DNSSEC(Domain Name System Security Extensions)是一种用于增强 DNS 安全性的扩展协议。它通过数字签名的方式对 DNS 数据进行验证,从而防止 DNS 缓存污染和 DNS 欺骗攻击等安全问题。

    DNSSEC 通过向 DNS 记录中添加数字签名来实现验证。数字签名包含了 DNS 记录的完整性信息,如果 DNS 记录被篡改,数字签名就会失效,从而使得 DNS 查询结果无效。


    测试DNSSEC

    为了测试DNSSEC是否工作,在启动unbound.service之后:

    unbound-host -C /etc/unbound/unbound.conf -v sigok.verteiltesysteme.net
     

    得到的回应应该是附带(secure)字样的ip地址。
    在这里插入图片描述

    unbound-host -C /etc/unbound/unbound.conf -v sigfail.verteiltesysteme.net
     

    这次的回应应该包含(BOGUS (security failure))字样。

    另外你也可以使用“drill”命令来测试:

    drill sigok.verteiltesysteme.net
     

    应该返回NOERRORrcode

    drill sigfail.verteiltesysteme.net
     

    应该返回SERVFAILrcode


    开启domain-insecure

    如果某网站没有使用DNSSEC,那么客户端将不能收到解析的IP地址,而造成无法访问。
    那就需要domain-insecure为该域名创建安全例外规则

    # 为baidu.com创建DNSSEC例外规则
     domain-insecure: baidu.com
     

    image.png


    生成密钥

    生成.key

    # 生成.key
     unbound-control-setup
     

    image.png


    检查配置

    # 检查配置文件是否有误
     unbound-checkconf
     

    image.png


    查看缓存

    前提条件: control-enableyes
    image.png

    # 先使用客户端ping一下google
     ping google.com# 然后从缓存中过滤google
     unbound-control dump_cache |grep google.com
     

    启动Unbound服务:

    # 开机自启
     systemctl enable --now unbound# 修改完配置后重新加载配置文件
     systemctl reload unbound
     

    请注意,一些防火墙或网络配置可能会阻止DoT解析器端口(通常为853)上的出站流量,因此您可能需要配置防火墙或网络设置以允许此流量。


    结果验证

    使用带有+dnssec+short选项的dig命令验证Unbound解析,例如:

    # +dnssec: 启用 DNSSEC 功能,表示查询结果需要进行数字签名验证
     # +short: 显示查询结果中的简洁信息,只显示域名和 IP 地址
     dig +dnssec +short google.com 
     

    如果输出显示来自DoT解析器的响应,则Unbound成功地使用了DoT解析器。


    方法1:

    使用dig验证DNSSEC

    # 检查本地DNS是否支持DNSSEC
     dig SOA com. @127.0.0.1
     

    如果flags带有ad,就是支持DNSSEC
    image.png


    方法2:

    在线访问 http://dnssec-or-not.com/ ,用来在线检查是否支持DNSSEC
    image.png


    排错方法

    # 查看错误日志
     tail -f /var/log/unbound.log
     

    在这里插入图片描述

    在这里插入图片描述


    标签:

    上一篇: 利用yoman脚手架创建angular项目 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。