Linuxシステムのパケットキャプチャツールの詳細説明

特定のネットワーク カード上にどのようなデータ パケットがあるかを確認したい場合があります。特に、サーバー上でトラフィック攻撃があると最初に判断した場合は、パケット キャプチャ ツールを使用してデータ パケットをキャプチャし、どの IP が攻撃しているかを知ることができます。

14.2.1 tcpdump ツールの具体的な使用方法は次のとおりです。

# tcpdump -nn -i ens33tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes09:41:46.647812 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 3649233742:3649233954, ack 443629343, win 251, length 21209:41:46.647976 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 212, win 253, length 009:41:46.648337 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 212:504, ack 1, win 251, length 29209:41:46.648493 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 504:668, ack 1, win 251, length 16409:41:46.648562 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 668, win 252, length 009:41:46.648651 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 668:928, ack 1, win 251, length 26009:41:46.648744 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 928:1092, ack 1, win 251, length 16409:41:46.648800 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1092, win 256, length 009:41:46.648875 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1092:1368, ack 1, win 251, length 27609:41:46.648978 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1368:1532, ack 1, win 251, length 16409:41:46.649035 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1532, win 254, length 009:41:46.649128 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1532:1808, ack 1, win 251, length 27609:41:46.649206 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1808:1972, ack 1, win 251, length 16409:41:46.649297 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 1972, win 253, length 009:41:46.649433 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 1972:2248, ack 1, win 251, length 27609:41:46.649531 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2248:2412, ack 1, win 251, length 16409:41:46.649591 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2412, win 251, length 009:41:46.649675 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2412:2688, ack 1, win 251, length 27609:41:46.649760 IP 192.168.72.128.22 > 192.168.72.1.52219: Flags [P.], seq 2688:2852, ack 1, win 251, length 16409:41:46.649809 IP 192.168.72.1.52219 > 192.168.72.128.22: Flags [.], ack 2852, win 256, length 0
复制代码

Enter キーを押すと、密集した文字列が表示されます。Ctrl+C を押す前に、これらの文字列が画面をスワイプしていました。スワイプが速いほど、ネットワーク カード上のデータ パケットが増加します。tcpdump コマンドがない場合は、次のコマンドを使用してインストールする必要があります。

# dnf install -y tcpdump
复制代码

上記の例では、どの IP + ポート番号がどの IP + ポート番号に接続されているかを示す列 3 と 4 に注目するだけで済みます。以下の情報はデータパケットの関連情報です。理解できなくても問題ありません。このうち、-i オプションの後にはデバイス名が続きますが、他のネットワーク カードのデータ パケットをキャプチャする場合は、その後に他のネットワーク カードの名前を続ける必要があります。-nn オプションの機能は、3 列目と 4 列目を「IP + ポート番号」の形式で表示することですが、-nn オプションを付けない場合は「ホスト名 + サービス名」が表示されます。A Ming は、シェル スクリプトで tcpdump ツールをよく使用します。シェル スクリプトは自動的に実行されるのですが、ショートカット キー Ctrl+C を押してパケット キャプチャを終了するにはどうすればよいでしょうか? tcpdump で使用できるオプションは他にもあります。

# tcpdump -nn -i ens33 -c 100
复制代码

上記の例では、-c の機能はキャプチャするパケットの数を指定することであり、十分な数をキャプチャすると自動的に終了するため、手動でキャンセルする必要はありません。A Ming は、いくつかの一般的な例を示します。

  • ポート 22 のパケットのみをキャプチャします
# tcpdump -nn -i ens33 port 22
复制代码
  • TCP パケットをキャプチャするように指定しますが、ポート 22 はキャプチャしません
# tcpdump –nn –i ens33 tcp and not port 22
复制代码
  • ポート 22 と 53 上のパケットのみをキャプチャします
# tcpdump –nn –i ens33 port 22 and port 53
复制代码

14.2.2 Wireshark ツールWindows でのパケット キャプチャ ツールである Wireshark を使用したことがあるかもしれません。その機能は非常に強力です。Linux プラットフォームでもコマンド ラインの形式で使用できます。Wireshark の具体的なオプションについては詳しく紹介しませんが、日常業務では実際には tcpdump を使用するだけで十分です。以下の用法は阿明の作品の中でよく使われますので、ぜひマスターしてください。

# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"
复制代码

実行したいコマンドは tshark です。お使いの Linux にはデフォルトでこのコマンドがありません。次のコマンドを使用してインストールしてください:

# dnf install -y wireshark
复制代码

次に、上記のパケット キャプチャ コマンド tshark を見てください。このコマンドは Web サーバーに使用され、次の情報を表示できます。

Jun 26, 2022 09:11:44.017592529 CST" 116.179.32.105 ask.apelearn.comGET  /question/96924473532
复制代码

これはWebアクセスログと似ています。サーバーにアクセス ログが設定されていない場合は、このコマンドを一時的に使用して、現在のサーバー上の Web リクエストを確認できます。ここで、Web サービスがマシン上で有効になっていない場合は、何も表示されないことに注意してください。

# tshark -n -i eth1 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"
复制代码

上記のコマンドは eth1 ネットワーク カードの mysql クエリをキャプチャしますが、この方法は mysql ポートが 3306 の場合にのみ適用されます。3306 でない場合は、次の方法を使用してください。

# tshark -i eth1 port 3307 -d tcp.port==3307,mysql -z "proto,colinfo,mysql.query,

おすすめ

転載: blog.csdn.net/am_Linux/article/details/130209803