ネットワーク分析 · 4 min read · Oct 29, 2025

Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールをインストールする方法

Malcolmはシンプルで使いやすく、強力なネットワークトラフィック分析ツールです。アーティファクト(PCAPファイル)やZeekログをキャプチャすることができます。Malcolmは相互接続されたフレームワークを提供し、その部分の合計以上の価値を持っています。Malcolmの簡単で柔軟な展開と堅牢なツールの組み合わせは、ネットワークセキュリティ分野の空白を埋め、公共および民間部門の多くの人々に高度なネットワークトラフィック分析を提供します。

この記事では、Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールをインストールする方法を示します。

前提条件

  • Ubuntu 22.04を実行しているサーバー。
  • 最低16GBのRAMと4つのCPUコア。
  • サーバーにルートパスワードが設定されていること。

Malcolmシステムユーザーの作成

まず、Malcolmを実行するための専用ユーザーアカウントを作成する必要があります。次のコマンドで作成できます:

useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm

次に、次のコマンドでユーザーパスワードを設定します:

passwd malcolm

次に、次のコマンドでMalcolmユーザーのUIDを確認します:

id malcolm

次の出力が表示されるはずです:

uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)

Malcolmのインストール Ubuntu 22.04

まず、Malcolmにユーザーを切り替え、次のコマンドでMalcolmの最新バージョンをダウンロードします:

su - malcolm  
git clone https://github.com/idaholab/Malcolm

ダウンロードが完了したら、ダウンロードしたディレクトリに移動し、次のコマンドでMalcolmのインストールを開始します:

cd Malcolm  
sudo ./scripts/install.py

インストール中に、以下のようにいくつかの質問が表示されます:

Installing required packages: ['apache2-utils', 'make', 'openssl', 'python3-dialog']

"docker info" failed, attempt to install Docker? (Y/n): Y

Attempt to install Docker using official repositories? (Y/n): Y
Installing required packages: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']


Installing docker packages: ['docker-ce', 'docker-ce-cli', 'containerd.io']
Installation of docker packages apparently succeeded

Add a non-root user to the "docker" group?: Y

Enter user account: malcolm

Add another non-root user to the "docker" group?: n

"docker-compose version" failed, attempt to install docker-compose? (Y/n): Y

Install docker-compose directly from docker github? (Y/n): Y
Download and installation of docker-compose apparently succeeded


fs.file-max increases allowed maximum for file handles
fs.file-max= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_watches increases allowed maximum for monitored files
fs.inotify.max_user_watches= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_queued_events increases queue size for monitored files
fs.inotify.max_queued_events= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


fs.inotify.max_user_instances increases allowed maximum monitor file watchers
fs.inotify.max_user_instances= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.max_map_count increases allowed maximum for memory segments
vm.max_map_count= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y


net.core.somaxconn increases allowed maximum for socket connections
net.core.somaxconn= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_background_ratio defines the percentage of system memory fillable with "dirty" pages before flushing
vm.dirty_background_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

vm.dirty_ratio defines the maximum percentage of dirty system memory before committing everything
vm.dirty_ratio= appears to be missing from /etc/sysctl.conf, append it? (Y/n): Y

/etc/security/limits.d/limits.conf increases the allowed maximums for file handles and memlocked segments
/etc/security/limits.d/limits.conf does not exist, create it? (Y/n): Y

Malcolmがインストールされたら、次のステップに進むことができます。

Malcolmの設定

Malcolmをインストールした後、次のコマンドを使用して設定する必要があります:

sudo ./scripts/install.py --configure

