![iptables 允许来自一个 ip 的所有内容](https://linux22.com/image/799456/iptables%20%E5%85%81%E8%AE%B8%E6%9D%A5%E8%87%AA%E4%B8%80%E4%B8%AA%20ip%20%E7%9A%84%E6%89%80%E6%9C%89%E5%86%85%E5%AE%B9.png)
这是我所拥有的。
双宿主 FreePBX 盒。一切运行良好。eth0 是外部的。eth1 是内部的。SIP 提供商位于 216.234.xx
我正在尝试配置 iptables 以允许来自 eth1 和 lo 的所有内容。但只允许来自 216.234.xx 的流量
以下是我添加的当前 iptables 规则。
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -s 216.234.x.x/32 -j ACCEPT
-A OUTPUT -j ACCEPT
我一按下回车键...
iptables -A INPUT -i eth0 - j DROP
入站音频停止工作。
然后当我删除该规则时它又恢复了。我不知所措。
谢谢,
答案1
听起来在 DROP 之前添加 LOG 规则是个不错的选择,看看您是否能够发现一些必要的流量被意外丢弃。
答案2
您所需要的是状态防火墙 - 只允许数据包在一个方向传输显然是没用的。
幸运的是,conntrack 很智能,所以你不需要这么做。
确保第一条规则是-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
,并且不再担心 - SIP 助手有望捕获不同 IP 的问题。
您还可以最好阅读 iptables 手册页,了解 conntrack 匹配接受的确切参数,以便将来更好地使用它。
还要记住,连接助手的自动设置最终将被处理,因此,虽然您目前可以将 RELATED 应用于所有内容,但在不久的将来,内核可能会破坏它。