どうしてtomcatがつながらなかったのか

2014/4/4
 
 
ワードプレスをインストールするにあたり、トムキャットが必要になりました。
 
前の記事で書いたようにインストール事態はとても簡単にできました。
そこで安心したのもつかの間、ウェブブラウザから動作確認をしてもトムキャットのデフォルトのページ
 
これ
イメージ 1
 
がみつかりませんでした・・・
 
/sbin/service tomcat6 start
トムキャットの動作をスタートさせて、OKという反応があったので動いているはず。
 
 
IPアドレス:8080をブラウザ上で探してもないのは、どこかでトラフィックがはじかれてしまっているからなのでしょう。そこで目を付けたのはクラウドスタックの設定。ポート8080を追加しました。
 
そして再びIPアドレス:8080で検索をかけましたがまだできない・・・・
何が原因だかよくわからないまま、とりあえずネットワークの問題なのだろうと判断し、このページhttp://blog.asial.co.jp/816)を参考にしながら一つ一つ可能性をつぶしていく手段にでました。
 
 
上から順番に、
 
1,1 ping:届かない
もしかしたらVMではなく、今使っているPCのコマンドプロンプトを使っても意味がないのかもしれない・・・よくわからないし判断しかねるのでとりあえず次もやってみよう
 
 
1,2 
クライアントからどこにも通らないというのは今の状況のことをいうのか、なぞ。
ただ、物理的な原因というのはかなり可能性が低い・・・
まあよくわからないので次。
 
 
1,3
確実に生きているホストとはなんのことなのか。わからないので、次。
 
 
1,4
とりあえずコマンドを打ってみる
よくわからない。とりあえず、経路を疑うことにしよう。
 
 
 
2、
TCPダンプはネットワークの状況を見るためのコマンドです。
コンピュータに届いたすべてのパケット情報を出力してくれます。

yum install tcpdump
 TCPダンプをインストー

tcpdump -n -i eth0 icmp  
何も反応しない。経路が原因である可能性が高まったみたいだ。
-iで監視するインターフェイスの指定、-nでIPアドレスやポート番号をそのまま表示というオプションがついています。オプションをつけないと出力結果が多すぎて探すのが大変ですからね。
 

tcpdump -n -i eth0 tcp port 80
お次はポート80についてはどうなっているのかを確認。
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
.........................................
..........................................
..........................................
いくつか出てきました。
まあ大丈夫なのでしょう。
 
 
あとこんなのを教わったので打ってみました。

^C
9 packets captured
9 packets received by filter
0 packets dropped by kernel
何もドロップしていないようです!
 
 
 
3、traceroute
トレースルートは目的のホストまでの経路を教えてくれるコマンドです。
ここはスキップ:)
 
 
 
4、netstat
ネットワークの接続状況をみてみます。
オプションは以下の通り。
-a 現在のすべての接続を表示
-n 出力を数値にのみ抑制
-p プロトコルごとにリスト化する。プロトコルTCPUDPを指定。
 
TCPは80なのでまずはそちら

 netstat -anp  |grep :80
tcp        0      0 :::8080                     :::*                        LISTEN      5007/java
tcp        0      0 ::ffff:               :::*                        LISTEN      5007/java
tcp        0      0 :::8009                     :::*                        LISTEN      5007/java
 
トムキャットの8080で

netstat -anp  |grep :8080
tcp        0      0 :::8080                     :::*                        LISTEN      5007/java
 
どちらもおっけーでした。
 
 
 
 
 
 
ここでIPテーブルの確認
ファイアウォールがどうなているのか見てみます。

/sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited←ここで止まっている
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
 
 
上から順に情報が流れていくのですが、5で止まっていたことがわかりました。
見つからなかった原因はリナックスファイアウォールの設定にあったのですね~
 
 
 
見にくいので番号をつけました

# /sbin/iptables -L -n --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
7    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
8    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
9    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
 
 
ファイアウォールに対して必要な通信を許可します。REJECTされていた5をACCEPTに設定。

iptables -I INPUT 5 -p icmp -j ACCEPT
 

/sbin/iptables -L -n --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22

5    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
7    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
8    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
9    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
10   ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
 
7以下を捨てます。

# iptables -D INPUT 7

# iptables -D INPUT 8

# iptables -D INPUT 9
iptables: Index of deletion too big.
 
もう一度IPテーブルの確認

# /sbin/iptables -L -n --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
 
8080に対して通信を許可

# iptables -I INPUT 5 -p tcp --dport 8080 -j ACCEPT

# /sbin/iptables -L -n --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination
 
 
以上で設定した内容を保存。

# service iptables save
iptables: ファイアウォールのルールを /etc/sysconfig/iptable[  OK  ]中:
 
 
 
こうしてトムキャットのデフォルトのページは開かれました。
 
 
おしまい!
 
 
 
ここまでまとめて分からなかったこと、勉強の必要があること
ファイアウォールの設定コマンド
②IPテーブルの見方
③緑ラインのREJECTはどうしてそのっまで大丈夫だったのか
 
 
 
参考ページ
TCPダンプについて