如何只允许特定的IP访问某个端口?

分享于 

2分钟阅读

互联网

  繁體

问题:

我有一个安装了数据库的中央服务器,还有多个调用该中央数据库的分布式服务器。出于安全原因,我希望仅由那些已知服务器访问中央服务器。

我在这里试图实现的是允许服务器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




答案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链的默认策略,允许所有连接。

另外,你需要允许RELATEDESTABLISHED流量让数据包双向流动,这取决于你的规则(允许什么和放弃什么),以下是规则:


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





acc