【问题标题】:Wrapping one's head around port forwarding with iptables用 iptables 围绕端口转发
【发布时间】:2017-04-12 16:31:12
【问题描述】:

老实说,我了解正在发生的事情。就像我需要输入规则一样,使用特定的过滤器进行转发。但是我需要一个规则,二,三吗?为什么有些人做FORWARD,而其他人也做OUT,而有些人甚至INSYNESTABLISHEDRELATED 是否需要单独的规则? conntrack 是一个单独的包吗?为什么一个指南可以-t nat 而其他所有指南都不能?

这真的很痛苦,因为每个人都提供几乎可以复制和粘贴的指南,但没有足够解释他们实际提供的解决方案,或者如果读者的设置(哦,惊讶)不是 100% 相同,如何获得帮助。

我基本上想要实现的是:

  • 在 *:443 上接受所有人的连接
  • 将所有请求发送到 1.2.3.4:443(除了我之外没有人可以到达 1.2.3.4)
  • 使请求者也能够接收来自 1.2.3.4 的响应
  • 在 dmesg 中查看东西是否有效,但如果没有必要则不要更多

请解释你为什么做或不做某事。我真的很想掌握这些东西。谢谢!

【问题讨论】:

    标签: iptables portforwarding


    【解决方案1】:

    我在archwiki 中找到了最好的解释,即使进一步引用了更深入的描述和图表。我通过 archwiki 找到的一份真正深入的指南是 this iptables tutorial

    例如,here (Simple stateful firewall) 是一个详细示例,其中包含所有决策的解释。

    因为我是一个视觉学习者,所以我还发现 this youtube video 非常有用,它显示并解释了一个包含两个虚拟机的运行示例,几乎任何人都可以在家中重现。

    现在我觉得我处于一个我主要需要参考下图的水平,它显示了包如何遍历表和链:

    进一步阅读:

    旁注:

    • 我总是很困惑,为什么有些指南包含ESTABLISHED,RELATED 规则,而有些则没有。这些规则是否存在决定了现有的网络流量是否被切断。例如,如果您使用 ssh 会话连接到计算机,那么如果您的 ssh 会话不会通过添加 iptables 规则而被终止,那就太好了,因此有一个允许您的 ESTABLISHED 连接的规则很好。 RELATED 包用于响应 ping 或网络信息包 (ICMP) 的实例。
    • Simple stateful firewall example 还解释了不同 nmap 测试之间的差异。
    • 也不错overview

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 2016-03-28
      • 2015-03-26
      • 2013-06-27
      相关资源
      最近更新 更多