这些步骤适用于 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
安装 Homebrew。在终端运行:
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
Download Lingon 来自 SourceForge。安装它。启动 Lingon。
步骤 H
在 Lingon 中,在 USER DAEMONS 下找到 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)
在终端 shell 窗口中,输入并粘贴:
sudo nano /usr/local/etc/unbound/unbound.conf
或者,如果您安装了“Bluefish”(文本编辑器:http://sourceforge.net/projects/bluefish/) ,启动它并打开“unbound.conf”文件进行文本编辑。
步骤-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”行前添加了(如上所示)# 符号,以禁用它。并且“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 = read,2 = write,1 = execute。 3 位数字代表 3 种所有权类型:所有者-组-其他。
通过使用 Finder 的 GUI 界面,您还可以设置文件的权限和所有权,而不是在终端中使用命令行:在 Finder 中选择一个文件,同时按 Cmd+i 按钮,进入下面的“共享和权限”部分, “名称”列显示拥有所有权的用户/组列表,“权限”列显示不同所有权的文件的读/写权限级别。更改为此处显示的推荐选择和偏好级别。
除了非常可靠的人,而且只有这台计算机的核心(操作系统)系统组件,其他任何人(以及任何其他实体)都不应该有能力(编辑和更改或)写入某些敏感文件和文件夹,这就是为什么我们需要在文件和文件夹上设置“权限级别”。 “644”中的“6”(在“chmod”命令行中使用)表示当前用户(又名“Me”)的权限级别,当前用户(“Me”)拥有(“6”可以是分解为 4+2) 读+写级别权限。 “644”中间的“4”是用户类型或用户组的权限,该组/用户类型具有(“4”)读取级别权限。那么“644”中最右边的“4”是Everyone/Other/World用户的权限,他们拥有(“4”)读取级别权限。
步骤-L:
检查“unbound.conf”文件配置是否有任何错误,使用这个命令,在终端:
sudo /usr/local/opt/unbound/sbin/unbound-checkconf "/usr/local/etc/unbound/unbound.conf"
STEPs-M:
GETTING root.key(根锚点)和验证:
按照 OPTION-1 中显示的说明,如果您没有“未绑定”DNS 服务器/解析器的“root.key”文件,并且您想非常彻底地手动创建“初始”root.key 文件检查,如果您希望未绑定的 DNS 服务器守护程序使用有效的完整 root.key 代码和时间戳来更新初始 root.key。
如果您没有(初始或工作的)“root.key”文件,并且希望“unbound-anchor”工具为您快速创建它,请按照 OPTION-2 中的说明进行操作。
按照 OPTION-3 中的说明进行操作,如果您没有(初始或工作的)“root.key”文件,但您已从 IANA/ICANN 权威网站安全地获得“icannbundle.pem”文件,并且您想要“unbound-anchor”工具非常安全地创建它(完整的工作 root.key)。
如果您没有(初始或工作的)“root.key”文件,但您可以访问另一台“安全”或“安全”计算机,请按照 OPTION-4 中的说明进行操作,您可以在其中安全地获取来自权威网站的文件,或者您可以从中复制一个有效的“root.key”文件,用于您的 MacOSX 计算机。
获取 root.key 并验证,选项 1:
普通用户可能想要查看或获取(或手动创建)正确的“initial”“root.key”(又名初始root-trust-anchor) 通过来自 IANA 权威网站的 HTTPS(加密和非窃听和安全)连接:root-anchors.xml,或从 ICANN 获取初始锚点strong> 权威网站,然后普通用户必须比较+验证 xml文件的内容代码,与本地初始root.key文件。
单击上面的 xml URL 链接,然后检查 Web 浏览器的 url-bar 中显示的 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 文本编辑器应用程序)。并将现有的 XML 语法/格式更改/重新排列为以下“DS”代码行所示的格式。确保“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”代码行中显示的代码(也必须存在于初始“root.key”文件中)称为“初始锚点 ”。未绑定服务器守护程序或“未绑定锚”工具可以使用有效的完整 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 权威网站 https://www.iana.org/dnssec/files 安全地获取 icannbundle.pem 文件(并确保您的网络浏览器 url-栏显示 LOCK 图标和绿色 dnssec KEY 图标),并将 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
有关更多详细信息,请转到:https://unbound.net/documentation/howto_anchor.html 并查看 https:// 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 服务器/解析器,那么当您想要避免进入权威网站并想要避免非常彻底地检查,以及当您想要快速配置第二台/其他计算机时。
还要加载这些 Firefox 扩展/插件,然后在 Firefox 底部启用“附加栏”(类似于状态栏),以查看有关 Web 服务器位置和反向 DNS 地址的更多信息,以及有关服务器的 TLS/SSL 证书的更多信息:
CipherFox、Cert Viewer Plus、Calomel SSL Validation、HTTPS-Everywhere、WorldIP、Classic Theme Restorer 等。
获取未绑定的“ROOT.KEY”相关步骤结束。
步骤-N:
在您的 Mac OS X 计算机上,转到“System Preferences” > Network > 选择已连接的每个“WiFi”和每个“Ethernet”网络接口卡/适配器在您的 Apple 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 个部分,特别是在 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 服务器。
步骤-P:
如果您使用的是 10.10.3 或更早版本,则仅针对这些步骤暂时禁用它 -p。通过使用 Lingon,在 SYSTEM DAEMONS 下找到“com.apple.networking.discoveryd”。取消选中/取消选择 Lingon 中的“启用”选项以暂时禁用它,输入管理用户通行证,保存/确定。我们正在禁用它,以便它可以完全忘记从网络适配器的 DNS 设置中获取的以前/旧的 DNS 服务器(从这个阶段重新启动后它会忘记)。
Discoveryd 已从 10.10.4 中删除(通过 Apple 更新),因此如果您使用的是 10.10.4,请完全禁用它(如果仍然存在)。
步骤-Q:
通过使用 Lingon,在 SYSTEM DAEMONS 下找到“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”。选择/勾选“启用”选项,输入管理用户密码,保存/确定。
Discoveryd 已从 10.10.4 中删除(通过 Apple 更新),因此如果您使用的是 10.10.4,则仍然禁用“discoveryd”(如果仍然存在)。
Steps-S-02:如果您使用的是 10.10.4 或更高版本,请在此阶段重新启用“mDNS”。再次使用 Lingon,在 SYSTEM DAEMONS 下找到“com.apple.mDNSResponder”。选择/勾选“启用”选项,输入管理用户密码,保存/确定。
Steps-S-03:在 10.10.3 及更早版本的 Mac OS X 或 DNS 中,当(如上所示)“discoveryd”守护程序(又名 Discovery Daemon)允许和提供服务时,许多应用程序使用系统/默认 DNS 解析在 10.10.4 或更高版本的 Mac OS X 中,mDNS 守护程序允许解析服务。此守护程序中的任何一个现在都应该能够学习并允许其他应用程序使用在 127.0.0.1 端口 53 上运行的新 DNSSEC DNS 服务器服务,在网络适配器的 DNS 设置中指定,(在此阶段重新启动后)。
步骤-T:
在终端中,运行:
dig @127.0.0.1 in TLSA _443._tcp.www.isc.org. +dnssec
并打开“App Store”,看看它是否可以拉取主页内容/项目。
再次重新启动/重新启动一次。
步骤-U:
现在在终端中,在“dig”命令下方运行,并检查查询结果是否在 flag 中显示“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”标志仍然显示,如果挖掘结果仍然显示它有默认情况下使用 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,这是我们在网络适配器配置中指定的。
步骤-W:
基于防火墙的限制和帮助:
通过使用应用感知防火墙 + 网络端口/包控制防火墙,如果我们设置如下所示的防火墙规则,那么整个系统可以强制使用,只有一个完整的 dnssec DNS Server/Resolver 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,现在不存在。
步骤-Z:
注意/免责声明/参考:
我已遵循(并从其他网站借用说明和讨论 cmets),(并在此处复制粘贴的说明和 cmets,并由我进行了轻微修改)。我在这篇文章/答案页面中首次提到相关内容时在段落下显示了一些参考资料。因此,为了更详细的了解,请在 ddg/yahoo/bing/google 引擎中搜索来自此处的术语/单词。
不同的计算机可能也很可能有不同的版本、配置和组件。因此,您必须先研究并使用您自己受过最好教育的知识和判断,然后再在您自己的计算机上使用任何这些显示的说明,风险自负。