Malcolmの設定中に、いくつかの質問が表示されます。以下のようにすべての質問に答えてください:

  • MalcolmプロセスはUID 1000およびGID 1000として実行されます。これでよろしいですか? (Y/n): Y
  • OpenSearchに10g、Logstashに3gを設定します。これでよろしいですか? yes
  • Logstashパイプラインに3つのワーカーを設定します。これでよろしいですか? (Y/n): yes
  • システムまたはDockerデーモンの再起動時にMalcolmを再起動しますか? はい その後、デフォルトオプションを選択します、unless-stopped。
  • MalcolmをHTTPSで設定するかどうかを選択します: はい
  • Malcolmがプロキシの背後で実行されるかどうかを選択します: いいえ
  • ネットワーキングを選択します: デフォルトを受け入れるにはそのままEnterを押します。LDAPを選択します: いいえ
  • OpenSearchインデックススナップショットを/opt/malcolm/Malcom/opensearch-backupにローカルに保存しますか? はい
  • OpenSearchインデックススナップショットを圧縮するかどうかを選択します: はい
  • データベースが特定のサイズを超えたときに最も古いインデックスを削除するかどうか: いいえ
  • ログ内のソースおよび宛先IPアドレスの逆DNSルックアップ: いいえ
  • MACアドレスのハードウェアベンダーOUIルックアップ: はい
  • 一部のフィールドで文字列のランダム性スコアリングを実行します: yes
  • OpenSearchポートを外部ホストに公開しますか: いいえ
  • Logstashポートを外部ホストに公開しますか: いいえ
  • Logstashログを外部OpenSearchインスタンスに転送しますか: いいえ
  • Filebeat TCPポートを外部ホストに公開しますか: いいえ
  • Zeekを使用してファイル抽出を有効にします: はい
  • 抽出動作として興味深いものを選択します。ファイル保存方法を選択します: quarantine
  • 抽出されたファイル/PEファイルをClamAVでスキャンします: はい
  • 抽出されたファイル/PEファイルをYaraでスキャンします: はい
  • 抽出されたファイル/PEファイルをCapaでスキャンします: はい
  • 抽出されたファイルのハッシュをVirusTotalで照会しますか: いいえ
  • スキャナーの署名を定期的に更新しますか: はい
  • MalcolmがネットワークトラフィックをPCAPファイルにキャプチャするかどうか: はい
  • Malcolmがネットワークトラフィックを使用するインターフェースを指定します(カンマ区切り): eth0
  • netsniff-ngを使用してパケットをキャプチャしますか? (Y/n): yes
  • tcpdumpを使用してパケットをキャプチャしますか? (y/N): no
  • キャプチャフィルター(tcpdumpのようなフィルター式; すべてのトラフィックをキャプチャするには空白のままにします)(): Elasticsearch(ポート9200)、Logstash(5044)、Arkime(8005)に関連するトラフィックを無効にできます: not port 9200 and not port 5044 and not port 8005
  • キャプチャインターフェースのハードウェアオフロードを無効にし、リングバッファサイズを調整しますか? (y/N): n

Malcolmが設定されたら、設定を適用するためにシステムを再起動します。

sudo reboot

Malcolm管理アカウントの作成

次に、MalcolmのWebインターフェースにアクセスするための管理アカウントを作成する必要があります。

まず、Malcolmにユーザーを切り替え、次のコマンドを使用してMalcolmディレクトリに移動します:

su - malcolm  
cd ~/Malcolm

次に、次のコマンドを実行して管理者アカウントを作成します:

./scripts/auth_setup

管理者アカウントを作成するために、以下のようにすべての質問に答えてください:

  • ローカルMalcolmアクセス用の管理者ユーザー名/パスワードを保存しますか? yes
  • 管理者パスワードとユーザー名を設定します。
  • WebトラフィックHTTPS用の自己署名SSL証明書を(再)生成しますか: はい
  • リモートログフォワーダー用の自己署名証明書を(再)生成しますか: はい
  • 二次の外部OpenSearchインスタンスにLogstashイベントを転送するためのユーザー名/パスワードを保存しますか: いいえ。メールアラート送信者アカウントのユーザー名/パスワードを保存しますか: いいえ

Malcolm Dockerイメージのプル

次に、Docker Hubレジストリから必要なすべてのDockerイメージをダウンロードする必要があります。次のコマンドで全てをダウンロードできます:

docker-compose pull

すべてのイメージがダウンロードされたら、次のコマンドを使用してすべてのイメージを確認します:

docker images

次の出力が表示されるはずです:

REPOSITORY                        TAG       IMAGE ID       CREATED       SIZE
malcolmnetsec/filebeat-oss        6.2.0     5e9fa4c8ea2d   11 days ago   648MB
malcolmnetsec/arkime              6.2.0     4f4e6025c82d   11 days ago   793MB
malcolmnetsec/zeek                6.2.0     5b117ad2b4bb   11 days ago   1.4GB
malcolmnetsec/dashboards          6.2.0     9dcaff859eec   11 days ago   1.13GB
malcolmnetsec/logstash-oss        6.2.0     cf4d75dcf4af   11 days ago   1.64GB
malcolmnetsec/file-monitor        6.2.0     26227c3c7dc9   11 days ago   589MB
malcolmnetsec/nginx-proxy         6.2.0     3b8b5413b52e   11 days ago   121MB
malcolmnetsec/file-upload         6.2.0     2c704be24433   11 days ago   263MB
malcolmnetsec/api                 6.2.0     90f964b5d728   11 days ago   148MB
malcolmnetsec/suricata            6.2.0     cbdb091d2df4   11 days ago   274MB
malcolmnetsec/htadmin             6.2.0     2b55630700d1   11 days ago   242MB
malcolmnetsec/opensearch          6.2.0     9ccb4665bd6c   11 days ago   1.25GB
malcolmnetsec/pcap-monitor        6.2.0     d957d803bdbb   11 days ago   214MB
malcolmnetsec/freq                6.2.0     3959a9daa952   11 days ago   131MB
malcolmnetsec/dashboards-helper   6.2.0     7da9699a72b3   11 days ago   168MB
malcolmnetsec/pcap-capture        6.2.0     df63e8daa369   11 days ago   121MB
malcolmnetsec/name-map-ui         6.2.0     6bd6c7c58d36   11 days ago   120MB

Malcolmサービスの開始

