Linux ネットワーク監視

LinuxLinuxBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Linux においてコマンドラインツール netstat を使用したネットワーク監視に焦点を当てます。ネットワーク監視は、システム管理者が自身のシステム上の接続、サービス、およびトラフィックパターンを理解するために不可欠です。

この実験を通じて、アクティブなネットワーク接続、リスニング中のサービス、およびネットワークインターフェイスの統計情報を表示するために netstat ユーティリティを使用する方法を学びます。これらのスキルは、ネットワーク問題のトラブルシューティング、システムパフォーマンスの監視、およびネットワークセキュリティの確保において基本的なものです。

この実験の終了時には、Linux システム上のネットワーク活動に関する洞察を得るために netstat を効果的に使用できるようになります。これは、あらゆるシステム管理者や IT 専門家にとって価値のあるスキルです。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 100%です。学習者から 100% の好評価を得ています。

netstat を使ったネットワーク接続の理解

netstat コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計などを表示する強力なネットワークユーティリティです。このステップでは、アクティブなネットワーク接続を表示するために netstat を使用する方法を学びます。

まず、作業するプロジェクトディレクトリに移動しましょう。

cd /home/labex/project

netstat とは何か?

netstat(ネットワーク統計)コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計など、様々なネットワーク関連の情報を表示します。これは、システムのネットワーク活動を理解するための貴重なツールです。

アクティブな接続の表示

特定のオプションを指定して netstat コマンドを実行し、アクティブな TCP 接続を表示しましょう。

netstat -nat > connections.txt

このコマンドでは:

  • -n は、アドレスとポート番号を数値形式で表示し、ホスト名やサービス名に解決しません。
  • -a は、すべてのソケット(リスニング中と非リスニング中の両方)を表示します。
  • -t は、TCP 接続のみを表示します。
  • > connections.txt は、出力を connections.txt という名前のファイルにリダイレクトします。

では、作成したファイルの内容を表示しましょう。

cat connections.txt

出力は次のようになるはずです。

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

出力の理解

  • Proto:使用されているプロトコル(この場合は TCP)
  • Recv-Q:このソケットに接続されたユーザープログラムによってコピーされていないバイト数
  • Send-Q:リモートホストによって確認されていないバイト数
  • Local Address:ソケットのローカル側のアドレスとポート番号
  • Foreign Address:ソケットのリモート側のアドレスとポート番号
  • State:ソケットの状態(LISTEN、ESTABLISHED など)

LISTEN 状態は、サービスが実行中で、特定のポートで着信接続を待機していることを示します。

リスニング中のサービスの監視

このステップでは、システム上で接続を待機しているサービスを特定する方法を学びます。この情報は、セキュリティ監査やネットワーク関連の問題のトラブルシューティングにおいて重要です。

リスニング中のサービスの特定

netstat コマンドを使用して、LISTEN 状態のサービスを具体的に探しましょう。

netstat -natu | grep LISTEN > listening_services.txt

このコマンドでは:

  • -n は数値形式のアドレスを表示します。
  • -a はすべてのソケットを表示します。
  • -t は TCP 接続を含みます。
  • -u は UDP 接続を含みます。
  • | grep LISTEN は出力をフィルタリングして、"LISTEN" を含む行のみを表示します。
  • > listening_services.txt は出力をファイルに保存します。

では、ファイルの内容を確認しましょう。

cat listening_services.txt

次のような出力が表示されるはずです。

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

リスニング中のサービスの理解

出力の各行は、現在接続を受け付けているサービスを表しています。

  • 0.0.0.0 でリスニングしているサービスは、任意のネットワークインターフェイスからの接続を受け付けます。
  • 127.0.0.1 でリスニングしているサービスは、ローカルマシンからの接続のみを受け付けます。
  • ::: でリスニングしているサービスは、任意のネットワークインターフェイスからの接続を受け付ける IPv6 アドレスです。

ポート番号(SSH の場合は 22、CUPS 印刷サービスの場合は 631 など)は、どのサービスがリスニングしているかを識別します。例えば:

  • ポート 22: SSH サービス
  • ポート 80: HTTP(ウェブ)サービス
  • ポート 443: HTTPS サービス
  • ポート 631: CUPS 印刷サービス

