手头上的问题

手头上的问题

我正在尝试使用以下方法简单地阻止 DDoS 攻击:

iptables -A INPUT -p udp --dport 27015 -m limit --limit 10/s --limit-burst 20 -j DROP

但得到:

iptables:没有该名称的链/目标/匹配。

有什么帮助吗?信息?

Debian 9

答案1

手头上的问题

您似乎没有加载正确的内核模块来使用 iptables,或者您发出的 iptables 命令对于 iptables 来说太模糊而无法解释。

我找到了一些来源(链接1 链接2)该参考更具体地说明了规则将应用于哪个表,以清理标志的顺序以解决此问题。

我还找到了一些来源(链接3 链接4)这表明您可能缺少内核模块。

1. iptables 命令中缺少标志

根据其他人遇到的问题链接1链接2,该问题可能是由于您的命令过于模糊而无法正确解释。添加一个-t nat选项可能会有所帮助。

iptables -t nat -A INPUT -p udp --dport 27015 -m limit --limit 10/s --limit-burst 20 -j DROP 

保存规则并重新启动,或者直接重新启动 iptables 服务。那应该可以解决问题。链接2POSTROUTING更多地处理和之间的差异PREROUTING。我会确保您知道您更喜欢使用哪一种,并且可能会遵循他们建议的修复方法之一。

2. 缺少内核选项

如果第一个选项不起作用,那么您可能缺少正确的内核模块。根据链接3链接4,您可能需要初始化缺少的功能。

使用lsmod,您可以列出所有已安装的模块。您缺少的模块可能与 xt_multiport 和 xt_comment 有关。继gentoo 论坛帖子,可能还需要启用一组附加的内核模块。使用时modprobe您可以尝试启用netfilterip_tablesip_conntrack等。

我将包含两个链接Arch Linux 维基和一个Docmint 文章关于如何启用内核模块。这个链接解释了modprobe使用 .net 为CentOS设置 iptables 的正确方法

/etc/sysconfig/modules/*.modules或者/etc/rc.modules

 echo "modprobe ip_conntrack" >> /path/to/modules/iptables.modules
 chmod +x /path/to/modules/iptables.modules

在运行任何这些命令之前,请使用lsmod太查看您已启用的内容并验证您缺少的内容。从长远来看,首先确保您的内核是最新的可能会更安全,然后是Debian提供的支持的内核

结论

请确保您的 iptables 命令格式正确。只要您的格式正确,就有很多资源可以满足您的需求。我还附上了一个链接GitHub 上的 Docker 问题以防万一您实际上使用基于 Debian 的 Docker 镜像。

如果您对此答案有任何疑问或疑问,请发表评论。我强烈建议您在尝试命令之前仔细阅读我提供的每个链接。我感谢您提供反馈来纠正任何误解并改进我的帖子。我可以根据需要更新我的答案。

祝你好运!

相关内容