JITAKU_SVR_Wiki
コマンド †
tcpdumpを使用することで、パケットの到着や、リクエストなど様々な確認ができる。
どこからか通信を行いたいが、うまくいかない場合に、どこで失敗しているか切り分けの判断にもなる。
例) sshができない場合
Firewallでとまっているのか、サーバに問題があるのか、そもそもパケットが到着できていないのか分からない場合。
1.sshのログを調べる => 残っていない
2.Firewallのログを調べる => 残っていない(この状態でほぼサーバにパケットが到着していない)
3.念のためtcpdumpをとる
tcpdumpの使用方法
# tcpdump -n -i eth0 host 192.168.0.1 and dst port 22
# tcpdump -nX -s 0 dst port 80
tips:
オプション
-n
=>名前解決をしないでそのまま表示
-X
=>16 進表示されるときに、 ASCII 文字も表示する
-s
=>デフォルトのバイト数では足りない部分も補う
※0指定は全部出すと言う意味
-i
=>インターフェースの指定
dst port <port num>
=>ポート番号指定
host <IPaddress>
=>IPアドレスの指定
and
=>条件式の複合
ポートのみでのtcpdumpの方法
# tcpdump dst port 22
表示結果 †
14:56:39.883547 IP 192.168.0.253.48884 > hogehoge.com.ssh: . ack 7239505 win 1002 <nop,nop,timestamp 305428274 2154649615>
14:56:39.890053 IP 192.168.0.253.48884 > hogehoge.com.ssh: P 5456:5504(48) ack 7239505 win 1002 <nop,nop,timestamp 305428275 2154649615>
14:49:58.843548 IP 192.168.22.214.63744 > hogehoge.com.ssh: S 1069937178:1069937178(0) win 64240 <mss 1240,nop,nop,sackOK>
フラグ †
「S」「F」「P」「A」「U」「R」の6種類がある。
S = SYN SYNはデータ通信(コネクション)開始時
F = FIN FINはデータ通信(コネクション)終了時
P = PSH それ以外のデータパケット
A = ACK ACKパケット
U = URG ??
R = RST ??
「.」は、そのパケットにはデータ部分が存在せず、それまでに送信されたデータパケットに対する応答を示す