アップデート:

アップデート:

私はサーバーと iptables の初心者です。 Centos 6.7 apache/httpd サーバーで Web アプリ (bugzilla です) を実行しており、ポート 80 経由で Web (updates.bugzilla.org) に接続しようとしています。 また、ポート 465 を使用して (smtp.gmail.com) に接続しようとしています。 しかし、接続できません。 これは、デフォルトの出力ポリシーが ACCEPT であり、入力用の関連ポートが開いているにもかかわらず発生します。

ここからどうしたらよいかわかりません。この問題のトラブルシューティングを始めるには、どこを調べればよいのでしょうか? 考えられる原因は何でしょうか?

出力例:

$ サービス iptables ステータス

表: フィルター

チェーン入力(ポリシーACCEPT)

数値 ターゲット プロテクション オプション ソース 宛先

1 すべてを受け入れる -- 0.0.0.0/0 0.0.0.0/0

2 すべてを受け入れる -- 0.0.0.0/0 0.0.0.0/0 状態 RELATED、ESTABLISHED

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 target prot opt source destination

チェーン出力 (ポリシー ACCEPT) num target prot opt source destination

そして:

iptables -L -v チェーン入力 (ポリシー ACCEPT 881 パケット、106K バイト)

パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先

0 0 すべてを受け入れる -- lo どこでもどこでも

436 183K すべてを受け入れる -- 任意 任意 どこでも どこでも 状態 RELATED、ESTABLISHED

0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh

1 60 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http

0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:https

0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:smtp

0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:submission

チェーン FORWARD (ポリシー DROP 0 パケット、0 バイト) パケット バイト ターゲット prot オプトイン アウト ソース 宛先

チェーン出力 (ポリシー ACCEPT 348 パケット、56741 バイト)

パケット バイト ターゲット プロテクション オプトイン アウト ソース 宛先

私は、これが Bugzilla や CentOS 固有の問題ではないことを期待しています。なぜなら、Ubuntu の ufw を使用していたにもかかわらず、Ubuntu デスクトップに Bugzilla を正常にインストールできたからです (iptables でも​​試したと思いますが、確認するにはもう一度試す必要があります)。

アップデート:

後日、Web で検索してこのことに気づいた人のために言うと、これは 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 でしょうか?

関連情報