是否可以使用 iptables 截断数据包?

是否可以使用 iptables 截断数据包?

设置新的 Linux 服务器(专用或 VPS)时,我首先想到的是如何提高安全性。我想知道是否可以使用iptables截断icmp数据包。

如果您使用选项发送数据包,则ping -s -s代表数据包大小。

#>ping www.google.com -s 100
PING www.google.com (216.58.209.164) 100(128) bytes of data.
72 bytes from bud02s21-in-f164.1e100.net (216.58.209.164): icmp_seq=1 ttl=56 (truncated)
72 bytes from bud02s21-in-f164.1e100.net (216.58.209.164): icmp_seq=2 ttl=56 (truncated)

您可以看到我如何尝试发送 100 字节的数据包,以及 Google 如何优雅地将其截断为 72 字节。

可以使用 iptables 来做同样的事情吗?也许可以使用一些 iptables 模块...

答案1

根据我对内核 4.2.0 的研究,它可能不是最新的......https://www.kernel.org/finger_banner

没有像 xt-TRUNCATE.h 或 xt-CUT.h 这样的 iptables(netfilter)目标模块可以完成截断数据包的工作,理想情况下位于 mangle 表中的某个位置。

我花了一段时间来分析http://ipset.netfilter.org/iptables-extensions.man.html以确认这一点。

但是,创建这样一个模块的过程应该不会太难。它可能需要 200 行或更少的代码,因为这看起来像是所有 iptables 目标模块的平均值。

相关内容