tshark でパケットフィルタ(wireshark) | 中の人のblog

技術系

tshark でパケットフィルタ(wireshark)

calendar_today2024-05-18 01:03:53
celebration 大ニュース!「KYM Game」運営再開!

長らくお待たせいたしました。皆で遊べる「KYM Game」が完全無料でついに復活しました!🎮
パワーアップした基盤で、いつでも誰でも無料で遊べます。ぜひ気軽に遊びに来てください!

Linux上でパケットをフィルタする

tshark インストール

Debian 12前提です。まだ導入が済んでいない場合、以下の通りインストールしてください。

apt -y install tshark

細かい機能は省き、ただ単純にパケットが届いている事実を確認したい場合

基本

単純にソフト名を入れるだけです。

tshark

大量のパケットが流れ込んでくることが確認できます。まずはここからスタートです。

インターフェースを絞りたいとき

NICが複数刺さっており、必要なnicが絞れている時

tshark -i eth0

なお、nic名が不明な場合 ip a で調べる事ができます。

ip a

ipconfig ではありません。

取得したい通信対象が判明しているとき

フィルタ条件を作っていきます。この場合は ipアドレスを指定する場合ですね。

tshark -Y "(ip.addr==xx.xx.xx.xx)"

トラブル対応の場合、初めから細かく指定するのではなく、大きく絞って、少しづつ条件を小さくしていくのが良いです。

取得したい通信対象が判明しているが、どこからの通信なのか、明確なとき

先ほどの例を少し書換えて addrを srcにします。

tshark -Y "(ip.src==xx.xx.xx.xx)"

通信が片方向に絞れたはずです。

取得したい通信対象が判明しているが、どこへの通信なのか、明確なとき

先ほどの例を少し書換えて srcを dstにします。

tshark -Y "(ip.dst==xx.xx.xx.xx)"

先ほどの例と向きが変わって結果が出力されるようになったと思います。

取得したい通信対象が判明しているとき2

先ほどの例を少し書換えて addrを srcにします。

tshark -Y "(ip.dst==xx.xx.xx.xx or ip.src==xx.xx.xx.xx)"

環境によっては初めの例と同じ結果になったと思いますが、同一の意味合いではありませんので注意してください。※対向の通信先を起点としたときに異なる結果になります。

取得したい通信ポートが明確なとき

ssh接続で22番を利用している場合

tshark -Y "(tcp.port==22)"

ただし、22番を利用するのは非推奨です。

自分のサーバーでssh通信のみ取得したい場合

前項の条件に引き続きssh接続で22番を利用して、さらにipも絞りたいとき

tshark -Y "(tcp.port==22) and (ip.addr==xx.xx.xx.xx)"

通信の利用用途的にこのパターンは余りないかもしれませんが上記の通り、条件を増やします。

自分のサーバーでssh通信が不要なとき(除外したい)

この使い方が一番実用度が多いのかなと思います。特定のサーバーに対して調査を行っているが、自分のssh通信が邪魔な場合ですね。

tshark -Y "((ip.addr==xx.xx.xx.xx) and not (tcp.port==22)  )"

大分通信がすっきりすると思います。

ssh通信を除外しつつ、調査対象ポートで絞るとき

この使い方が一番、実用度が多いのかなと思います。特定のサーバーに対して調査を行っているが、自分のssh通信が邪魔な場合で、さらに調査対象のポート及び通信種別が明確な場合。

tshark -Y "((ip.addr==xx.xx.xx.xx) and not (tcp.port==22) and  (udp.port==1234) )"

🚀 記事をお読みいただきありがとうございます!

「Xのフォローをお願いします!」や「無料サーバー運営中!」といったPR枠にご活用ください。
※書き換えは components/article_bottom_guide.php から行えます。

スポンサーリンク
Navigation