Amplified reflected attack这个术语对我来说是新的,我对此有几个疑问。
我听说它主要发生在DNS服务器上 – 这是真的吗?
你如何防范呢?
你怎么知道你的服务器是否可以用于这样的攻击 – 这是一个configuration问题?
首先,这种攻击不是(主要)针对DNS本身,正如你的标题所暗示的那样。 它当然会在DNS服务器上创build一些额外的负载,但主要目的是对其他人进行DDoS攻击。 糟糕的服务器configuration可能会使情况变得更糟,但最终这个问题在DNS和UDP的devise中是固有的,实际上是任何无状态的通信协议。
它基本上是这样工作的:攻击者将普通(DNS)查询发送到(DNS)服务器。 这些查询被伪造成好像是源自目标系统。 DNS服务器现在回答查询,将答案发送回其所谓的起源 – 受害者。 这就是为什么它被称为reflection攻击。
这是可能的,因为您可以validation无状态通信的来源(就像UDP上的DNS)一样好,因为您可以信任明信片上的发件人地址。 服务器无法确定查询是合法的还是属于这种攻击的一部分。 DNS只是这里最stream行的协议,因为它有很多很多的服务器,你不需要太多的技术知识或特殊设备来(错误地)使用它。
为了让事情变得更糟(并且所有攻击都是有效的),请看放大部分。 如果攻击者的通信量与所产生的通信量相等,那么这并没有太大的危害。 攻击者的唯一好处是他的地址隐藏在DNS服务器后面。 他可以直接伪造发件人地址,完全不需要通过DNS重新路由。 但DNS的答案,这是为什么DNS在这里如此受欢迎的另一点,可以比问题大得多。 您可以根据所使用的确切查询find不同的数字,但如果服务器足够友好,可以为您执行recursion查询 ,则可以达到1:60 。 所以攻击者在他的控制下不需要很多机器来产生大量的恶意stream量。
由于您可以在公共互联网上轻松find数以百计的“开放式”DNS服务器,因此如果每个开放的DNS服务器能够将他的查询放大到目标的六十倍,攻击者就可以做到这一点。 正如我刚开始所说的那样,没有什么好的办法来对付这个问题。 很自然,许多DNS服务器都是开放的,而不应该是由于configuration错误。 但是有那么多开放的服务器必须开放,因为这正是他们的目的。
虽然你不知道请求是否是攻击的一部分,但你唯一的select是不再运行服务器。 你可以调整限速和其他玩具,但你不能完全摆脱这一点。 如果您提供DNS以获得乐趣,则可以将请求的源IP列入黑名单。 但是,如果你的规模较大,这将更多地损害受害者。 请记住,您只能在DNS服务器上看到受害者的地址。 想象一下你的公司受到你提供商的DNS的攻击,你的提供商决定为你的公司减lessDNS服务。 攻击者可以将其作为拒绝服务的bazillion奖励分数。
无论如何,这些攻击发生在白天和黑夜,它们被认为是互联网的“背景噪音”。 如果您设置了一个公共(recursion)的DNS服务器,那么在您参与随机攻击之前不会很长时间。 当大型基础设施(如dns根服务器)被误用来放大时,有时候情况会变得非常糟糕,但是在这种情况下,人们会采取主动的对策,直到攻击降到“正常”的水平。
到目前为止的教学。 最后回答你的问题:
你知道你的服务器是脆弱的,如果它无限制地回答查询。 期。 如果您正在提供recursion查询,您的服务器可以为攻击者生成提及的1:60比率。 如果它只服务于非recursion,它不是那么糟糕,但仍然…
所以…
allow-recursion和allow-query指令 allow-recursion设置为“none”。 。
iptables -A INPUT -p udp --dport 53 --set --name dnslimit iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP
现在,考虑到这些要点,你应该好好去。 现在,您的服务器上可能仍然存在恶意stream量,但数量并不会让您晚安睡觉。