tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

さくらvpsの設定自分メモ - 「このウェブページにアクセスできません」と表示される/webサーバにアクセスが来てるか確認したいメモ(iptablesログ、tcpdump)

はじめに

さくらVPS(じゃなくてもいいけどwebサーバ)でいろいろ設定してみたけど
こんな感じで表示されない(><)ってときありますよね!

f:id:tweeeety:20141106235353p:plain

iptablesでポートあけてなかったとかが多いと思います。
わかっちゃーいるんだけどあえてその辺りを確認する方法をメモ。

ながれ

  1. 前提
  2. tcpdumpでパケットが来てるか確認してみる
  3. iptablesのログで確認してみる

主に上記についてメモりたかったので、pingとかtelnetはいれませんでした。

1. 前提

前提として、「ポートを空けてなかった」説をメインにしたいので
あえてあけてない適当なポートにブラウザからアクセスしてみることにします。

こんなURLにアクセス

http://[ipアドレスまたはhostname]:9876

2. tcpdumpでパケットが来てるか確認してみる

内容はよくわからんがパケットは来てるっぽいとか見たいときのtcpdump
tail -fのようにtcpをウォッチしてくれます。

tcpdump port [ポート番号]

やってみる

webサーバ側でsudo tcpdump port 9876と打って
ブラウザでhttp://[ipアドレスまたはhostname]:9876とアクセスしてみます

# sudo tcpdump port 9876
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:42:18.825636 IP 192.168.239.1.58925 > 192.168.239.129.sd: S 4096796678:4096796678(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037358 0,sackOK,eol>
23:42:18.826138 IP 192.168.239.1.58926 > 192.168.239.129.sd: S 501227216:501227216(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037358 0,sackOK,eol>
23:42:18.826139 IP 192.168.239.1.58927 > 192.168.239.129.sd: S 3718527164:3718527164(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037358 0,sackOK,eol>
23:42:18.826330 IP 192.168.239.1.58928 > 192.168.239.129.sd: S 2021737421:2021737421(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037358 0,sackOK,eol>
23:42:18.830463 IP 192.168.239.1.58929 > 192.168.239.129.sd: S 77738558:77738558(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037362 0,sackOK,eol>
23:42:18.830766 IP 192.168.239.1.58930 > 192.168.239.129.sd: S 1030928117:1030928117(0) win 65535 <mss 1460,nop,wscale 4,nop,nop,timestamp 413037362 0,sackOK,eol>

パケットが来たのが確認できました。

tcpdumpはもっといろいろ出せるので興味ある方は自分で調べてみてください。

2. iptablesのログで確認してみる

tcpdump上ではパケットが到達してるっぽいことがわかったので、
iptablesではじかれてないかログを見てみます。

と、その前にiptablesでログを出す設定をしておく必要があります。
iptablesでのログ出力の設定はこちらに書いたので、この設定でやったとしてすすめます。
さくらvpsの設定自分メモ - iptablesでログを出す(iptables、syslog(rsyslog))

iptablesのログ出力設定ができたら見てみる

設定したログファイルをtailで眺めながら同じように
ブラウザでhttp://[ipアドレスまたはhostname]:9876とアクセスしてみます

# sudo tail -f /var/log/iptables
Nov  6 23:48:01 hogehost kernel: [iptables firewall] : IN=eth0 OUT= MAC=00:0c:22:66:bb:11:00:55:55:cc:00:08:08:00 SRC=192.168.239.1 DST=192.168.239.129 LEN=64 TOS=0x00 PREC=0x00 TTL=64 ID=15581 DF PROTO=TCP SPT=59107 DPT=9876 WINDOW=65535 RES=0x00 SYN URGP=0 

iptablesでは許可してないヤツをログに出す設定をしたので
上記のログが表示されるということは
設定(許可)してないポートアクセス=iptablesの設定漏れが原因と判明しました。とさ。

まとめ

ってことで、webサーバ的なの用意したけどアクセスできませんで困ってる人の参考になれば\(^o^)/