Linux
CentOS:我無法通過網際網路訪問埠 5432 嗎?
我們安裝了一個新的 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
.