尝试理解防 TCP SYN 洪水攻击的 IPTables 规则

尝试理解防 TCP SYN 洪水攻击的 IPTables 规则

我目前正在做大学作业。我正在学习防火墙,我需要在 Ubuntu 机器上配置 IPTables 以防止TCP SYN 洪水攻击

我理解这种类型的攻击包括向服务器发送大量 SYN 请求,然后在其 SYN-ACK 响应后不发送 ACK,导致服务器等待并因此浪费其资源。

在互联网上,我在多个网站上发现了这个 IPTables 规则:

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

我不明白这个条目如何阻止攻击。我将其解释为“丢弃任何没有 SYN 标志的新 TCP 连接”。我遗漏了什么吗?

答案1

该 iptables 规则不会阻止 SYN 洪水攻击。正如您所说,它将丢弃任何新的非 SYN TCP 数据包。它只会接受包含 SYN 数据包的新 TCP 连接。

为了防止使用 iptables 的 SYN 洪水攻击,您需要采用速率限制。

答案2

Synflood 和 winnuke 一样,是一种过时的技术。Linux 内核自带了保护措施(net.ipv4.tcp_syncookies),1999(!),所以你唯一的工作就是用 sysctl 启用它 - 但这在很长一段时间内都是默认的。

sysctl net.ipv4.tcp_syncookies=1 

相关内容