如何禁用从互联网访问 DNS 服务器,同时保持内联网完好无损?使用 iptables

如何禁用从互联网访问 DNS 服务器,同时保持内联网完好无损?使用 iptables

我必须管理一台开启了 Open DNS 服务的服务器。最近,它被未知的互联网攻击者严重滥用,用于 ddos​​ dns 放大攻击。一些本地主机程序和内联网客户端以我不完全理解的方式使用此 DNS 服务,这就是为什么我害怕对 DNS 服务本身进行任何重新配置​​。但是我认为,如果我拒绝来自外部互联网的所有 DNS 请求,它可能会解决我的问题。

我的问题是:

1)如何使用 iptables 拒绝来自外部互联网的所有 DNS 请求,同时保持本地主机和内联网(IP:10.0.0.X 和 10.0.1.X)完好无损?

2)这不会损害内网DNS服务的可用性吗?

3)这不会损害服务器上其他互联网服务(web+mail+db)的可用性吗?

我们网站当前使用的所有域名均由另一家公司在其服务器上管理,据我所知,外部互联网上的任何人都不需要访问我们的 DNS 服务。

谢谢。

答案1

删除外部访问的最简单方法是阻止对 UDP(可能还有 TCP)端口 53 的所有外部访问,这将阻止它向外提供请求,但保持到端口 53 的传出流量开放,这样它就可以对您的内部服务器发出递归请求。

如果您要为互联网提供递归名称服务器,建议您充分了解服务器的安全性和配置。否则,请将其交给专业人士或托管服务。

答案2

您不需要 Netfilter/iptables。所有递归名称服务器软件都允许您仅响应本地网络。假设您的网络是 10.1.0.0/16,使用 Unbound:

access-control: 0.0.0.0/0 refuse
access-control: 10.1.0.0/16 allow

使用 BIND:

acl mynet {
    10.1.0.0/16;
};
allow-recursion   { mynet; };
allow-query-cache { mynet; };

相关内容