iptables 出站阻止拒绝入站

iptables 出站阻止拒绝入站

我试图仅阻止到特定 IP 地址的出站连接,但我想允许来自相同 IP 地址的入站连接。

根据我对阻止出站连接的理解,他们不应该如果入站连接已成功建立,则阻止。

我基本上设置了这样的规则:

--append OUTPUT --jump DROP --destination x.x.x.x

并允许已建立的连接:

--append INPUT --in-interface eth0 --match state --state RELATED,ESTABLISHED --jump ACCEPT

我希望当此 IP 地址尝试连接到服务器时允许连接,但是当我的服务器尝试建立出站连接时,它不应该能够建立连接。

我想阻止服务器的完全访问以进行出站连接x.x.x.x。然而,当来自该 IP 的用户希望访问服务器时,他们应该能够访问某些端口上的站点。

答案1

您尝试的防火墙规则即将完成。以下是允许来自主机的入站流量10.10.10.10同时阻止到该地址的出站流量所需的内容:

  1. 允许入站(可能是任何端口)
  2. 允许对已建立的入站连接进行出站回复
  3. 阻止剩余的出站流量

所以,

iptables -A INPUT --src 10.10.10.10 --jump ACCEPT

iptables -A OUTPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables -A OUTPUT --dst 10.10.10.10 --jump DROP

您实际上并不需要该INPUT规则,除非您有以后的规则达到DENY/REJECT或者您的策略是这样设置的。

答案2

你误会了!这是我的理解:

首先,看看你的input规则。它应该允许输入state,但是什么意思state呢?这意味着流量out之前已从您的服务器流向此地址!因此,如果您output完全阻止(针对该地址),则该规则将永远不会匹配。

这就是为什么你的全部努力是不可能的,state只能在input.

可能有一些 hacky 解决方案。但使用给定的选项这是不可能的。

聚苯乙烯

在你提出问题后,我再次检查了一个旧主题,你猜怎么着。再次阅读您的帖子后,它让我震惊,这正是您想要的。看着端口敲门

它为您的请求添加了一个组件,这使得它变得更好;随机性。

只需配置一个敲门方案,不仅允许output连接,而且input仅在正确knocking发生时才允许。

相关内容