很多 DNS 请求来自中国,我应该担心吗?

很多 DNS 请求来自中国,我应该担心吗?

我已经打开了 dns 查询日志,当运行“tail -f /var/log/syslog”时,我发现我从单个 ip 地址收到了数百个相同的请求:

Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#10856: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#44334: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#15268: query: mydomain.de IN ANY +
Apr  7 12:36:13 server17 named[26294]: client 121.12.173.191#59597: query: mydomain.de IN ANY +

频率大约是每秒 5 - 10 个请求,持续约一分钟。之后,同样的效果会从不同的 IP 地址重复出现。现在,在短短几个小时内,我已经记录了来自大约 25 个 IP 地址的约 10000 个请求,根据“whois [ipaddr]”,它们全部来自中国。

这是怎么回事?我的域名服务器受到攻击了吗?我能做些什么吗?

答案1

这是怎么回事?我的域名服务器受到攻击了吗?我能做些什么吗?

这里发生了什么?

从混乱的日志条目中无法判断。以下只是一些可能性:

  • 你们的服务在中国很受欢迎。恭喜
  • 有人错误配置了使用你的 API 的脚本
  • 有人正在运行收集数十亿个域名的 DNS 信息的代码。你的域名就是其中之一
  • 垃圾邮件发送者正在冒充您的域名,并且邮件服务器正在检查 DNS 记录作为反垃圾邮件解决方案的一部分
  • 你正遭受攻击

我的名称服务器是否受到攻击?

每秒从少数 IP 发出 5-10 个 DNS 请求?值得怀疑。据我所知,大多数 DNS 攻击都使用特制的请求来干扰服务器的内部功能或压垮其资源。一般来说,如果您不得不询问,则表示您没有受到攻击。

我能做些什么吗?

当然,你可以在防火墙中阻止有问题的 IP,或者安装上述失败禁止工具。

但你应该这么做吗?

请记住,DNS 服务器的全部工作就是响应请求。打开查询日志并观察输出后,您会注意到这一点。您是否看到 CPU 使用率疯狂?网络 IO?其他已知合法的请求是否由于资源争用而得不到服务?

如果不是,你为什么要阻止它们?让协议按照设计的方式工作。如果你想要更干净的日志,请关闭查询日志,直到你需要诊断问题为止。

答案2

有人滥用你的 DNS 服务器来执行放大攻击121.12.173.191针对被攻击者伪造的IP地址。

由于 DNS 主要使用 UDP,这是一种无连接协议很容易伪造查询的源地址并将(更大的)响应发送回该伪造地址的真正所有者。

使用ANY查询来实现放大在 DNS 圈子中是众所周知的,但直到最近才被发现被黑客滥用。

它它有可能如果您监控入站数据包的 IP TTL,您会发现它们不一致 - 这表明即使欺骗的数据包看起来都来自同一个地方,它们也会通过许多不同的路径到达您。

您可能每秒只能看到 5-10 个数据包,但攻击者将使用许多其他主机来饱和目标地址。

答案3

尽管 Fail2ban 可以起作用(我出于多种目的推荐它),但如果您一遍又一遍地看到相同的 IP,并且没有任何变化,那么没有理由不将其完全放弃。

在防火墙上阻止它或者使用 IPTables。

iptables -A 输入 -s 121.12.173.191 -j 删除

这应该可以摆脱这些请求。

如果您发现其他来源访问您的服务器,那么您可以使用 IPTables 阻止来自非您网络的任何请求,或者使用 fail2ban 进行临时阻止。

Fail2ban 无论如何都会使用 IPTables 来阻止请求,因此永久添加它并不难。您还需要在您的发行版上查找如何使更改永久生效(通常是启动时的网络脚本)。如果您在防火墙后面,我强烈建议您先在那里阻止 IP。

不管你如何做,请确保记录下你所做的一切,这样你(或你的替代者)就不会在几个月后才弄清楚为什么这样做。

答案4

每秒 5-10 个请求并不是一个很大的数量,通常也不是攻击的征兆(除非他们发出了格式错误的查询,或者试图利用某些漏洞通过某些 BIND 漏洞获取系统访问权限...也许有人只是在玩脚本,或者在某些中文论坛上发布了一些使用您的 DNS 服务器作为参考的示例代码,或者只是一个机器人试图对某些域进行递归查询(您应该在日志记录部分检查 BIND conf 文件)http://www.zytrax.com/books/dns/ch7/logging.html只需检查他们正在执行什么类型的查询)鉴于请求量很少(我希望您的 DNS 基础设施可以承受这种情况!)您有两种可能性:

1 - 封锁所有中国 IP 地址(检查http://www.find-ip-address.org/ip-country/

2 - 使用 iptables 将每个 IP 每秒的连接数限制为 3 个

iptables -A INPUT -s ipaddress -p udp --dport 53 -m limit --limit 3/s -j ACCEPT
iptables -A INPUT -s ipaddress -p udp --dport 53 -j DROP

请注意,限制并发连接数(如果对任何 IP 地址应用此功能)可能会导致一些问题,因为合法客户端的合法查询将超时,从而降低使用您的 DNS 的任何客户端/服务器的浏览速度...

相关内容