ネットワークセキュリティ · 1 min read · Sep 12, 2025
Ubuntu 24.04にZeekネットワークセキュリティ監視ツールをインストールする方法

Zeek(以前はBro)は、ネットワークセキュリティ監視のための無料でオープンソースのプラットフォームです。これは、疑わしいまたは悪意のある活動を調査する強力なパッシブネットワークトラフィックアナライザーです。Zeekはネットワークセキュリティモニター(NSM)として使用でき、セキュリティドメインからパフォーマンス測定やトラブルシューティングまで、幅広いトラフィック分析をサポートしています。
このチュートリアルでは、Ubuntu 24.04サーバーにZeekネットワークセキュリティ監視ツールをインストールする方法を学びます。また、Zeekをクラスターモードで実行する方法、’zeek-cut’コマンドでZeekログを解析する方法、’jq’ユーティリティでZeek JSONログを生成および解析する方法も学びます。
前提条件
始める前に、次のものを用意してください:
- Ubuntu 24.04サーバー
- 管理者権限を持つ非ルートユーザー
Zeekのインストール
ZeekはUnix系オペレーティングシステム用のネットワークセキュリティ監視ツールです。複数の方法でインストールできます。この例では、OpenSUSEビルドサービスからAPTパッケージマネージャを使用して、Ubuntu 24.04サーバーにZeekをインストールします。
まず、以下のコマンドを実行して、ZeekリポジトリをUbuntuシステムに追加します。
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list次に、以下のコマンドでZeekリポジトリのGPGキーをダウンロードして追加します。
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_24.04/Release.key | \
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/nullZeekのGPGキーとリポジトリが追加されたら、以下の’ apt ‘コマンドを実行して、Ubuntuパッケージを更新します。
sudo apt update次に、以下の’ apt ‘コマンドを実行して、’ zeek ‘パッケージを確認します。複数のZeekバージョンが表示されます。
sudo apt search zeek
sudo apt-cache policy zeek
次に、以下の’ apt ‘コマンドでZeekをインストールします。この例では、Zeek LTSをインストールします。
sudo apt install zeekインストールを確認するために’ Y ‘を入力します。

インストールが完了したら、’ ~/.bashrc ‘ファイルを通じて、’ /opt/zeek/bin ‘ディレクトリをシステムPATHに追加します。そして、’ ~/.bashrc ‘ファイルを再読み込みして新しい変更を適用します。これで、ターミナルを通じてZeekコマンドラインを実行できます。
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
source ~/.bashrc最後に、以下の’ zeek ‘コマンドを実行して、Zeekのバージョンと基本的なコマンドおよびオプションを確認します。
zeek --version
zeek --help以下のような出力が表示されます:

Zeekの設定
Zeekがインストールされたら、インフラストラクチャ上でZeekがどのように実行されるかを設定する必要があります。Zeekをスタンドアロンまたはクラスターモードで実行することを選択できます。大規模な展開の場合、Zeekコンポーネントを別々のサーバーにインストールするクラスターモードを使用できます。このテスト目的のために、単一のサーバーでクラスターモードを設定して実行します。
以下の’ ip ‘コマンドでサーバーのIPアドレスを確認します。この例では、UbuntuサーバーのIPアドレスは’ 192.168.10.60 ‘です。
ip a‘ nano ‘エディタでZeekネットワーク設定’ /opt/zeek/etc/networks.cfg ‘を開きます。
sudo nano /opt/zeek/etc/networks.cfgターゲットサーバーのネットワークサブネットを以下のように入力します。
192.168.10.0/24 ローカルネットワークファイルを保存して、終了します。
次に、’ nano ‘を使用してZeekノード設定’ /opt/zeek/etc/node.cfg ‘を開きます。
sudo nano /opt/zeek/etc/node.cfg以下の行をコメントアウトして、Zeekスタンドアロンモードを無効にします。デフォルトでは、Zeekはデフォルトの’ localhost ‘とネットワークインターフェース’ eth0 ‘でスタンドアロンモードで実行されています。
#[zeek]
#type=standalone
#host=localhost
#interface=eth0以下の設定を貼り付けて、単一のサーバー内でクラスターモードでZeekを実行します。IPアドレスをUbuntuサーバーのIPアドレスに変更してください。以下のように、Zeekクラスターモードにはlogger、manager、proxy、workersなどの複数のコンポーネントがあります。
# logger
[zeek-logger]
type=logger
host=192.168.10.60
# manager
[zeek-manager]
type=manager
host=192.168.10.60
# proxy
[zeek-proxy]
type=proxy
host=192.168.10.60
# worker
[zeek-worker]
type=worker
host=192.168.10.60
interface=eth0
# worker localhost
[zeek-worker-lo]
type=worker
host=localhost
interface=lo完了したら、ファイルを保存して、エディタを終了します。
次に、以下の’ zeekctl ‘コマンドを実行して、Zeekの構文を確認します。適切な設定があれば、出力に’ scripts are ok ‘と表示されます。
zeekctl check
次に、’ deploy ‘コマンドを実行して、Zeekのインストールを展開します。これにより、Zeekのlogger、manager、proxy、およびworkersが起動します。
zeekctl deploy
以下のコマンドで各Zeekコンポーネントを確認できます。
zeekctl status以下の出力では、各Zeekコンポーネントが実行中であることがわかります。これは、Zeekクラスター単一ノードの展開が成功したことを意味します。