この情報は、システム上で公開されているサービスを理解するのに役立ち、セキュリティ評価やトラブルシューティングにおいて価値があります。

ネットワークインターフェイスの統計情報の分析

このステップでは、ネットワークインターフェイスの統計情報を表示する方法を学びます。これらの統計情報は、ネットワークインターフェイスのパフォーマンスと使用状況に関する貴重な情報を提供します。

インターフェイスの統計情報の表示

netstat を使用して、すべてのネットワークインターフェイスの統計情報を表示しましょう。

netstat -i > interface_stats.txt

このコマンドでは:

  • -i はすべてのネットワークインターフェイスのテーブルを表示します。
  • > interface_stats.txt は出力をファイルに保存します。

では、ファイルの内容を確認しましょう。

cat interface_stats.txt

次のような出力が表示されるはずです。

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500   123456      0      0 0        98765      0      0      0 BMRU
lo       65536     789      0      0 0          789      0      0      0 LRU

ネットワークインターフェイスの統計情報の理解

出力は、各ネットワークインターフェイスに関する重要な統計情報を提供します。

  • Iface:ネットワークインターフェイスの名前

    • eth0:通常は最初の Ethernet インターフェイス
    • lo:ローカル接続に使用されるループバックインターフェイス
  • MTU:最大転送単位(Maximum Transmission Unit) - 送信できる最大のパケットサイズ

    • 標準的な Ethernet では通常 1500 バイトが使用されます。
    • ループバックインターフェイスは通常、より大きな MTU(65536)を持っています。
  • RX-OK:エラーなく受信されたパケットの数

  • RX-ERR:エラーがあった受信パケットの数

  • RX-DRP:ドロップされた受信パケットの数

  • RX-OVR:受信パケットのオーバーランの数

  • TX-OK:エラーなく送信されたパケットの数

  • TX-ERR:エラーがあった送信パケットの数

  • TX-DRP:ドロップされた送信パケットの数

  • TX-OVR:送信パケットのオーバーランの数

  • Flg:インターフェイスの状態を示すフラグ

    • B:ブロードキャストアドレスが設定されている
    • M:マルチキャストが有効になっている
    • R:インターフェイスが稼働中
    • U:インターフェイスがアップ状態

これらの統計情報は、ネットワークのパフォーマンスを監視し、パケット損失や送信エラーなどの潜在的な問題を特定するのに役立ちます。

追加のネットワーク統計情報コマンド

ネットワーク統計情報をより包括的に見るには、次のコマンドも使用できます。

netstat -s | head -20 > protocol_stats.txt

このコマンドは、TCP、UDP、IP、ICMP などのプロトコルの統計情報を表示します。読みやすさのために head -20 を使用して、出力を最初の 20 行に制限しています。

では、このファイルを表示しましょう。

cat protocol_stats.txt

これにより、各プロトコルのパフォーマンスに関する詳細な統計情報が提供され、プロトコルレベルでの潜在的なネットワーク問題を特定するのに役立ちます。

まとめ

この実験では、Linux システム上のネットワーク活動のさまざまな側面を監視するために netstat コマンドを使用する方法を学びました。習得した主要なスキルは以下の通りです。

  1. アクティブなネットワーク接続を表示して、システム上で確立されている接続を理解する。

  2. リスニング中のサービスを特定して、どのポートが開いており、潜在的にネットワークに公開されているかを判断する。

  3. ネットワークインターフェイスの統計情報を分析して、ネットワークインターフェイスのパフォーマンスと健全性を監視する。

これらのスキルは、ネットワーク関連の問題を理解し、トラブルシューティングする必要のあるシステム管理者、ネットワークエンジニア、セキュリティ専門家にとって不可欠です。netstat コマンドは、システムのネットワーク活動に関する貴重な洞察を提供し、最適なパフォーマンスとセキュリティを維持するのに役立ちます。

多くの最新の Linux ディストリビューションでは netstat はレガシーなコマンドとされており、ssip などのツールに置き換えられつつありますが、netstat を理解することは、これらすべてのツールに共通するネットワーク監視の概念の堅固な基礎を築きます。