![DNS 黑名单如何运作](https://linux22.com/image/1512519/DNS%20%E9%BB%91%E5%90%8D%E5%8D%95%E5%A6%82%E4%BD%95%E8%BF%90%E4%BD%9C.png)
我在网上读了一些资料,但还是很困惑。假设网络设置如下所示:
PC > 防火墙 > DNS 服务器
我的印象是,电脑会尝试访问 DNS 服务器,但防火墙会立即阻止该请求,因为它注意到请求的域名在其黑名单中。
然而,在线阅读时,似乎对 DNS 服务器的初始请求实际上是被允许的,但是当 DNS 服务器返回域的 IP 地址时,该请求被阻止并且无法访问 PC。
为什么要这样做?或者我最初是对的,但后来完全误解了某事?
答案1
DNS 黑名单可以适用于多种不同类型的情况,每种实现方式都不同,具体取决于具体类型。DNS 黑名单的某些类型包括阻止客户端计算机通过 PC 上的本地 hosts 文件、现场或异地 DNS 服务器/转发器/缓存中的任意或全部来正确解析某些名称。然后还有针对电子邮件服务器等的反向 DNS 黑名单,用于阻止恶意电子邮件服务器向其发送电子邮件。
客户端的 DNS 黑名单
您的图表符合通过使用异地 DNS 服务器/转发器阻止客户端访问主机的概念,例如http://www.opendns.com
您应该注意,防火墙与实际过滤无关。不过,大多数家庭通常只有一个设备,用作调制解调器/防火墙/路由器/Wifi/DHCP 服务器/DNS 转发器(以下称为“家庭路由器”),并且它通常会告诉其客户端使用自己作为 DNS 服务器。这意味着配置该设备以使用 DNS 服务器/转发器,例如开放DNS描述,将“保护”该设备的所有客户端。这种情况的发生方式是,客户端向家庭路由器发出 DNS 请求,然后家庭路由器将请求转发到 opendns 服务器,然后该服务器根据其黑名单检查名称,如果匹配,则返回错误的 IP 地址。
虽然我没有检查 OpenDNS 具体返回什么,但通常这种服务会返回 DNS 服务的一个 Web 服务器的 IP 地址。因此,如果使用其服务的人试图访问其列表中的网页,客户端将会看到 DNS 服务网站,解释刚刚发生的事情。
当然,您可以使用自己的现场 DNS 服务器来执行此操作,或者甚至仅通过您的本地计算机通过您的 hosts 文件来执行此操作,让其返回地址 127.0.0.1,这样任何对不良名称的 Web 请求都会尝试读取您自己的计算机以查看它是否正在提供网页,而通常情况并非如此,因此您会收到错误而不是不良网站。
这种黑名单还适用于网页浏览以外的不同类型的流量,例如聊天程序、游戏等。
将接收邮件的电子邮件服务器的 DNS 列入黑名单
这比较棘手,由接收电子邮件的电子邮件服务器处理。接收电子邮件是一件棘手的事情,人们使用许多方法来尝试区分垃圾邮件和正常邮件。其中两种检查是
- 发送服务器声明自己的名字,例如 smtp.example-company.com,接收方随后使用自己的 DNS 服务器进行检查,以确认该名称的公共 DNS 记录是否与连接到它的 IP 地址匹配。
- 接收服务器还会对连接到它的 IP 地址进行反向 DNS 查找,并可能返回类似 client42.adsl.example-isp.com 的内容,然后它将对名称 client42.adsl.example-isp.com 进行 DNS 查找,并检查它返回的 IP 是否与与其建立连接的 IP 相匹配。
如果上述任何名称与黑名单中的条目匹配,则 DNS 黑名单检查部分开始起作用,然后电子邮件服务器可以将传入的电子邮件视为垃圾邮件或拒绝该电子邮件,或者只是关闭连接。
电子邮件服务器还使用许多其他检查(例如 SPF、DKIM 等)来识别什么是垃圾邮件。