我對伺服器和 iptables 很陌生。我有一個 Web 應用程式(恰好是 bugzilla)在我的 Centos 6.7 apache/httpd 伺服器上運行,它嘗試透過連接埠 80 連接到 Web(updates.bugzilla.org)。 com)使用連接埠465。儘管有預設的 ACCEPT 輸出策略並打開了相關的輸入端口,但仍然如此。
我不知道從這裡該去哪裡。我該從哪裡開始解決這個問題?可能的罪魁禍首是什麼?
一些輸出:
$ 服務 iptables 狀態
表:過濾器
鏈輸入(策略接受)
num 目標 prot opt 來源目標
1 全部接受 -- 0.0.0.0/0 0.0.0.0/0
2 全部接受 -- 0.0.0.0/0 0.0.0.0/0 狀態相關、已建立
3 接受 TCP -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 接受 TCP -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
5 接受 TCP -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
6 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
7 接受 TCP -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
鏈 FORWARD (策略 DROP) num 目標 prot opt 來源目的地
鏈輸出(策略接受) num 目標 prot opt 來源目的地
和:
iptables -L -v Chain INPUT(策略接受881個資料包,106K位元組)
pkts 位元組目標 prot 選擇輸出來源目標
0 0 全部接受 -- lo 任何地方任何地方
436 183K 全部接受 -- 任何任何地方任何地方聲明相關、已建立
0 0 接受 tcp -- 任何任何地方任何地方 tcp dpt:ssh
1 60 接受 tcp -- 任何任何地方任何地方 tcp dpt:http
0 0 接受 tcp -- 任何任何地方任何地方 tcp dpt:https
0 0 接受 tcp -- 任何任何地方任何地方 tcp dpt:smtp
0 0 接受 tcp -- 任何任何地方任何地方 tcp dpt:submission
Chain FORWARD(策略 DROP 0 封包,0 位元組)pkts 位元組目標 prot 選擇退出來源目標
Chain OUTPUT(策略接受 348 個資料包,56741 位元組)
pkts 位元組目標 prot 選擇輸出來源目標
我希望這不是 bugzilla 或 centos 特定的事情,因為我已經在 ubuntu 桌面上成功安裝了 bugzilla,儘管那是在使用 ubuntu 的 ufw 時(我想我也用 iptables 嘗試過,但必須嘗試)再次驗證)。
更新:
對於那些稍後在網上搜索並看到此內容的人來說,事實證明這是 SELinux 問題!需要啟用布林值“httpd_can_network_connect”(對於其他人,請使用“getsebool -a”)。
答案1
嘗試這個:
service iptables save
service iptables stop
chkconfig iptables off
繁榮,沒有防火牆。再次測試。
嘗試使用 telnet 測試該連接埠:
telnet updates.bugzilla.org 80
連接 telnet 後,輸入“get”並查看是否有回應。
Example:
# telnet updates.bugzilla.org 80
Trying 63.245.223.29...
Connected to updates.bugzilla.org.
Escape character is '^]'
get
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.0.15</center>
</body>
</html>
Connection closed by foreign host.
沒起作用?
嘗試 tcptraceroute 看看它在哪裡被阻止:
tcptraceroute updates.bugzilla.org 80
是否還有其他東西阻塞了連接埠?防火牆、路由器、ISP?