Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールをインストールする方法
Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールをインストールする方法
このページで
- 前提条件
- マルコムシステムユーザーを作成する
- MalcolmをUbuntu 22.04にインストールする
- マルコムを設定する
- マルコム管理者アカウントを作成する
- マルコムのDockerイメージをプルする
- マルコムサービスを開始する
- マルコムにアクセスする
Malcolmはシンプルで使いやすく、強力なネットワークトラフィック分析ツールです。PCAPファイルやZeekログなどのアーティファクトをキャプチャすることができます。Malcolmは、互いに連携するフレームワークを提供し、パーツの合計以上の価値を持たせます。Malcolmの簡単で柔軟なデプロイメントと堅牢なツールの組み合わせは、ネットワークセキュリティの分野におけるギャップを埋め、公共および民間の両セクターの多くの人々に高度なネットワークトラフィック分析を利用可能にします。
この記事では、Ubuntu 22.04にMalcolmネットワークトラフィック分析ツールをインストールする方法を紹介します。
前提条件
- Ubuntu 22.04を実行しているサーバー。
- 最低16GBのRAMと4つのCPUコアが必要です。
- サーバーにはルートパスワードが設定されています。
マルコムシステムユーザーを作成する
まず、Malcolmを実行するための専用ユーザーアカウントを作成する必要があります。以下のコマンドで作成できます:
useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm次に、以下のコマンドでユーザーのパスワードを設定します:
passwd malcolm次に、次のコマンドを使用してマルコムユーザーのUIDを確認します。
id malcolm
次の出力が表示されるはずです:
uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)
MalcolmをUbuntu 22.04にインストールする
まず、ユーザーをマルコムに切り替え、次のコマンドを使用してマルコムの最新バージョンをダウンロードします:
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をインストールした後、次のコマンドを使用して設定する必要があります。
sudo ./scripts/install.py --configureマルコム設定中に、いくつかの質問が求められます。以下のようにすべての質問に答えてください:
- マルコムプロセスはUID 1000およびGID 1000として実行されます。これで大丈夫ですか? (Y/n): Y
- OpenSearchに10g、Logstashに3gを設定しています。これで大丈夫ですか?はい
- Logstashパイプライン用に3人の作業者を設定します。これでいいですか? (Y/n): はい
- システムまたはDockerデーモンの再起動時にマルコムを再起動しますか?はい、次に、デフォルトオプションであるunless-stoppedを選択します。
- MalcolmをHTTPSで設定するか選択してください: はい
- マルコムがプロキシの背後で実行するかどうかを選択してください: いいえ
- ネットワーキングを選択: デフォルトを受け入れるには、ただ入力します。LDAPを選択: いいえ
- /opt/malcolm/Malcom/opensearch-backupにOpenSearchインデックスのスナップショットをローカルに保存しますか?はい
- OpenSearchインデックススナップショットを圧縮することを選択: はい
- データベースが特定のサイズを超えたときに最も古いインデックスを削除するかどうか: いいえ
- ログ内の送信元および宛先IPアドレスについて、ローカルで逆DNSルックアップを実行しますか?: いいえ
- MACアドレスのハードウェアベンダーOUIルックアップ: はい
- いくつかのフィールドで文字列のランダムネススコアリングを実施する: はい
- 外部ホストにOpenSearchポートを公開しない
- 外部ホストにLogstashポートを公開しない: いいえ
- 外部のOpenSearchインスタンスにLogstashのログを転送する: いいえ
- 外部ホストにFilebeatのTCPポートを公開しない
- Zeekでファイル抽出を有効にする: はい
- 抽出動作として「興味深い」を選択します。ファイル保持方法を選択します:隔離
- ClamAVで抽出されたファイル/PEファイルをスキャンします: はい
- Yaraでスキャンされたファイル/PEファイル: はい
- CapaでPEファイルをスキャンして抽出されたファイル: はい
- VirusTotalで抽出されたファイルハッシュを調べる:いいえ
- 定期的に更新されたスキャナーの署名をダウンロードします: はい
- マルコムはネットワークトラフィックをPCAPファイルにキャプチャするべきです: はい
- Malcolm がネットワークトラフィックを使用するキャプチャインターフェイスを指定してください(カンマ区切り):eth0
- netsniff-ngを使用してパケットをキャプチャしますか? (Y/n): はい
- tcpdumpを使用してパケットをキャプチャしますか? (はい/いいえ): いいえ
- キャプチャフィルター(tcpdumpのようなフィルター式; すべてのトラフィックをキャプチャするには空白のままにしてください):Elasticsearch(ポート9200)、Logstash(5044)、Arkime(8005)に関連するトラフィックを無効にできます:ポート9200ではなく、ポート5044ではなく、ポート8005ではない
- キャプチャインターフェイスハードウェアオフロードを無効にし、リングバッファサイズを調整しますか?(y/N):n
マルコムの設定が完了したら、設定を適用するためにシステムを再起動してください。
sudo rebootマルコム管理者アカウントを作成する
次に、Malcolmウェブインターフェースにアクセスするための管理者アカウントを作成する必要があります。
まず、ユーザーをマルコムに切り替え、次のコマンドを使ってマルコムディレクトリに移動します:
su - malcolm
cd ~/Malcolm
次に、管理者アカウントを作成するために次のコマンドを実行します:
./scripts/auth_setup管理者アカウントを作成するために、以下のようにすべての質問に答えてください:
- ローカルのMalcolmアクセス用のストア管理者のユーザー名/パスワードですか?はい
- 管理者パスワードとユーザー名を設定します。
- (再)生成自己署名のSSL証明書をウェブトラフィックHTTPS用に: はい
- リモートログフォワーダーの自己署名証明書を(再)生成します: はい
- Logstashイベントを外部のOpenSearchインスタンスに転送するためのユーザー名/パスワードを保存しますか?いいえ。メールアラート送信者アカウントのユーザー名/パスワードを保存しますか?いいえ。
マルコムの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
マルコムサービスを開始する
この時点で、マルコムに必要なすべてのコンポーネントが準備できました。以下のコマンドを使用してマルコムサービスを開始できます:
./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 OpenSearch ダッシュボードには、URL https://your-server-ip/dashboards/ を使用してアクセスできるようになりました。管理者のユーザー名とパスワードを入力するよう求められます:
管理者のユーザー名とパスワードを入力し、サインインボタンをクリックしてください。次の画面でOpenSearchダッシュボードが表示されるはずです。
マルコムキャプチャファイルとログアーカイブアップロード画面にアクセスするには、URL https://your-server-ip/upload/ を入力してください。
ホストとサブネット名のマッピングエディターにアクセスするには、URL https://your-server-ip/name-map-ui/ を入力してください。
アカウント管理画面にアクセスするには、URL https://your-server-ip:488/ を使用してください。
おめでとうございます! Ubuntu 22.04 に Malcolm ネットワークトラフィック分析ツールを正常にインストールし、設定しました。





