Linux
 Computer >> コンピューター >  >> スマートフォン >> Linux

【Linux】netstatコマンドでネットワーク接続を監視・分析する方法

このガイドでは、Linuxでnetstatコマンドを使用して、インターネットおよびネットワーク接続を監視する方法を解説します。

netstatとは何か

netstatは非常に便利なLinuxのコマンドラインツールで、どのサービスが自分のマシンのポートに接続しているのかを確認できます。サーバーが攻撃を受けているときや、攻撃を未然に防ぎたいときに、マシン上で何が起きているのかを分析するうえで大きな助けになります。特定のポートにいくつの接続が行われているか、それらの接続がどのIPアドレスから発信されているかなど、さまざまな情報を取得できます。

netstatは多くのLinuxディストリビューションに標準で同梱されているため、特別なインストール作業なしにすぐ利用できるはずです。

基本的な使い方

まず、端末(シェル)を開いて以下のコマンドを実行します。

# netstat -ant

出力は次のようになります。

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 ::ffff:192.168.1.19:80       ::ffff:192.168.1.240:63049  TIME_WAIT
tcp        0      0 ::ffff:192.168.0.19:80       ::ffff:192.168.1.240:62793  TIME_WAIT
tcp        0      0 ::ffff:192.168.1.19:80       ::ffff:192.168.1.240:62795  TIME_WAIT

実際の出力はかなり長くなるため、上記は一部を抜粋したものです。このデータからは、192.168.1.240というクライアントがTCPプロトコル経由でサーバーの80番ポートに接続しており、その状態がTIME_WAITであることが読み取れます。あなたの環境で実行した場合の出力には、80番ポートだけでなく、マシン上のすべてのポートに関する情報が含まれます。

grepで特定のポートに絞り込む

まず気づくのは、これほど大きな出力ではあまり実用的ではないという点です。そこで、出力を整理していきましょう。ここで紹介するのは、筆者がサーバーへの接続状況を分析する際によく使うテクニックです。

最初に行うのは、分析対象となるサービスの特定です。通常は、Webサーバーが使用するデフォルトポートの80番と、MySQLが使用するデフォルトポートの3306番が対象になります。80番ポートの状況を確認するには、次のコマンドを使用します。

# netstat -ant | grep 80

wc -lで接続数をカウントする

それでも大量の接続一覧が表示されます。最初よりは少なくなったものの、まだ把握しきれない量です。そこでwc -lコマンドを使って出力の行数を数え、80番ポートのおおよその接続数を確認します。

# netstat -ant | grep 80 | wc -l
625

同じ要領でMySQL側も確認してみます。

# netstat -ant | grep 3306 | wc -l
61

awkで接続状態を集計する

さらに、サーバー上の接続全体の内訳(状態ごとの分布)をつかみたい場合は、次のようにawkとsort、uniqを組み合わせます。

# netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

      1 established)
      1 Foreign
      4 FIN_WAIT2
      8 LISTEN
     16 CLOSE_WAIT
    134 ESTABLISHED
    409 TIME_WAIT

これにより、マシン上に存在する各状態の接続がそれぞれいくつあるのかが一目でわかります。同様のコマンドを使えば、Webサーバーへのすべての接続の状態を完全に把握することも可能です。

netstat -ant | grep 80 | awk '{print $6}' | sort | uniq -c | sort -n

      1 FIN_WAIT1
      4 LISTEN
      6 FIN_WAIT2
     17 CLOSE_WAIT
     94 ESTABLISHED
    534 TIME_WAIT

まとめ

netstatは、他のLinuxコマンドラインツールと組み合わせることで、さらに複雑な分析にも対応できます。特にサーバーが攻撃を受けている状況では、こうした情報収集のテクニックを身につけておくことが重要です。取得した接続元IPアドレスや接続数の情報は、ファイアウォールの設定やアクセス制御にもそのまま活用できます。

  1. PCの温度を監視する方法|UEFI設定とSpeccyで簡単チェック

    PCが異常に熱くなっていると感じていませんか?もしそうなら、温度をモニタリングする絶好のタイミングかもしれません。 長期間にわたって高温状態が続くPCには、良いことが一つもありません。パフォーマンスの低下や各パーツの寿命短縮など、その悪影響は多岐にわたります。だからこそ、定期的にPCの温度をチェックすることが重要です。この記事では、PCの温度を確認するのに最適な2つの方法をご紹介します。 まず、UEFI設定を使った標準的な方法があります。それがうまくいかない場合は、サードパーティ製アプリに頼るのも良いでしょう。それでは始めましょう。 方法1: UEFIからPCの温度を確認する UEFI

  2. Time MachineでMacをバックアップ・復元する方法を徹底解説

    大切な写真やデータのバックアップはきちんと取っていますか?思い出を残すために大量の写真を撮る人は多いものの、バックアップをしていなければ、いつデータを失ってもおかしくありません。Macのバックアップを定期的に取っておけば、システムの不具合、ハードドライブの故障、ファイルの破損、ウイルス感染、マシンのクラッシュなど、どんなトラブルが起きても大切な思い出を守ることができます。そこで活躍するのが、Apple純正のバックアップツール「Time Machine」です。自動でバックアップを行えるうえ、操作も非常にシンプル。バックアップしたくないファイルを除外できる柔軟性も魅力です。また、ハードドライブ全体