我将非常感激有关如何计算每 1 Mbit 带宽可以发送多少个 SYN 数据包的精确计算/公式:
1.) 一个 SYN 数据包的大小(以字节为单位)是多少 = 20 字节? http://de.wikipedia.org/w/index.php?title=Datei:TCP_Header.svg&filetimestamp=20070706210301 前五行每行有 4 个字节 = 总共 20 个字节,这样对吗?此外,不需要有效载荷,仅包含标头的数据包有效,这样对吗?
2.) 将 1Mbit / 每 Syn 字节数相除以获得有效结果是否有效?(1000 000 /8/20 ==>每秒 6250 个 SYN?)
3.) 或者是否存在其他限制因素,会大幅减少每 1Mbit 的 SYN 数据包数量?(因此,实际上计算出的数字会低得多。)是什么限制了这个数字?
4.) 是否有任何“必须知道”的工具来保护我的服务器免受 Syn 攻击(linux/debian)。我已经在 iptables 中实现了一些基本功能,但不知道这是否真的有帮助……在“前端/网关”服务器上进行过滤会更好吗?哪些商业产品提供 SYN-Flood 过滤,如果您能说出一些具体的产品,我将不胜感激。
谢谢Jan
答案1
- 您的假设是正确的,因为 SYN 数据包不必携带任何有效负载,严格来说甚至不必有任何选项,因此只有 TCP 报头。但是数据包大小不会达到 20 字节,因为 TCP 将嵌入 IP 数据包中,至少增加 20 个报头字节。任何现实世界的 SYN 都会进一步具有 MSS、时间戳值和 ECR 值集的选项,因此每个数据包的典型大小约为 60 字节。如果感兴趣,您可以使用 tcpdump 查看流量:
tcpdump -v -n -p tcp and 'tcp[13] & 2 == 2'
- 不完全是 - 您必须考虑额外的协议开销(数据链路层的标头和校验和的大小 - 例如以太网通常会再添加 31 个字节)
- SYN cookie和TCP Cookie 事务已被证明是一种有效的机制来抵御 SYN 洪水攻击。实施SYN 速率限制如果您的客户端不支持 TCPCT 并且受到 SYN cookie 带来的限制,则只会创建另一个 DoS 攻击媒介,这是不可取的。