出站DNSstream量过大

我有一台VPS系统,在一台主机上已经有三年没有问题了。 最近,主机开始向31.193.132.138发送极端数量的出站DNSstream量。 由于Linode对此做出的回应,我最近离开了Linode并搬到了6sync。 除了postfix邮件configuration之外,服务器在6sync上完全重build。

目前,守护进程运行如下:

sshd nginx后缀dovecot

php5-fpm(仅限本地主机)spampd(仅限本地主机)clamsmtpd(仅限本地主机)

鉴于服务器是100%重build,我找不到任何严重的攻击对上述守护进程,密码已经改变,SSH密钥甚至不存在重build等,这似乎是极不可能的一个正在被用来拒绝地址的妥协。

提供的IP作为已知的垃圾邮件来源在线logging。 我最初的假设是,它试图使用我的后缀服务器作为中继,它提供的虚假地址是域名注册为他们的域名服务器。 我会想象给予我的后缀configuration,DNS查询的东西,如SPF信息的数量将等于或大于发送垃圾邮件的尝试数量。

Linode和6Sync都表示,出站stream量是非常不成比例的。 以下是我从Linode收到的有关出站stream量的所有信息:

21:28:28.647263 IP 97.107.134.33.32775 > 31.193.132.138.53: 28720 op8+% [b2&3=0x4134] [17267a] [30550q] [28773n] [14673au][|domain] 21:28:28.647264 IP 97.107.134.33 > 31.193.132.138: udp 21:28:28.647264 IP 97.107.134.33.32775 > 31.193.132.138.53: 28720 op8+% [b2&3=0x4134] [17267a] [30550q] [28773n] [14673au][|domain] 21:28:28.647265 IP 97.107.134.33 > 31.193.132.138: udp 21:28:28.647265 IP 97.107.134.33.32775 > 31.193.132.138.53: 28720 op8+% [b2&3=0x4134] [17267a] [30550q] [28773n] [14673au][|domain] 21:28:28.647266 IP 97.107.134.33 > 31.193.132.138: udp 

6sync无法确认最近出站stream量的峰值是在同一个IP还是通过DNS,但我推测是这样的。 现在我的服务器阻塞整个31.0.0.0/8子网,以帮助阻止这一点,而我知道了。

任何人有任何想法是怎么回事?

不是一个答案,只是一些随意的想法:

  • 当你在[虚拟]networking接口上运行tcpdump时,你能看到这个stream量吗? 如果是这样的话 – 你可以试着弄清楚是否有每天/每小时的模式? 你可以创buildiptables规则来计算stream量,然后允许munin插件收集统计信息。
  • 你可以尝试确定哪个应用程序产生这种stream量? 我在这里看到两个方法:
    • 残酷的方法是等到交通显示,并开始一个接一个地杀死应用程序。
    • 温和的方法 – 使用OUTPUT链上的iptables和所有者匹配 ,将端口53上的输出数据包logging到系统日志中。 类似于: iptables -I OUTPUT -p udp -dport 53 – 匹配所有者–uid-owner 33 -j LOG – 将日志前缀“uid 33”应用于所有使用的uid。 检查系统日志,看看哪个进程产生不需要的stream量。
  • 你有本地DNS服务器[例如绑定]运行? 如果是这样:
    • 还可以在回送中嗅探哪些应用可能会发送导致不需要的stream量的请求。
    • 外部服务器可以和你的DNS服务器通话吗? 如果是这样的话 – 也许是某种背向散射攻击,你的服务器收到来自欺骗地址的数据包,并回应轰炸受害者。
  • 你是110%确定你的PHP代码没有改变? 难道你的一些脚本中包含的恶意代码很less?

我还不知道stream量是什么,但我可以确认它符合DNSstream量。

12字节的头部有:

  • 一个2字节的ID字段(28720-0x7030)
  • 一个2字节的标志字段(0x4134)
  • 4 * 2字节logging计数[17267a] [30550q] [28773n] [14673au]

正常的recursion查询上的标志应该是0x0100。 4个计数应该是(1,0,0,0 +)。

尝试使用详细模式(-v)运行tcpdump来查看实际的DNS请求和回复。 它可能是一些IP隧道槽DNS。 就像pQd提出的那样,知道哪个软件正在生成stream量是一件好事。