AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 532005
Accepted
Asad Moeen
Asad Moeen
Asked: 2013-08-20 05:27:25 +0800 CST2013-08-20 05:27:25 +0800 CST 2013-08-20 05:27:25 +0800 CST

Ddos 攻击通过 iptables [重复]

  • 772
这个问题在这里已经有了答案:
我在 DDoS 下。我能做些什么? (5 个回答)
9 年前关闭。

我一直在使用自己制作的“iptables 规则”来阻止对游戏服务器的所有主要类型的 DDOS 攻击,因为这些攻击是特定于应用程序/游戏服务器的,而不是一般的 DDOS 攻击。我花了将近 3 年的时间来研究这些攻击并用这些规则做出回应。到目前为止,我在 iptables 上使用了速率限制,如果它达到 250 次/秒,它将自动 DROP IP,因为客户端速率远低于此(最大值为 500kb/s)。这是因为攻击者通常会使用长度为 15:30 的数据包发送大量命中计数,因为这是游戏服务器响应良好的一般数据包长度。这非常有效,直到今天有人用不同的东西攻击以通过这条规则。

-A INPUT -p udp -m udp --dport 16000:29000 -m recent --set 
-A INPUT -p udp -m udp --dport 16000:29000 -m recent --update --seconds 1 --hitcount 250 -j DROP 

最近,我观察到攻击很容易产生 1-3mb/sec 的输入,正如通过“iftop”到我的服务器所看到的那样,上述规则并没有阻止它们,因为我的游戏服务器正在响应“..disconnect”数据包到所有传入连接。当游戏服务器无法识别数据包的输入字符串或长度时,就会发生这种情况。这是数据包的内容:

http://paste.ubuntu.com/6000381/

现在您可能会看到数据包的长度很大。根据我抓取数据包的 Wireshark,数据包的长度为 700,数据大小/长度约为 5000 字节。我之前已经看到过,如果数据包的数据长度/大小更高,即使 hitcounts 更少,你仍然可以获得更高的速率。因此,这也许可以解释为什么它的输入约为 3mb/s 并且没有通过命中数被阻止,因为它的命中数从未超过 250..

现在我需要比每秒数据包数更多的带宽特定的东西。我需要一个 iptables 规则,它会自动阻止输入>1mb/s,如果需要,它可以使用数据包的长度。公平游戏服务器客户端的一般数据大小/长度通常具有小于 500 字节的数据包长度和数据大小,但在某些情况下可能会更高,但不会占用超过 500kb/s 的带宽。

这个问题与之前回答的其他问题不同,因为它首先是特定于应用程序的。其次,我问的是一个 iptables 解决方案,它会拒绝任何输入 >1mb/s?

更新:

我做了一些理论上的工作来解释为什么 3 Mb/s 的输入带宽不超过 250 次/秒,这里是工作:

3 Mb = 3x1024x1024 = 3,145,728 位/秒 = 393,216 字节/秒

因此,

如果一个数据包的大小为 5000 字节,那么每秒的最大数据包数应该是:

393216/5000 = 78.6 包/秒

这意味着如果 iptables 规则必须起作用,数据包应该小于 393216/250 = 1516 bytes。

iptables
  • 1 1 个回答
  • 1257 Views

1 个回答

  • Voted
  1. Best Answer
    MikeyB
    2013-08-20T05:47:08+08:002013-08-20T05:47:08+08:00

    你看过fail2ban吗?它可以通过在防火墙中删除源 IP 来帮助您对传入的攻击做出反应。

    • 0

相关问题

  • OpenVPN 的 Linux IP 转发 - 正确的防火墙设置?

  • iptables 单个规则中的多个源 IP

  • 存储 iptables 规则的规范方法是什么

  • 使用 iptables 和 dhcpd 进行端口转发

  • 根据 Apache 日志数据自动修改 iptables 以阻止行为不良的客户端

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve