Linux

CentOS:我無法通過網際網路訪問埠 5432 嗎?

  • March 22, 2018

我們安裝了一個新的 CentOS 伺服器進行測試,與 debian 相比,配置有點不同。目前我不確定埠 5432 對我們來說是否安全。如果沒有,我如何保護執行 postgresql 的埠 5432,使其無法從 Internet 訪問。雖然我記得為 port-5432 添加了一條規則,但我在 Iptables 中看不到它

這不是一個 debian 系統。

iptables -S:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited


netstat -tulpn | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      2938/postgres       
tcp6       0      0 ::1:5432                :::*                    LISTEN      2938/postgres  

如果你執行netstat -tulpn | awk 'NR==2 || /:5432/'而不是你的,netstat ... grep你也會得到列標題:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      2938/postgres
tcp6       0      0 ::1:5432                :::*                    LISTEN      2938/postgres

查看該Local Address列,您可以看到它postgres僅在環回地址 ( 127.0.0.1) 上偵聽。在此基礎上,您可以放心,它不會接受來自任何其他系統的請求。

您提到的阻止此埠的防火牆規則顯然不存在於目前規則集中,因此可能是您沒有確保它已保存(iptables規則不會在重新啟動後持續存在,除非您先保存它們)。根據CentOS Wiki,保存規則集的正確方法是/sbin/service iptables save.

引用自:https://unix.stackexchange.com/questions/432225