设置新的 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 目标模块的平均值。