Ubuntu 上有状态数据包检测吗?

Ubuntu 上有状态数据包检测吗?

默认情况下,Ubuntu 没有开放端口(例外:Avahi 和 dhcp)。

假设我的系统通过直接方式连接到互联网(未使用硬件防火墙):如果我要将 UDP 数据包发送到例如 124.32.12.3:53。为了能够得到答案,程序必须说“如果在 30 秒内(超时)有来自 124.32.12.3(源端口为 53)的 UDP 数据包到来,则欢迎它。我将丢弃所有其他数据包。”

有人能告诉我 Ubuntu 上哪个程序/模块默认处理这个问题吗?

非常感谢!

答案1

iptables(或 ufw,它只是 iptables 的一个前端)会执行您想要的操作。UDP 数据包的默认响应超时为 30 秒(或非常接近)。因此,您只需允许与答案相关的数据包返回并丢弃其余数据包(以下假设您的外部 IF 是 eth0):

sudo iptables -A INPUT -i eth0 -d your_external_IP_address -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i eth0 -d your_external_IP_address -j DROP

请注意,这不是全部答案。如果要使用 iptables,则必须考虑您的总体要求并相应地处理可能的其他使用要求。

类似的最小用例您可以参考一下前几天的报道。

相关内容