私はサーバーと 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 でしょうか?