この時点で、Malcolmに必要なすべてのコンポーネントが準備完了です。次のコマンドを使用してMalcolmサービスを開始できます:

./scripts/start

すべてのサービスが開始されるまでしばらく待ちます。すべてのサービスが開始されたら、次のコマンドを使用してすべての実行中のサービスを確認します:

docker ps -a

次の出力にすべての実行中のコンテナが表示されるはずです:

CONTAINER ID   IMAGE                                   COMMAND                  CREATED          STATUS                             PORTS                                                                                            NAMES
840ea2b0e9ad   malcolmnetsec/nginx-proxy:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          0.0.0.0:443->443/tcp, 127.0.0.1:5601->5601/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:9200->9200/tcp   malcolm-nginx-proxy-1
 dd5c8c63816c   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-suricata-1
3112e1bd8f73   malcolmnetsec/filebeat-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          127.0.0.1:5045->5045/tcp                                                                         malcolm-filebeat-1
c93cfe93ad7e   malcolmnetsec/file-upload:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp, 127.0.0.1:8022->22/tcp                                                                   malcolm-upload-1
18ee20b46f3c   malcolmnetsec/dashboards:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5601/tcp                                                                                         malcolm-dashboards-1
2c34206c06e4   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)                                                                                                           malcolm-zeek-1
41103ef99ce1   malcolmnetsec/logstash-oss:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp                                                     malcolm-logstash-1
0408f42a76c3   malcolmnetsec/dashboards-helper:6.2.0   "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          28991/tcp                                                                                        malcolm-dashboards-helper-1
3e78024620de   malcolmnetsec/arkime:6.2.0              "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8000/tcp, 8005/tcp, 8081/tcp                                                                     malcolm-arkime-1
58cd869beced   malcolmnetsec/pcap-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          30441/tcp                                                                                        malcolm-pcap-monitor-1
1040fa8bd6df   malcolmnetsec/file-monitor:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          3310/tcp, 8440/tcp                                                                               malcolm-file-monitor-1
25c83f14413d   malcolmnetsec/zeek:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-zeek-live-1
b321a96c0362   malcolmnetsec/api:6.2.0                 "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          5000/tcp                                                                                         malcolm-api-1
0f1f4ac023f9   malcolmnetsec/name-map-ui:6.2.0         "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          8080/tcp                                                                                         malcolm-name-map-ui-1
ba4d553cf6b5   malcolmnetsec/suricata:6.2.0            "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-suricata-live-1
e4637d0ec04d   malcolmnetsec/opensearch:6.2.0          "/usr/local/bin/dock…"   17 minutes ago   Up 13 minutes (health: starting)   9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp                                                           malcolm-opensearch-1
ac002e31d9be   malcolmnetsec/htadmin:6.2.0             "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          80/tcp                                                                                           malcolm-htadmin-1
7223d5244a7b   malcolmnetsec/pcap-capture:6.2.0        "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes                                                                                                                       malcolm-pcap-capture-1
971931b21788   malcolmnetsec/freq:6.2.0                "/usr/local/bin/dock…"   17 minutes ago   Up 17 minutes (unhealthy)          10004/tcp                                                                                        malcolm-freq-1

すべてのリスニングポートを次のコマンドを使用して確認することもできます:

ss -atlnp | grep -i docker

次の出力が表示されるはずです:

LISTEN 0      65535      127.0.0.1:5601       0.0.0.0:*    users:(("docker-proxy",pid=7480,fd=4))   
LISTEN 0      65535        0.0.0.0:488        0.0.0.0:*    users:(("docker-proxy",pid=7519,fd=4))   
LISTEN 0      65535      127.0.0.1:9200       0.0.0.0:*    users:(("docker-proxy",pid=7443,fd=4))   
LISTEN 0      65535      127.0.0.1:5044       0.0.0.0:*    users:(("docker-proxy",pid=6247,fd=4))   
LISTEN 0      65535      127.0.0.1:5045       0.0.0.0:*    users:(("docker-proxy",pid=7063,fd=4))   
LISTEN 0      65535      127.0.0.1:8022       0.0.0.0:*    users:(("docker-proxy",pid=6826,fd=4))   
LISTEN 0      65535        0.0.0.0:443        0.0.0.0:*    users:(("docker-proxy",pid=7567,fd=4))

Malcolmにアクセス

これで、Malcolm OpenSearchダッシュボードにアクセスできます。URLはhttps://your-server-ip/dashboards/です。管理者のユーザー名とパスワードを入力するように求められます:

管理者のユーザー名、パスワードを入力し、サインインボタンをクリックします。次の画面にOpenSearchダッシュボードが表示されるはずです:

Malcolmキャプチャファイルおよびログアーカイブアップロード画面にアクセスするには、URL https://your-server-ip/upload/を入力します。

ホストおよびサブネット名マッピングエディタにアクセスするには、URL https://your-server-ip/name-map-ui/を入力します。

アカウント管理画面にアクセスするには、URL https://your-server-ip:488/を使用します。

おめでとうございます!Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールを正常にインストールおよび設定しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。