如何在Mac OS X 10.10.3优胜美地上启用未绑定的DNSSEC DNS解析器

atE*_*rik 4 dns macos resolver dnssec server

我正在使用Mac OS X 10.10.3 Yosemite。最近从雪豹(10.6.8)升级到优胜美地。

步骤-A:在MacBook中,我登录到具有Admin类型的特权帐户,并从Apple App Store安装了最新的免费“ Xcode”。通过使用Xcode,添加了“命令行工具”等。

步骤B:
从http s:// brew.sh /网站安装Homebrew 。从Homebrew网站复制粘贴到终端中的命令行代码下面:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
进程/脚本上方检查是否存在各种必要的软件和设置,并显示(需要在“终端”窗口中查看信息和状态),还需要其他什么命令或工具。获得或执行,我跟随那些。

步骤-C:
当“自制”及相关的安装步骤都完成后,再装为“OpenSSL”和使用“酿造”工具“绑定”,通过命令行终端:
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
Run Code Online (Sandbox Code Playgroud)

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

不幸的是,https://unbound.net/站点上的开发人员没有为Mac OS X提供独立的“未绑定” pkg或dmg安装程序文件。他们也没有(积极地)开发“ DNSSEC-Trigger”应用程序。在Snow Leopard中,我仅使用“ dnssec-trigger”捆绑包中的“ unbound”部分。在遵循邮件列表存档中显示的提示后,我能够禁用其“ dnssec-trigger”部分,并保持“ unbound”部分运行,这样,我无需安装任何Xcode命令行工具或自制软件。

我现在应该/该怎么办?这样,整个MacBook所有应用程序都可以对所有应用程序/客户端使用“未绑定”的dnssec解析器,其中“未绑定”的解析器将在127.0.0.1:53(ip.address:port)上侦听dnssec和dns查询。

atE*_*rik 5

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

因此,我在总体上回答是为了使新手更清楚,如果您不是新手,请跳过对您来说不必要的内容。

首先,请参阅第一个(最上面的)问题中OP(原始张贴者)已经提到的STEPs(又称STAGE)。

如果您不想安装“ Xcode”的大型安装程序,请参见下面的“ Steps-E-03”。

步骤E:
步骤E-01:在Mac OS中,我自己的帐户是“ Erik-user”,这是“标准”用户帐户,我通常将其用于一般用途。
但是“ Erik”是用于管理目的的帐户,它是“ Admin”类型的特权用户帐户。我正在使用“ Erik”帐户。

步骤-E-02:为了使节目荷兰国际集团隐藏文件查找文件浏览器,在终端下面的命令里面使用:
defaults write com.apple.Finder AppleShowAllFiles TRUE
defaults write com.apple.finder AppleShowAllFiles TRUE
然后注销和登录回MacOS的用户帐户,或重新启动MacOS的。现在,“查找器”应该在[|中显示所有文件和文件夹。| ]列模式。

如果您已经安装了“ Xcode”和自制软件,则跳过“ Steps-E-03”和“ Steps-E”的其余部分。然后转到“ Steps-F”并遵循。

步骤E-03:
如果要避免安装非常大的GIGABYTES Xcode安装程序(大约4至6 GB),请在终端机中运行此命令:
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
步骤E-04:安装自制软件,在终端中运行:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
请参见http s:// brew.sh/网站,显示实际和当前的“红宝石”命令,如上所示。
然后在终端,运行这些命令:
 • brew help
 • brew update
 • brew install unbound openssl
步骤-E-05:
 • 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

如果遵循“步骤E-03”到“ ... E-05”,则跳过“步骤F”,然后从“步骤G”开始执行。

步骤-F:
在“ homebrew.mxcl unbound.plist ”文件(该文件启动“绑定” DNS服务器)特别需要有正确的所有权,使Mac OS X系统本身就可以启动或重新启动时启动,所以执行这个终端中的命令:
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.unbound.plist
注意:更新/升级自制应用程序后,如果“未绑定”的解析器在重新启动/重新启动后无法启动,我们可能需要再次执行此命令。