zeek-cutを使用してZeekログを解析する
Zeekをインストールして展開したので、ネットワークのログファイルが’ /opt/zeek/logs/current ‘ディレクトリに生成されます。知っておくべき複数のZeekログファイルがあります。このセクションでは、’zeek-cut’ユーティリティを使用してTSV(タブ区切り値)形式でログを生成する方法を学びます。
以下の’ls’コマンドでZeekログディレクトリ’ /opt/zeek/logs/current ‘を確認します。
ls -ah /opt/zeek/logs/current/以下のような複数のログファイルが表示されます:
- conn.log: TCPおよびUDPの接続ログ。このログファイルは、タイムスタンプ、接続の持続時間、サービスなどの最も有用な情報を提供します。
- dns.log: DNS(ドメインネームシステム)ログファイル
- http.log: ハイパーテキスト転送プロトコル(HTTP)ログ
- ssh.log: SSH接続を追跡するためのセキュアシェル(SSH)ログ。
- ssl.log: HTTPSログも含むセキュアソケットレイヤー(SSL)ログ
次に、’ /opt/zeek/logs/current ‘ディレクトリに移動し、’ cat ‘コマンドを実行してZeekログを表示し、出力を’ zeek-cut ‘コマンドでパイプしてTSV(タブ区切り値)形式に解析します。
cd /opt/zeek/logs/current/
cat dns.log | zeek-cut id.orig_h query answers
cat dns.log | zeek-cut query answers id.orig_hこの例では、’ id.orig_h ‘、’ query ‘、および’ answers ‘のフィールドからの値を表示します。

また、以下のように’ zeek-cut ‘コマンドを使用して、TSVログを処理し、同様の出力を得ることもできます。
zeek-cut id.orig_h query answers < dns.log
Zeekの出力をJSONに設定する
Zeekは、TSVやJSONなどの複数のログ形式をサポートしています。このセクションでは、ZeekログをJSON形式で生成する方法を学びます。その後、’jq’コマンドラインでJSONログを解析して、ログを簡単に読む方法を学びます。
以下の’ nano ‘エディタでZeek設定’/opt/zeek/share/zeek/site/local.zeek’を開きます。
sudo nano /opt/zeek/share/zeek/site/local.zeek以下の行のコメントを解除して、出力ログをJSONに有効にします。
@load policy/tuning/json-logsファイルを保存して、エディタを終了します。
次に、以下の’ zeekctl ‘コマンドを実行して、変更を適用して展開します。プロセスが完了すると、ZeekによってJSONログ形式が生成されます。
zeekctl deployZeekの展開中に以下の出力が表示されます。

次に、以下の’ cat ‘コマンドを実行して、Zeekログファイルを確認します。Zeekログが現在JSON形式になっていることがわかります。
cat /opt/zeek/logs/current/dns.logjqでZeek JSON形式を解析する
以下の’ apt ‘コマンドで’ jq ‘パッケージをインストールします。
sudo apt install jq -yインストールが完了したら、’cd’コマンドで’/opt/zeek/logs/current’ディレクトリに移動します。
cd /opt/zeek/logs/current/JSON形式のログを解析するには、以下の’jq’コマンドを実行します。
jq . dns.log
コンパクトな出力が必要な場合は、以下のように’-c’オプションを使用します。
jq . -c dns.log最後に、以下の’jq’コマンドでJSONログファイルを指定することもできます。
jq -c '[."id.orig_h", ."query", ."answers"]' dns.log
結論
おめでとうございます!Ubuntu 24.04サーバーにZeekネットワーク監視ツールのインストールが完了しました。単一ノード/サーバーでのZeekクラスターモードの展開、TSV(タブ区切り値)形式での’ zeek-cut ‘ユーティリティを使用したZeekログの解析、JSON形式でのZeekログの生成、’jq’ユーティリティを使用したJSONログの解析を学びました。ここから、JSONログやZeekログをGraylogやELK/EFKスタックなどの集中ログシステムに送信する次のステップに進むことができます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。