6

我正在使用 Mac OS X 10.10.3 Yosemite。最近从 Snow Leopard (10.6.8) 升级到 Yosemite。

步骤 A

在我的 MacBook 上,我登录到一个管理员类型的特权帐户。我从 Apple App Store 安装了最新的免费 XCode。使用 XCode,我还安装了命令行工具等。

步骤 B

我从https://brew.sh/安装了 Homebrew 。这是我在终端中运行的命令行代码,来自 Homebrew 网站:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上面的脚本检查是否存在各种必要的软件和设置,并显示(终端窗口内的信息和状态,打开)需要获取或执行哪些其他命令或工具。我跟着那些。

步骤 C

完成 Homebrew 和相关安装步骤后,我通过终端中的命令行使用该工具安装openssl& :unboundbrew

brew help
brew update
brew install unbound openssl
sudo cp -fv /usr/local/opt/unbound/*.plist /Library/LaunchDaemons
sudo chown root /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
brew upgrade --all

步骤 D

我重新启动了一次 MacBook,然后尝试了dig以下命令。他们没有在 DNS 查询结果中显示ad标志,这表明 DNSSEC 认证的 DNS 解析仍然无法正常工作并被禁用!

dig @127.0.0.1 in TLSA _443._tcp.www.dnssec-validator.cz. +dnssec
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
dig @192.168.10.1 in TLSA _443._tcp.www.dnssec-validator.cz. +dnssec
dig @192.168.10.1 in TLSA _443._tcp.www.isc.org. +dnssec

192.168.10.1 是我的(互联网路由器)网关,用于连接到互联网的主要网络接口/适配器。我的网络适配器当前使用 192.168.10.50,一个基于动态(非固定)DHCP 的 IP 地址。

不幸的是,https://unbound.net/上的开发人员没有为 Mac OS X 提供独立的 Unbound.pkg.dmg安装程序文件。他们也没有积极开发 DNSSEC-Trigger 应用程序。在 Snow Leopard 中,我只使用了 DNSSEC-Trigger 捆绑包的未绑定部分。在遵循邮件列表存档中显示的提示后,我能够禁用 DNSSEC-Trigger 部分,并保持 Unbound 部分运行。这样,我就不需要安装任何 XCode 命令行工具或 Homebrew。

我现在应该怎么做才能让 MacBook 上的所有应用程序都可以为所有应用程序/客户端使用 Unbound DNSSEC 解析器?我希望 Unbound 的解析器在 127.0.0.1 端口 53 上侦听 DNSSEC 和 DNS 查询。

4

1 回答 1

8

这些步骤适用于 Mac OS X Yosemite MacBook。

我用一般的阐述自我回答,让新手更清楚,如果你不是新手,请跳过对你来说不必要的任何内容。

如果您不想安装非常大的 XCode 安装,请先参阅下面的步骤 E。否则,请从原始问题中的步骤开始。

步骤 E

E1

我自己在 Mac OS 中的帐户是Erik-user. 这是一个标准用户帐户,我通常将其用于一般目的。但该Erik帐户用于管理目的。它是“管理员”类型的特权用户帐户。我正在使用该Erik帐户。

E2

要在 Finder 文件浏览器中显示隐藏文件,请在终端中使用以下命令:

defaults write com.apple.Finder AppleShowAllFiles TRUE
defaults write com.apple.finder AppleShowAllFiles TRUE

然后注销并重新登录到您的 MacOS 用户帐户,或重新启动 MacOS。[ | | ]现在“Finder”应该以列模式显示所有文件和文件夹。

如果您已经安装了“XCode”和自制软件,请跳过步骤 E 的其余部分并从步骤 F 继续。

E3

如果您想避免安装数 GB 的 XCode,

  • 在终端中运行此命令:xcode-select --install将出现一个新窗口。在其中,仅选择“命令行工具”(CLT)选项/部分,即使它建议您安装完整的 XCode。
  • 然后验证 CLT 安装:所以在终端中运行:xcode-select -p
    如果显示:/Library/Developer/CommandLineTools
    则 CLT 安装成功。

Mac OS X Yosemite 只允许您安装 CLT 部分。一些以前的 Mac OS X 版本不允许没有 XCode 的 CLT。

还要检查gcc工具现在是否存在:在终端中,运行:gcc --version

E4

安装自制软件。在终端运行:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

有关实际和当前命令,请参阅https://brew.sh/网站。 然后在终端中,运行以下命令:ruby

brew help
brew update
brew install unbound openssl

E5

sudo cp -fv /usr/local/opt/unbound/*.plist /Library/LaunchDaemons
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
sudo launchctl load -w /Library/LaunchDaemons/homebrew.mxcl.unbound.plist

如果您执行了步骤 E3 到 E5,则跳过步骤 F,并从步骤 G 开始执行。

步骤 F

homebrew.mxcl.unbound.plist文件(启动 Unbound DNS 服务器)特别需要拥有适当的所有权,以便 Mac OS X 的系统本身可以在引导或重新启动期间启动它。在终端中执行此命令:

sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.unbound.plist

注意:升级 Homebrew 应用程序后,如果 Unbound 在重启后无法启动,我们可能需要再次执行此命令。

步骤 G

从 SourceForge下载 Lingon 。安装它。开始林贡。

步骤 H

在 Lingon 中,位于homebrew.mxcl.unboundUSER DAEMONS 下。
在“什么”文本框中,它应该如下所示:
/usr/local/opt/unbound/sbin/unbound -d -c /usr/local/etc/unbound/unbound.conf
选择并复制最后一部分“/usr/local/etc/unbound/unbound.conf”。

STEPs -I: ( steps -i)
在终端 shell 窗口中,输入并粘贴:
sudo nano /usr/local/etc/unbound/unbound.conf
或者,如果您已经安装了“ Bluefish ”(文本编辑器:http: //sourceforge.net/projects/bluefish/),启动它并打开“unbound.conf”文件进行文本编辑。

STEPs -J:
unbound.conf文件有很多页的配置信息和配置命令示例。 请参阅下面的代码,在 unbound.conf 文件的底部或适当的部分中仅添加以下配置命令代码行。只需确保不要在这些命令行之前放置任何 # 符号。如果在 begin 中放置了一个“#”符号,那么它将禁用该配置命令行,并将其变成一个简单的“comment”行。

    server:
        verbosity: 1
        num-threads: 2
        interface: 127.0.0.1
        interface: ::1
        port: 53
        do-ip4: yes
        do-ip6: yes
        do-udp: yes
        do-tcp: yes
        do-daemonize: yes
        #module-config: "[dns64] [validator] iterator"
        module-config: "validator iterator"
        auto-trust-anchor-file: "/usr/local/etc/unbound/root.key"
        #dlv-anchor-file: "/usr/local/etc/unbound/dlv.isc.org.key"

注意:我跳过了显示 DLV DNSSEC 的说明,所以在“dlv-anchor-file”行前面添加了(如上所示)# 符号,以禁用它。并且“模块配置”行之一也被禁用,因为我现在不希望与 DNS64 相关的解析。

STEPs-K:
并设置文件所有权:并为不同的所有权sudo chown root /usr/local/etc/unbound/unbound.conf
设置文件权限sudo chmod 644 /usr/local/etc/unbound/unbound.conf
: 有关更改文件权限和所有权的更多信息,请阅读或查看:http: //ss64.com/osx/chown.html 和 http:// ss64 。 com /osx/chmod.html权限
级别 4 =读取,2 =写入,1 =执行。3 位数字代表 3 种所有权:所有者-组-其他。
通过使用 Finder 的 GUI 界面,您还可以设置文件的权限和所有权,而不是在终端中使用命令行:在 Finder 中选择一个文件,同时按 Cmd+i 按钮,进入下面的“共享和权限”部分, “名称”列显示拥有所有权的用户/组列表,“权限”列显示不同所有权的文件的读/写权限级别。更改为此处显示的推荐选择和偏好级别。
除了非常可靠的人,而且只有这台计算机的核心(操作系统)系统组件,其他任何人(以及任何其他实体)都不应该有能力(编辑和更改或)写入某些敏感文件和文件夹,这就是为什么我们需要在文件和文件夹上设置“权限级别”。“644”中的“6”(在“chmod”命令行中使用)表示当前用户(又名“Me”)的权限级别,当前用户(“Me”)拥有(“6”可以是分解为 4+2) 读+写级别权限。“644”中间的“4”是用户类型或用户组的权限,该组/用户类型具有(“4”)读取级别权限。然后是“644”中最右边的“4”

STEPs-L:在终端中使用此命令
检查“unbound.conf”文件配置是否有任何错误:
sudo /usr/local/opt/unbound/sbin/unbound-checkconf "/usr/local/etc/unbound/unbound.conf"

STEPs -M:
获取 root.key(根锚)并验证:

按照 OPTION-1 中显示的说明,如果您没有“未绑定”DNS 服务器/解析器的“root.key”文件,并且您想通过非常彻底的检查手动创建“初始”root.key 文件,并且如果您希望未绑定的 DNS 服务器守护程序使用完整的 root.key 代码和时间戳来更新初始 root.key。

如果您没有(初始或工作的)“root.key”文件,并且您希望“未绑定锚”工具为您快速创建它,请按照 OPTION-2 中显示的说明进行操作。

遵循 OPTION-3 中显示的说明,如果您没有(初始或工作的)“root.key”文件,但您已从 IANA/ICANN 权威网站安全地获得“icannbundle.pem”文件,并且您想要“unbound-锚”工具非常安全地创建它(完整的工作root.key)。

遵循 OPTION-4 中显示的说明,如果您没有(初始或工作的)“root.key”文件,但您可以访问另一台“安全”或“安全”计算机,您可以在其中安全地从授权处获取文件网站,或者您可以从中复制一个有效的“root.key”文件,用于您的 MacOSX 计算机。

获取root.key 并验证,选项1 普通
用户可能希望通过HTTPS(加密和非窃听和保护)来自IANA权威网站的连接:root-anchors.xml ,或从ICANN权威网站获取初始锚点,然后普通用户必须将xml 文件的内容代码与本地初始 root.key 文件进行比较+验证。
单击上面的 xml URL 链接,然后检查 Web 浏览器的 url 栏中是否显示 LOCK 图标(这表明正在使用 HTTPS 加密连接),并检查“DNSSEC-Validator”的颜色"(和“TLSA-Validator”)状态图标,(它必须显示绿色的KEY-icon图片)。
下载 xml 文件或将 xml 文件中显示的内容复制粘贴到“root-anchors.xml”文件中,并将其放置/移动到“unbound.conf”文件所在的同一文件夹中。
现在将文件“root-anchors.xml”文件复制到同一文件夹中,并将“root-anchors Copy.xml”文件重命名为“root.key”。
并编辑这个“root.key”文件(通过使用 nano 或 Bluefish 文本编辑器应用程序)。" 代码行。确保 "root.key" 中的所有数字和哈希码完全相同,显示在 IANA 授权网页 "root-anchors.xml" 文件上。这两个文件的格式/语法将不同,但代码和哈希值必须相同。
目前(2015 年 6 月),根区域的 2010-2011 初始信任锚(初始root.key)如下所示。

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5

然后设置文件所有权:sudo chown root /usr/local/etc/unbound/root.key
并设置权限:sudo chmod 644 /usr/local/etc/unbound/root.key

上面“ DS ”代码行中显示的代码(也必须存在于 INITIAL “root.key” 文件中)被称为“ Initial Anchor ”。未绑定服务器守护程序或“未绑定锚”工具可以使用有效的完整 root.key 更新初始文件,并带有适当的代码和时间戳。

获取root.key并验证,选项2
获取+创建“root.key”文件的另一种快速(简短)方式(不是非常安全/值得信赖的方式)是使用未绑定工具“ unbound-anchor ”,通过终端中的命令:
sudo /usr/local/opt/unbound/sbin/unbound-anchor -a "/usr/local/etc/unbound/root.key"
使用上述命令,unbound-anchor 工具通过使用内部证书从权威网站(如果找到较新版本)获取适当的代码或文件,然后创建“root.key”文件,其中包含工作代码和时间戳。
然后在其上设置文件所有权:sudo chown root /usr/local/etc/unbound/root.key
并设置权限:sudo chmod 644 /usr/local/etc/unbound/root.key

获取 root.key 并验证,选项 3:如果提供/使用“ icannbundle.pem
”文件 ,此工具(未绑定锚)还可以更安全地获取和创建工作“root.key” 。因此,首先从 IANA 权威网站 http s ://www 安全地获取 icannbundle.pem 文件。iana.org /dnssec/files(并确保您的网络浏览器 url-bar 显示 LOCK 图标和绿色 dnssec KEY 图标),并将 pem 文件放置/下载到此目录位置: 然后设置文件所有权: 并设置权限: 然后通过在终端中使用以下命令非常安全地获取+创建一个工作 root.key:
/usr/local/etc/unbound
sudo chown root /usr/local/etc/unbound/icannbundle.pem
sudo chmod 644 /usr/local/etc/unbound/icannbundle.pem

sudo /usr/local/opt/unbound/sbin/unbound-anchor -a "/usr/local/etc/unbound/root.key" -c "/usr/local/etc/unbound/icannbundle.pem"
使用上述命令,unbound-anchor 工具通过内部证书从权威网站(如果发现更新版本)获取适当的代码或文件,然后使用 icannbundle.pem 加密密钥文件检查接收到的代码的真实性,然后创建“root.key”文件,包含工作代码和时间戳。
现在我们可以在 root.key 上设置文件所有权:sudo chown root /usr/local/etc/unbound/root.key
并设置权限:sudo chmod 644 /usr/local/etc/unbound/root.key
有关更多详细信息,请转到:http s : //unbound.net /documentation/howto_anchor.html 并检查 http s : //unbound.net /documentation /unbound-anchor.html

获取 root.key 并验证,选项 4
注意:用户/访问者假设使用已经预先设置的安全计算机和网络浏览器软件来“安全地”获取/下载这些文件(root-anchors.xml 或 icannbundle.pem等)来自 ICANN 或 IANA 权威网站。Web 浏览器软件,必须具有“DNSSEC-Validator”(和“TLSA-Validator”)(也称为 DNSSEC/TLSA-Validator)扩展/插件(来自此https://www.dnssec-validator.cz/网站) ,并且该计算机还必须具有本地完整的 DNSSEC 支持的 DNS 服务器或解析器。
然后在这样的网络浏览器中,用户/访问者可以看到每个访问网站(适当地经过 DNSSEC 签名)的正确 DNSSEC 和 DANE/TLSA 状态图标(绿色 KEY 图标)。
如果在“安全”和“安全”计算机中使用“未绑定”DNS 服务器/解析器,那么当您想避免进入权威网站时, 您可以将“root.key”文件从中复制到您的 MacOSX 计算机中&想要避免非常彻底的检查,以及当您想要快速配置第二台/其他计算机时。
还要加载这些 Firefox 扩展/插件,然后在 Firefox 底部启用“附加栏”(类似于状态栏),以查看有关 Web 服务器位置和反向 DNS 地址的更多信息,以及有关服务器的 TLS/SSL 证书的更多信息:
CipherFox、Cert Viewer Plus、Calomel SSL Validation、HTTPS-Everywhere、WorldIP、Classic Theme Restorer 等。

结束获取未绑定的“ROOT.KEY”相关步骤。

STEPs-N:
在您的 Mac OS X 计算机中,转到“系统偏好设置”>网络> 选择每个“WiFi”和每个“以太网”网络接口卡/适配器,它们在您的 Apple MacBook 计算机中与互联网连接 > 转到/单击“高级”>转到“DNS”选项卡>(在论文中记下哪个适配器具有哪组 DNS 服务器,然后逐个适配器)删除那里列出的 DNS 服务器,并确保,仅列出/指定一个 DNS 服务器: 127.0.0.1

上述步骤将在 /etc/resolv.conf 文件中创建+添加“nameserver 127.0.0.1”代码。

STEPs-O:(steps-o)
如果您使用的是 10.10.3 或更早版本,则将 mDNS (mDNSResponder) 完全禁用。通过使用“Lingon”应用程序,查找 mDNS(“com.apple.mDNSResponder ”),检查Lingon内的所有 4 个部分,特别是在 SYSTEM DAEMONS 下,单击每个部分旁边的文本“显示”,以查看完整列表。
mDNS 重新包含在 10.10.4 中(通过 Apple 更新),因此如果您使用的是 10.10.4,则仅针对这些步骤暂时禁用它-o。
如果它处于活动状态或在 10.10.3 或更早版本中找到,则取消选中/取消选择 Lingon 中的“启用”选项以禁用它,输入管理用户密码,保存/确定。
当 mDNS 处于活动状态时,它会开始解析 DNS,并且它还会自动执行许多其他活动(例如,发现和配置 UPnP IGD 和 NAT-PMP 等),而无需获得计算机所有者的许可或不显示任何信息(或表信息)给计算机的所有者,它到底在做什么。因此,mDNS 不会显示计算机的所有者、有关它允许哪些应用程序、执行什么操作以及在您的计算机上或通过您的计算机进行的端口/流量活动等的任何信息,因此不会向计算机所有者显示任何信息,因此 mDNS 不是一个应用程序,它为人们及其计算机的安全和隐私提供了一些好的技术。并且 mDNS 本身也不支持完整的 DNSSEC,除非使用至少一个本地/远程 BIND 或未绑定的完整 dnssec dns 服务器。

STEPs-P:
如果您使用的是 10.10.3 或更早版本,则仅针对这些步骤暂时禁用它-p。通过使用 Lingon,在 SYSTEM DAEMONS 下找到“com.apple.networking.discovered”。取消选中/取消选择 Lingon 中的“启用”选项以暂时禁用它,输入管理用户通行证,保存/确定。我们正在禁用它,以便它可以完全忘记从网络适配器的 DNS 设置中获取的以前/旧的 DNS 服务器(从这个阶段重新启动后它会忘记)。
Discoveryd 已从 10.10.4 中删除(通过 Apple 更新),因此如果您使用的是 10.10.4,则完全禁用它(如果仍然存在)。

STEPs-Q:
使用Lingon,在SYSTEM DAEMONS下找到“com.apple.dnsextd 。取消选中/取消选择 Lingon 中的“启用”选项以禁用/停用它,输入管理用户密码,保存/确定。

STEPs-R:
在终端中,运行:
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
并打开“App Store”,看看它是否可以拉取主页内容/项目。

重新启动/重新启动 MacOSX 一次。

STEPs-S:
Steps-S-01:如果您使用的是 10.10.3 或更早版本,则现在在本说明步骤-s 的这个阶段启用“discoveryd”。再次使用 Lingon,找到“com.apple.networking.discoverd 。选择/选中“启用”选项,输入管理用户通行证,保存/确定。
Discoveryd 已从 10.10.4 中删除(通过 Apple 更新),因此如果您使用的是 10.10.4,则仍然禁用“discoveryd”(如果仍然存在)。

步骤-S-02:如果您使用的是 10.10.4 或更高版本,则在此阶段重新启用“mDNS”。再次使用 Lingon,在 SYSTEM DAEMONS 下找到“com.apple.mDNSResponder 。选择/选中“启用”选项,输入管理用户通行证,保存/确定。

Steps-S-03:在 10.10.3 及更早的 Mac OS X 中,许多应用程序在(如上图所示)“discoveryd”守护程序(又名 Discovery Daemon)允许和服务时使用系统/默认 DNS 解析,或者 DNS 解析服务是允许在 10.10.4 或更高版本的 Mac OS X 中由 mDNS 守护程序访问。此守护程序中的任何一个现在都应该能够学习并允许其他应用程序使用在 127.0.0.1 端口 53 上运行的新 DNSSEC DNS 服务器服务,即在网络适配器的 DNS 设置中指定,(在此阶段重新启动后)。

STEPs-T:
在终端中,运行:
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
并打开“App Store”,看看它是否可以拉取主页内容/项目。

再次重新启动/重新启动。

STEPs-U:
现在在终端中,运行“dig”命令,检查查询结果是否在标志中显示“ ad ”,状态是否显示“NOERROR”。如果这些指标存在,则完整的 dnssec dns 解析正在从本地 dnssec 解析器工作,在 127.0.0.1 端口 53/DNS 上运行和侦听。:)

dig @127.0.0.1 in TLSA _443._tcp.www.dnssec-validator.cz. +dnssec
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
dig @127.0.0.1 in TLSA _443._tcp.www.statdns.net. +dnssec
ping yahoo.com
nslookup yahoo.com

如果“nslookup”或“ping”有效,则表明默认 DNS 服务器正在工作。
从上面的“dig”命令中删除“@127.0.0.1”部分,并检查结果是否相同(即,仍然显示“ad”标志,如果仍然显示 dig 结果,则默认使用 127.0。 0.1 作为 DNS 服务器),则表示默认情况下,本地 127.0.0.1 DNS 服务器用作系统范围的 DNS 服务器/解析器(适用于几乎所有应用程序/工具),并且基于 dnssec 的解析也可以正常工作。

STEPs-V:
一些工具和应用程序不完全使用其他 DNS 服务器,它们包含自己的内部完整 DNSSEC/DNS 解析库和相关代码或包含部分库代码,因此仅使用此类工具检查 DNS 是不够的。
您必须通过已知使用系统网络适配器的 DNS 服务器的其他应用程序(您日常使用的或)检查它。

因此,您必须启动 Firefox 和 Apple App Store,并检查您是否可以正常查看和访问所有网站,因为这些应用程序将使用“默认”(也称为“系统”)DNS 解析器/服务器,现在设置为127.0.0.1 由我们,我们在网络适配器配置中指定的。

STEPs-W:
基于防火墙的限制和协助:
通过使用应用程序感知防火墙+网络端口/数据包控制防火墙,如果我们设置如下所示的防火墙规则,则可以强制使用整个系统,只有一个完整的 dnssec DNS 服务器/解析器127.0.0.1 & 没有别的:
系统范围/全局防火墙规则 #1:只有“未绑定”应用程序可以使用 TCP 或 UDP 连接与任何其他 DNS 服务器的端口 53/DNS 连接。
系统范围/全局防火墙规则 #2:任何不是“未绑定”的应用程序/软件,只能使用一个“未绑定”DNS 服务器运行并侦听 127.0.0.1 端口 53/DNS,使用 TCP 或 UDP联系。(因此,对于未绑定的应用程序/软件,所有其他端口 53 流量都将被丢弃)。

Steps-X 和 Steps-Y,现在不存在。

STEPs-Z:
注意/免责声明/参考:
我已遵循(并从其他网站借用说明和讨论评论),(并在此处复制粘贴说明和评论,并由我进行轻微修改)。我在这篇文章/答案页面中首次提到相关内容时在段落下显示了一些参考资料。因此,为了更详细的了解,请在 ddg/yahoo/bing/google 引擎中搜索来自此处的术语/单词。
不同的计算机可能也很可能有不同的版本、配置和组件。因此,在您自己的计算机上使用任何这些显示的说明之前,您必须研究并使用您自己受过最好教育的知识和判断,风险自负。

于 2015-06-25T09:18:25.880 回答