STEPs-G:
下载“ Lingon ”(从http:// sourceforge .net / projects / lingon /网站)。安装它。启动Lingon。

步骤H:
在Lingon内,在用户权限下找到“ homebrew.mxcl.unbound ”。
在“什么”文本框中,它应显示如下:
/usr/local/opt/unbound/sbin/unbound -d -c /usr/local/etc/unbound/unbound.conf
选择并复制最后一部分“ /usr/local/etc/unbound/unbound.conf”。

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

步骤-J:
unbound.conf文件具有的配置信息及配置命令的例子很多页。
请参见以下代码,在unbound.conf文件底部或适当的部分中,在配置命令下面添加以下代码行。只要确保不要在这些命令行之前放置任何#符号即可。如果在开始处放置“#”符号,则它将禁用该配置命令行,并将其变成简单的“注释”行。

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"
Run Code Online (Sandbox Code Playgroud)

注意:我跳过了DLV DNSSEC的显示说明,因此在“ dlv-anchor-file”行之前添加了(如上所示)#符号,以将其禁用。而且,“ module-config”行之一也被禁用,因为我现在不希望进行与DNS64相关的解析。

步骤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 = - [R EAD,2 = 瓦特仪式,1 = E X ecute。3位数字是3种所有权类型的所有者:所有者-其他。
通过使用Finder的GUI界面,您还可以设置文件的权限和所有权,而不是在终端中使用命令行:在Finder中选择一个文件,同时按Cmd + i按钮,进入“共享和权限”部分的下方, “名称”列显示拥有所有权的用户/组的列表,“权限”列显示不同所有权的文件的读/写权限级别。更改为此处显示的推荐选项和偏好级别。
除了非常可靠的人和只有这台计算机的核心(操作系统)系统组件外,其他任何人(也没有其他实体)都不能(编辑和更改或)写入某些敏感文件和文件夹中,这就是为什么我们需要在文件和文件夹上设置“权限级别”。“ 644”(在“ chmod”命令行中使用)中的“ 6”表示当前用户(即“我”)的权限级别,当前用户(“我”)具有(“ 6”可以是分为4 + 2)读写级别权限。“ 644”中的中间“ 4”是对用户类型或用户组的权限,并且该用户组/类型具有(“ 4”)个读取级别权限。然后是“ 644”中最右边的“ 4”

步骤-L:通过使用以下命令,在终端中
检查“ unbound.conf”文件配置是否存在任何错误:
sudo /usr/local/opt/unbound/sbin/unbound-checkconf "/usr/local/etc/unbound/unbound.conf"

步骤M:
获取root.key(根锚)并验证:

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

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

如果您没有(初始或工作中的)“ root.key”文件,但已从IANA / ICANN授权网站安全地获得了“ icannbundle.pem”文件,并且希望“未绑定-锚”工具来非常安全地创建它(完整的root.key)。

如果没有(初始或工作中的)“ root.key”文件,但可以访问另一台“安全”或“安全”计算机,则可以从授权机构安全地获取文件,请按照OPTION-4中显示的说明进行操作网站,或者您可以从其中复制适用于MacOSX计算机的“ root.key”文件。

获取root.key并进行验证,选项1
普通用户可能希望通过HTTPS(加密的和非认证的)查看或获取(或手动创建)正确的“ 初始 ”“ root.key”(又名初始root-trust-anchor)从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初始信任锚(initial root.key)如下所示。

. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
Run Code Online (Sandbox Code Playgroud)

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

上面“ DS ”代码行中显示的代码(也必须出现在INITIAL“ root.key”文件中),被称为“ 初始锚点 ”。未绑定的服务器守护程序或“ unbound-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 ”文件,则该工具(unbound-anchor)还可以更安全地获取并创建有效的“ root.key” 。
因此1st从IANA授权网站http s:// www 安全地获得icannbundle.pem文件。iana.org / dnssec / files(并确保您的Web浏览器url-bar显示LOCK-图标和绿色dnssec KEY-icon),然后将pem文件放置/下载到以下目录位置:/usr/local/etc/unbound
然后设置文件所有权:sudo chown root /usr/local/etc/unbound/icannbundle.pem
并设置权限:sudo chmod 644 /usr/local/etc/unbound/icannbundle.pem
然后通过在终端中使用以下命令非常安全地获取并创建一个有效的root.key:
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
注意:用户/访问者假定使用已经预先设置的安全计算机和Web浏览器软件来“安全地” 获取/下载这些文件(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-icon)。
如果在该“安全”和“安全”计算机中使用了“未绑定” DNS服务器/解析器,则当您要避免进入授权网站时,可以其中的“ root.key”文件复制到您的MacOSX计算机中&希望避免检查得太彻底,以及想要快速配置第二台/其他计算机时。
还要加载这些firefox扩展/附件,然后在firefox的底部启用“附加栏”(类似于状态栏),以查看有关Web服务器位置和反向DNS地址的更多信息,以及有关服务器的TLS / SSL证书的更多信息:
CipherFox,Cert Viewer Plus,Calomel SSL验证,HTTPS-Everywhere,WorldIP,经典主题还原器等。

解除绑定“ ROOT.KEY”相关步骤的结束。

步骤-N:
在你的Mac OS X的计算机,转到“ 系统偏好设置 ”> 网络 >选择每个“无线网络连接”,每个“以太网”的网络接口卡/适配器,这是/是在你的苹果MacBook电脑>转到/与互联网连接单击“高级”>“转到“ DNS”选项卡>(在文件中记下哪个适配器具有一组DNS服务器,然后逐个适配器),删除那里列出的DNS服务器,并确保,仅列出/指定了一个DNS服务器127.0.0.1

上面的步骤将在/etc/resolv.conf文件内创建并添加“ nameserver 127.0.0.1”代码。

步骤-O :(步骤-o)
如果您使用的是10.10.3或更早版本,请保持完全禁用mDNS(mDNSResponder)。通过使用“Lingon”的应用程序,寻找的mDNS(“com.apple。mDNSResponder ”),检查里面Lingon,特别是在系统守护进程的所有4个部分,点击文本‘显示’旁边的每个部分,以查看完整列表。
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,找到“com.apple.networking。discoveryd下系统守护进程”。在Lingon中取消选中/取消选中“已启用”选项以暂时禁用它,输入管理用户密码,保存/确定。我们将其禁用,以便它可以完全忘记从网络适配器的DNS设置获得的以前的/旧的DNS服务器(从此阶段重新启动后,它将忘记)。
Discoveryd已从10.10.4中删除(通过Apple更新),因此,如果您使用的是10.10.4,则将其完全禁用(如果仍然存在)。

步骤-Q:
通过使用Lingon,找到“com.apple dnsextd ”下的系统守护进程。在Lingon中取消选中/取消选中“已启用”选项以禁用/停用它,输入管理用户密码,保存/确定。

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

重新启动/重新启动MacOSX。

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

步骤S-02:如果您使用的是10.10.4或更高版本,请在此阶段立即启用“ mDNS”。再次使用Lingon,找到“com.apple。mDNSResponder ”下的系统守护进程。选择/选中“已启用”选项,输入管理用户密码,保存/确定。

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

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

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

步骤-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
Run Code Online (Sandbox Code Playgroud)

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

步骤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:非“未绑定”的任何应用程序/软件只能使用运行或监听127.0.0.1端口53 / DNS的一个“未绑定” DNS服务器(使用TCP或UDP)连接。(因此,非绑定应用程序/软件的所有其他端口53流量都将被丢弃)。

步骤X和步骤Y,现在不存在。

步骤-Z:
注释/免责声明/参考资料:
我遵循了其他网站(并从中借来了说明和讨论评论)(此处复制并粘贴了说明和评论,并由我做了一些修改)。我在此段落/答案页面中在段落下显示的一些参考资料是首次提到相关内容的。因此,为了获得更多详细信息,请在ddg / yahoo / bing / google引擎中搜索带有从此处获取的字词的单词。
不同的计算机可能并且很可能具有不同的版本,配置和组件。因此,在您在自己的计算机上使用这些显示的任何说明之前,您必须研究和使用您自己受过最好的教育的知识和判断,后果自负。