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發生時才允許。

相關內容