はじめに
さくらVPS(じゃなくてもいいけどwebサーバ)でいろいろ設定してみたけど
こんな感じで表示されない(><)ってときありますよね!
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^)/