我有一台服务器,用于托管我的公司网站以及一些客户。我注意到我创建但从未使用过的一个域名正受到黑客的攻击。我猜想黑客是通过攻击我的 DNS 服务器并请求托管哪些域名来收集该域名的。
因此,为了预防和更好地管理服务器,我该如何询问我自己的 DNS 服务器(Linux CentOS 4)其上托管了哪些网站?
另外,有没有办法通过隐藏这些信息来防止这些类型的攻击?我认为 DNS 服务器需要公开一些信息,但我不确定大多数主机是否会采取某种措施来帮助防止这些浪费带宽的戳刺和希望攻击。
提前致谢。
更新 在进一步审查时,我意识到了一件事,我发现在这个特定案例中,攻击不是由 DNS 查询(无论它叫什么)引起的,而是由专用 IP 引起的。我关注的帐户托管了一个主要网站的数据库,但没有其他内容。我最初为该帐户提供了一个专用 IP,显然这允许 IP 漫游者进行攻击和希望。
但实际的问题(现在更加明确了)仍然存在,某人(没有服务器访问权限的人)如何收集您的 DNS 服务器所代表的站点?
答案1
由于这是您自己的服务器,您可以查看配置文件并查看您托管的域:
名称服务器程序应该是 Bind,它的配置文件通常是:
/etc/named.conf
该文件,named.conf 将包含您托管的每个域的几行内容。查找类似以下内容的内容:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
至于通过隐藏信息来防止攻击,那可能行不通。如果黑客能找到你的域名,他就能找到你名称服务器的 IP 地址 - 毕竟这就是 DNS 的真正意义所在。
如果您删除(或注释掉)named.conf 中未使用的域的区域条目,则可以部分阻止这些攻击。
答案2
我想象黑客通过攻击我的 DNS 服务器并请求托管哪些域名来收集域名。
为什么你会想到这个?我的意思是,我认为攻击者首先从注册中心 whois 数据库中发布的官方 DNS 列表中获取 DNS,询问“好的,谁拥有该域名”和“为其注册了哪些 DNS 服务器”。
答案3
许多人关注背景信息,并对其进行分解,而不是尝试回答实际问题。我一直在积极寻找答案,而不是坐下来等待并得出部分答案。
但实际的问题(现在更加明确了)仍然存在,某人(没有服务器访问权限的人)如何收集您的 DNS 服务器所代表的站点?
部分答案:如果 BIND 配置 (etc/named.conf) 将“allow-transfers”设置为“any”,则外部来源有可能获得区域 (域) 的完整列表。如何执行此操作仍不得而知。
此外,有没有办法通过隐藏这些信息来防止此类攻击?
是的,通过确保只有受信任的组才能访问“allow-transfers”。在named.conf中,使用acl块(访问控制列表/访问控制语句)来定义应授予哪些IP地址访问权限,以阻止未经授权的访问。要设置acl:
acl <acl-group-name> {
<ip-address>;
[<ip-address-2>; ...]
};
用诸如受信任之类的名称替换,并列出以冒号结尾并以行结尾分隔的 IP 或 IP 范围(CIDR 块格式 [/20])。通常,受信任列表将包含环回 IP(127.0.0.1)、resolv.conf 中分配的 IP 地址以及分配给服务器的任何专用 IP 地址。
创建 acl 后,您可以将其应用于您选择的任何选项。例如,它将是“allow-transfers”:
options {
allow-transfers { <acl-group-name>; };
...
}
如果您想要阻止特定 IP 地址访问您的 DNS 服务器,您可以添加一个新的 acl 块并在 named.conf 中的选项块顶部添加“blackhole”:
options {
blackhole { <acl-blackhole-name>; };
...
}
这是部分答案,但最重要的部分是确保有人无法查询名称服务器并检索区域(域)的完整列表。我仍然想知道如何执行 DNS 区域传输。