如何只允許特定IP存取特定連接埠?

如何只允許特定IP存取特定連接埠?

我有一個安裝了資料庫的中央伺服器和多個調用該中央資料庫的分散式伺服器。出於安全原因,我希望中央伺服器只能由那些已知的伺服器存取。

所以我在這裡想要實現的是允許伺服器192.168.1.5和192.168.2.6存取連接埠5432。

iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT

它是否正確?

我不明白的是指定目的地的選項。 INPUT 上的目的地始終是伺服器本身,不是嗎?那麼為什麼它是可配置的呢?我是否必須定義它,或者忽略它,它會自動指向同一台伺服器?

答案1

首先,您需要將規則分為兩個規則(我嘗試使用一個指定兩個 IP 的命令,它似乎有效)。最終結果是如下兩條規則:

iptables -A INPUT -s 192.168.1.5 -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -s 192.168.2.6 -p tcp --dport 5432 -j ACCEPT

其次,您可以省略 來-d僅匹配任何 IP。由於這是INPUT鍊式的,因此需要匹配其中一台機器的 IP。

第三,不要忘記有一個DROP規則,因為如果您只有這兩個規則ACCEPT作為鏈的預設策略INPUT。所有連接都將被允許。

此外,您可能需要允許RELATED資料ESTABLISHED包的流量雙向流動。這取決於您的規則(允許什麼和刪除什麼)。規則如下:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

相關內容