このチュートリアルに従って、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする方法を学習してください。 マルコム 完全なパケット キャプチャ アーティファクト (PCAP ファイル) と Zeek ログ用のネットワーク トラフィック分析ツール スイートです。 PCAP ファイルまたは Zeek ログは、ブラウザーを介して Malcolm にアップロードしたり、フォワーダーを介して転送したり、ライブ トラフィックをキャプチャしたり、OpenSearch ダッシュボードまたは Arkime を介して視覚化するためにトラフィックを解析および正規化したりできます。
Malcolm ネットワーク トラフィック分析ツールとその機能の詳細については、そのページをご覧ください。
Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする
Malcolm は、それらを Linux システムに簡単に展開するために使用できるスクリプトを提供します。
Malcolm インストール スクリプトを入手するには、2 つの方法があります。
- どちらかをダウンロードすることで
install.py
そしてそのmalcolm_YYYYMMDD_HHNNSS_xxxxxxx.tar.gz
から Malcolm Github リリース ページ。 - または、Malcolm Github リポジトリのクローンを作成するだけです。
このチュートリアルでは、2 番目の方法を使用して、Malcolm ネットワーク トラフィック分析ツールを Ubuntu 22.04 にインストールします。
したがって、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールするには、
システム要求
マルコムの展開を確認する システム要求。
私たちの環境では、これらは使用しているシステム リソースです。
CPU コア;
sudo dmidecode -t 4 | grep -i 'core count'
Core Count: 4
羊;
free -h
total used free shared buff/cache available Mem: 15Gi 14Gi 153Mi 7.0Mi 723Mi 372Mi Swap: 0B 0B 0B
ディスクスペース;
df -hT -P /
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 150G 14G 131G 10% /
マルコム システム アカウントの作成
Malcolm を実行するためのアカウントを作成します。
useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm
passwd malcolm
以下で Malcolm を構成するときに必要になるため、ユーザーの ID を取得します。
id malcolm
サンプル出力;
uid=1001(malcolm) gid=1001(malcolm) groups=1001(malcolm),27(sudo)
システム アップデートを実行します。
システム パッケージ キャッシュが最新であることを確認します。
sudo apt update
Ubuntu 22.04 に Git パッケージをインストールします。
Malcolm Github リポジトリのクローンを作成するには、git が必要です。
sudo apt install git
Malcolm Github リポジトリのクローンを作成する
以下のコマンドを実行して、Malcolm Github リポジトリのクローンを作成します。
su - malcolm
git clone https://github.com/idaholab/Malcolm
必要な Malcolm パッケージをインストールし、システム チューナブルをセットアップする
次に、複製された Malcolm Github リポジトリ ディレクトリに移動します。
cd Malcolm
Malcolm インストール スクリプトは、scripts ディレクトリの下にあります。 したがって、インストールを開始するには、以下のコマンドを実行します。
sudo ./scripts/install.py
Malcolm は Docker 上で実行されます。 したがって、スクリプトが実行されると、
- 必要な Docker パッケージをインストールするように求められます。 プロンプトが表示されたら、同意してインストールを続行します。
- Docker パッケージのインストールが完了すると、root 以外のユーザー アカウントを Docker グループに追加するかどうかを尋ねられます。 そしてぜひ、標準ユーザーアカウントをグループに追加してください!
- 次に、Docker Compose をインストールします。
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: kifarunix Add another non-root user to the "docker" group?: no "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.swappiness adjusts the preference of the system to swap vs. drop runtime memory pages vm.swappiness= 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 の構成に進みます。
sudo ./scripts/install.py --configure
構成の開始時。
- Malcolm を実行するユーザーを選択します。 作成しました マルコム 上記のユーザー アカウントで、その UID と GID は 1001. したがって、UID/GID 1000 のユーザーにはノーと言います。
Malcolm processes will run as UID 1000 and GID 1000. Is this OK? (Y/n): n
- malcolm システム アカウントのユーザー ID とグループ ID を入力します。
Enter user ID (UID) for running non-root Malcolm processes; 1001
Enter group ID (GID) for running non-root Malcolm processes; 1001
確認;
Malcolm processes will run as UID 998 and GID 998. Is this OK? yes
- OpenSearch と logstash の設定。
Setting 10g for OpenSearch and 3g for Logstash. Is this OK? yes
Setting 3 workers for Logstash pipelines. Is this OK? (Y/n): yes
- システムまたは Docker の再起動時に Malcolm を再起動します。
Restart Malcolm upon system or Docker daemon restart? Yes
Malcolm をいつ再起動するかを選択します。 ここには 4 つのオプションがあります。 いいえ、失敗時、常に、停止しない限り. デフォルトのオプションを選択し、 停止しない限り.
- Malcolm を HTTPS でセットアップするかどうかを選択します。 私たちは選択します はい (SSL 証明書は後のステップで生成されます)
- Malcolm をプロキシの背後で実行するかどうかを選択します。 キャディ、Traefik などのいくつかのオプションが与えられます。 いいえ.
- [デフォルト ネットワーク]で、Enter キーを押してデフォルトを受け入れます。
- LDAP を使用するかどうかを尋ねられたら、選択します。 番号 今のところ。
- OpenSearch インデックス スナップショットを /opt/malcolm/Malcom/opensearch-backup にローカルに保存しますか? デフォルトを受け入れるか、単に新しいパスを入力するかを選択できます。
/opt/malcolm/
. - OpenSearch インデックス スナップショットの圧縮を選択します (はい)
- データベースが特定のサイズを超えたときに最も古いインデックスを削除するように求められたら、データが失われないように[いいえ]を選択します。
- Suricata を使用してすべての PCAP ファイルを自動的に分析する: はい
- Zeek ですべての PCAP ファイルを自動的に分析します。 はい
- 無効にする ログ内のソース IP アドレスと宛先 IP アドレスをローカルでリバース DNS ルックアップします。
- 有効 MAC アドレスのハードウェア ベンダー OUI ルックアップ。
- 一部のフィールドで文字列ランダム性スコアリングを実行します。 はい
- OpenSearch ポートを外部ホストに公開します。 番号
- Logstash ポートを外部ホストに公開します。 番号
- Logstash ログを外部 OpenSearch インスタンスに転送します。 番号
- Filebeat TCP ポートを外部ホストに公開します。 番号
- Zeek でファイル抽出を有効にします。 はい
- 選ぶ 面白い 抽出動作として。
- 選択する 検疫 ファイルの保存方法として。
- 抽出されたファイル/PE ファイルを ClamAV でスキャンします。 はい
- 解凍したファイル/PE ファイルを Yara でスキャンします。 はい
- 抽出されたファイル/PE ファイルを Capa でスキャンします。 はい
- 抽出されたファイル ハッシュを VirusTotal で検索します。 番号
- 更新されたスキャナー署名を定期的にダウンロードします。 はい
- Malcolm はネットワーク トラフィックを PCAP ファイルにキャプチャする必要があります。 はい
- Malcolm がネットワーク トラフィックに使用するキャプチャ インターフェイスを (カンマ区切りで) 指定します。 enp0s8
- netsniff-ng を使用してパケットをキャプチャしますか? (はい/いいえ): はい
- tcpdump を使用してパケットをキャプチャしますか? (y/N): 番号
- 次に、Elasticsearch (ポート 9200)、Logstash (5044)、Arkime (8005) に関連するトラフィックを無効にします。
not port 9200 and not port 5044 and not port 8005
.
Malcolm が /home/$USER/Malcolm にインストールされました。
Malcolm を開始および停止し、認証関連の設定を変更するためのスクリプトは、/home/$USER/Malcolm/scripts にあります。
システムの再起動を実行して、システムの変更の一部を適用します。
sudo systemctl reboot -i
マルコム ユーザー アカウントの作成
Malcolm Github リポジトリ ディレクトリに戻ります。
su - malcolm
cd ~/Malcolm
認証セットアップ スクリプトを実行します。
./scripts/auth_setup
- 管理者のユーザー名/パスワードを保存する 為に ローカル マルコム・アクセス? はい
- 管理者パスワードとユーザー名を設定します。
- Web トラフィック HTTPS 用の自己署名 SSL 証明書を (再) 生成します。 はい
- リモート ログ フォワーダーの自己署名証明書を (再) 生成します。 はい
- Logstash イベントをセカンダリの外部 OpenSearch インスタンスに転送するためのユーザー名/パスワードを保存します。 番号.
- メールアラート送信者アカウントのユーザー名/パスワードを保存します (https://opensearch.org/docs/latest/monitoring-plugins/alerting/monitors/#authenticate-sender-account を参照): 番号
Malcolm Docker イメージのダウンロード
次に、以下のコマンドを実行して、Docker ハブから Malcolm Docker イメージをダウンロードします。
cd ~/Malcolm
docker-compose pull
インターネットの速度によっては、イメージのプルが完了するまでに数分かかる場合があります。
必要な画像がすべてダウンロードされたら、次のように一覧表示できます。
docker images
サンプル出力;
REPOSITORY TAG IMAGE ID CREATED SIZE malcolmnetsec/zeek 6.1.0 f866620ebd58 3 weeks ago 1.29GB malcolmnetsec/dashboards 6.1.0 13775018c809 3 weeks ago 1.08GB malcolmnetsec/arkime 6.1.0 5b7f6018db22 3 weeks ago 794MB malcolmnetsec/logstash-oss 6.1.0 a8b93b43dbb3 3 weeks ago 1.46GB malcolmnetsec/suricata 6.1.0 fa25601e29c4 3 weeks ago 285MB malcolmnetsec/filebeat-oss 6.1.0 b4d1c83bf3de 3 weeks ago 648MB malcolmnetsec/file-monitor 6.1.0 fa9438234b42 3 weeks ago 589MB malcolmnetsec/nginx-proxy 6.1.0 bb9720d9d456 3 weeks ago 124MB malcolmnetsec/file-upload 6.1.0 fdbd62ce5a92 3 weeks ago 259MB malcolmnetsec/htadmin 6.1.0 623e193fd419 3 weeks ago 242MB malcolmnetsec/opensearch 6.1.0 a1bbcaae7647 3 weeks ago 1.21GB malcolmnetsec/pcap-monitor 6.1.0 0e0cb91f32a1 3 weeks ago 214MB malcolmnetsec/api 6.1.0 54a99d983b37 3 weeks ago 173MB malcolmnetsec/pcap-capture 6.1.0 9a1664dc488f 3 weeks ago 121MB malcolmnetsec/freq 6.1.0 e4691604218f 3 weeks ago 131MB malcolmnetsec/dashboards-helper 6.1.0 ef14087c003d 3 weeks ago 169MB malcolmnetsec/name-map-ui 6.1.0 90f49b94bfe3 3 weeks ago 123MB
マルコム サービスの実行
これで、スタートアップ スクリプトを使用して Malcolm サービスを開始できます。 ./scripts/start
.
このスクリプトは、開始、停止、再起動、Malcolm データのワイプなどに使用できます。
./scripts/start --help
usage: startMalcolm control script options: -v [DEBUG], --verbose [DEBUG] Verbose output -f , --file docker-compose YML file -s , --service docker-compose service (only for status and logs operations) -l [CMDLOGS], --logs [CMDLOGS] Tail Malcolm logs --start [CMDSTART] Start Malcolm --restart [CMDRESTART] Stop and restart Malcolm --stop [CMDSTOP] Stop Malcolm --wipe [CMDWIPE] Stop Malcolm and delete all data --auth [CMDAUTHSETUP] Configure Malcolm authentication --status [CMDSTATUS] Display status of Malcolm components
引数なしで start スクリプトを実行するだけで、Malcolm を開始できます。
./scripts/start
必要なすべての Malcolm サービスを開始するには、数分かかります。
開始スクリプトは、フォアグラウンドで Malcolm を起動し、コンソールにデバッグ メッセージを入力します。
Started Malcolm In a few minutes, Malcolm services will be accessible via the following URLs: ------------------------------------------------------------------------------ - Arkime: https://localhost/ - OpenSearch Dashboards: https://localhost/dashboards/ - PCAP upload (web): https://localhost/upload/ - PCAP upload (sftp): sftp://[email protected]:8022/files/ - Host and subnet name mapping editor: https://localhost/name-map-ui/ - Account management: https://localhost:488/ NAME COMMAND SERVICE STATUS PORTS malcolm-api-1 "/usr/local/bin/dock…" api running (starting) 5000/tcp malcolm-arkime-1 "/usr/local/bin/dock…" arkime running (starting) 8081/tcp malcolm-dashboards-1 "/usr/local/bin/dock…" dashboards running (starting) 5601/tcp malcolm-dashboards-helper-1 "/usr/local/bin/dock…" dashboards-helper running (starting) 28991/tcp malcolm-file-monitor-1 "/usr/local/bin/dock…" file-monitor running (starting) 8440/tcp malcolm-filebeat-1 "/usr/local/bin/dock…" filebeat running (starting) 127.0.0.1:5045->5045/tcp malcolm-freq-1 "/usr/local/bin/dock…" freq running (starting) 10004/tcp malcolm-htadmin-1 "/usr/local/bin/dock…" htadmin running (starting) 80/tcp malcolm-logstash-1 "/usr/local/bin/dock…" logstash running (starting) 127.0.0.1:5044->5044/tcp malcolm-name-map-ui-1 "/usr/local/bin/dock…" name-map-ui running (starting) 8080/tcp malcolm-nginx-proxy-1 "/usr/local/bin/dock…" nginx-proxy running (starting) 0.0.0.0:443->443/tcp, 0.0.0.0:488->488/tcp, 127.0.0.1:5601->5601/tcp, 127.0.0.1:9200->9200/tcp malcolm-opensearch-1 "/usr/local/bin/dock…" opensearch running (starting) 9650/tcp malcolm-pcap-capture-1 "/usr/local/bin/dock…" pcap-capture running malcolm-pcap-monitor-1 "/usr/local/bin/dock…" pcap-monitor running (starting) 30441/tcp malcolm-suricata-1 "/usr/local/bin/dock…" suricata running (starting) 8711/tcp malcolm-upload-1 "/usr/local/bin/dock…" upload running (starting) 127.0.0.1:8022->22/tcp malcolm-zeek-1 "/usr/local/bin/dock…" zeek running (starting) ....
プレス Ctrl+z マルコムをバックグラウンドで実行します。 入力するだけで、いつでも前面に表示できます fg.
Malcolm コンテナのステータスを確認します。
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1a164697dc9d malcolmnetsec/nginx-proxy:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 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 d94fdbdc5edc malcolmnetsec/filebeat-oss:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 127.0.0.1:5045->5045/tcp malcolm-filebeat-1 41a1664e9863 malcolmnetsec/suricata:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 8711/tcp malcolm-suricata-1 18ddca5a001a malcolmnetsec/dashboards:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 5601/tcp malcolm-dashboards-1 6cc30e2dc8ea malcolmnetsec/file-upload:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 80/tcp, 127.0.0.1:8022->22/tcp malcolm-upload-1 21de5caca01e malcolmnetsec/zeek:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) malcolm-zeek-1 c7d9b3da48e8 malcolmnetsec/dashboards-helper:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 28991/tcp malcolm-dashboards-helper-1 d41224f2d9fc malcolmnetsec/logstash-oss:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 9001/tcp, 127.0.0.1:5044->5044/tcp, 9600/tcp malcolm-logstash-1 3de2293aac1b malcolmnetsec/arkime:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 8000/tcp, 8005/tcp, 8081/tcp malcolm-arkime-1 286a51eff770 malcolmnetsec/pcap-monitor:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 30441/tcp malcolm-pcap-monitor-1 9372ec08a576 malcolmnetsec/file-monitor:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 3310/tcp, 8440/tcp malcolm-file-monitor-1 13cb9b77965d malcolmnetsec/api:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 5000/tcp malcolm-api-1 dd079184f941 malcolmnetsec/pcap-capture:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes malcolm-pcap-capture-1 a00f79a8e1b9 malcolmnetsec/htadmin:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 80/tcp malcolm-htadmin-1 17750ddd1a72 malcolmnetsec/name-map-ui:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 8080/tcp malcolm-name-map-ui-1 add53463e7f8 malcolmnetsec/opensearch:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 1 second (health: starting) 9200/tcp, 9300/tcp, 9600/tcp, 9650/tcp malcolm-opensearch-1 b84ee0a208a8 malcolmnetsec/freq:6.1.0 "/usr/local/bin/dock…" 9 minutes ago Up 9 minutes (healthy) 10004/tcp malcolm-freq-1
かなりの数のポートが公開されています。
sudo ss -atlnp | grep -i docker
LISTEN 0 65535 0.0.0.0:488 0.0.0.0:* users:(("docker-proxy",pid=8971,fd=4)) LISTEN 0 65535 127.0.0.1:9200 0.0.0.0:* users:(("docker-proxy",pid=8833,fd=4)) LISTEN 0 65535 127.0.0.1:5044 0.0.0.0:* users:(("docker-proxy",pid=8307,fd=4)) LISTEN 0 65535 127.0.0.1:5045 0.0.0.0:* users:(("docker-proxy",pid=6610,fd=4)) LISTEN 0 65535 127.0.0.1:8022 0.0.0.0:* users:(("docker-proxy",pid=6969,fd=4)) LISTEN 0 65535 0.0.0.0:443 0.0.0.0:* users:(("docker-proxy",pid=9030,fd=4)) LISTEN 0 65535 127.0.0.1:5601 0.0.0.0:* users:(("docker-proxy",pid=8922,fd=4))
したがって、ブラウザ経由でさまざまな Malcolm サービスにアクセスできます。 (localhost をシステムの IP アドレスに置き換えることができます);
- アルキメ: https://localhost/
- OpenSearch ダッシュボード: https://localhost/dashboards/
- PCAP アップロード (ウェブ): https://localhost/upload/
- PCAP アップロード (sftp): sftp://[email protected]:8022/ファイル/
- ホストとサブネットのネーム マッピング エディター: https://localhost/name-map-ui/
- アカウント管理: https://localhost:488/
マルコム・アーキメのウェブインターフェース
OpenSearch ダッシュボード
マルコム キャプチャ ファイルとログ アーカイブのアップロード ページ。
ホストとネットワーク セグメント名のマッピング。
アカウント管理;
これで、Malcolm を使用してネットワーク トラフィックの分析を開始できます。
今のところ、Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールするのに必要なことはこれだけです。
参考文献。
その他のチュートリアル
Debian 11 に Arkime (Moloch) フル パケット キャプチャ ツールをインストールする
Zeek を使用してネットワーク トラフィックを分析する
Brim Security を使用してネットワーク トラフィックを分析する
The post Ubuntu 22.04 に Malcolm ネットワーク トラフィック分析ツールをインストールする appeared first on Gamingsym Japan.