Installazione software · 8 min read · Oct 29, 2025
Come installare lo strumento di analisi del traffico di rete Malcolm su Ubuntu 22.04

Malcolm è uno strumento di analisi del traffico di rete semplice, facile da usare e potente. È in grado di catturare artefatti (file PCAP) e log di Zeek. Malcolm fornisce un framework interconnesso che lo rende maggiore della somma delle sue parti. Il dispiegamento facile e flessibile di Malcolm e la robusta combinazione di strumenti colmano un vuoto nello spazio della sicurezza di rete e rendono l’analisi avanzata del traffico di rete accessibile a molti sia nel settore pubblico che privato.
In questo post, ti mostreremo come installare lo strumento di analisi del traffico di rete Malcolm su Ubuntu 22.04.
Prerequisiti
- Un server che esegue Ubuntu 22.04.
- Minimo 16 GB di RAM e 4 core CPU.
- Una password di root è configurata sul server.
Crea un utente di sistema Malcolm
Per prima cosa, dovrai creare un account utente dedicato per eseguire Malcolm. Puoi crearlo con il seguente comando:
useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolmSuccessivamente, imposta la password dell’utente con il seguente comando:
passwd malcolmSuccessivamente, controlla l’UID dell’utente Malcolm con il seguente comando:
id malcolmDovresti vedere il seguente output:
uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)Installa Malcolm su Ubuntu 22.04
Per prima cosa, passa all’utente Malcolm e scarica l’ultima versione di Malcolm utilizzando il seguente comando:
su - malcolm
git clone https://github.com/idaholab/MalcolmUna volta completato il download, cambia la directory nella directory scaricata e inizia a installare Malcolm utilizzando il seguente comando:
cd Malcolm
sudo ./scripts/install.pyDurante l’installazione, ti verranno poste diverse domande, come mostrato di seguito:
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): YUna volta installato Malcolm, puoi procedere al passaggio successivo.
Configura Malcolm
Dopo aver installato Malcolm, dovrai configurarlo utilizzando il seguente comando:
sudo ./scripts/install.py --configureDurante la configurazione di Malcolm, ti verranno poste diverse domande. Rispondi a tutte le domande come mostrato di seguito:
- I processi di Malcolm verranno eseguiti come UID 1000 e GID 1000. Va bene? (Y/n): Y
- Impostazione di 10g per OpenSearch e 3g per Logstash. Va bene? yes
- Impostazione di 3 worker per le pipeline di Logstash. Va bene? (Y/n): yes
- Riavviare Malcolm al riavvio del sistema o del demone Docker? Sì Poi, scegli l’opzione predefinita, unless-stopped.
- Scegli se configurare Malcolm con HTTPS: Sì
- Scegli se Malcolm verrà eseguito dietro un proxy: No
- Scegli networking: Basta premere invio per accettare le impostazioni predefinite. Scegli LDAP: No
- Memorizzare gli snapshot degli indici di OpenSearch localmente in /opt/malcolm/Malcom/opensearch-backup? Sì
- Scegli di comprimere gli snapshot degli indici di OpenSearch: Sì
- Vuoi eliminare gli indici più vecchi quando il database supera una certa dimensione: No
- Ricerca DNS inversa localmente per indirizzi IP sorgente e di destinazione nei log: No
- Ricerche OUI del fornitore hardware per indirizzi MAC: Sì
- Eseguire la valutazione della casualità delle stringhe su alcuni campi: yes
- Esporre la porta di OpenSearch agli host esterni: no
- Esporre la porta di Logstash agli host esterni: no
- Inoltrare i log di Logstash a un’istanza OpenSearch esterna: no
- Esporre la porta TCP di Filebeat agli host esterni: no
- Abilitare l’estrazione di file con Zeek: yes
- Scegli il comportamento di estrazione interessante. Scegli il metodo di conservazione dei file: quarantena
- Scansiona i file estratti/file PE con ClamAV: yes
- Scansiona i file estratti/file PE con Yara: yes
- Scansiona i file estratti/file PE con Capa: yes
- Cerca gli hash dei file estratti con VirusTotal: no
- Scarica periodicamente le firme degli scanner aggiornate: yes
- Malcolm deve catturare il traffico di rete in file PCAP: yes
- Specifica l’interfaccia di cattura (separata da virgole) su cui Malcolm utilizzerà il traffico di rete: eth0
- Catturare pacchetti utilizzando netsniff-ng? (Y/n): yes
- Catturare pacchetti utilizzando tcpdump? (y/N): no
- Espressione di filtro di cattura (espressione di filtro simile a tcpdump; lascia vuoto per catturare tutto il traffico) (): Puoi disabilitare il traffico relativo a Elasticsearch (porta 9200), Logstash (5044), Arkime(8005): not port 9200 and not port 5044 and not port 8005
- Disabilitare l’offloading hardware dell’interfaccia di cattura e regolare le dimensioni del buffer a anello? (y/N): n
Una volta configurato Malcolm, riavvia il sistema per applicare la configurazione.
sudo rebootCrea un account amministrativo per Malcolm
Successivamente, dovrai creare un account amministrativo per accedere all’interfaccia web di Malcolm.
Per prima cosa, passa all’utente Malcolm e naviga nella directory di Malcolm utilizzando il seguente comando:
su - malcolm
cd ~/MalcolmSuccessivamente, esegui il seguente comando per creare un account admin:
./scripts/auth_setupRispondi a tutte le domande come mostrato di seguito per creare un account admin:
- Memorizzare nome utente/password dell’amministratore per l’accesso locale a Malcolm? yes
- Imposta la password e il nome utente dell’amministratore.
- (Ri)genera certificati SSL autofirmati per il traffico web HTTPS: yes
- (Ri)genera certificati autofirmati per un inoltratore di log remoto: yes
- Memorizza nome utente/password per inoltrare eventi Logstash a un’istanza OpenSearch secondaria ed esterna: no. Memorizza nome utente/password per l’account mittente di avvisi email: no
Scarica le immagini Docker di Malcolm
Successivamente, dovrai scaricare tutte le immagini Docker richieste dal registro Docker Hub. Puoi scaricare tutto con il seguente comando:
docker-compose pullUna volta scaricate tutte le immagini, verifica tutte le immagini utilizzando il seguente comando:
docker imagesDovresti ottenere il seguente output:
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 120MBAvvia il servizio Malcolm
A questo punto, tutti i componenti richiesti per Malcolm sono pronti. Puoi ora avviare il servizio Malcolm utilizzando il seguente comando:
./scripts/startAspetta un po’ di tempo per avviare tutti i servizi. Una volta avviati tutti i servizi, verifica tutti i servizi in esecuzione utilizzando il seguente comando:
docker ps -aDovresti vedere tutti i contenitori in esecuzione nel seguente output:
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-1Puoi anche verificare tutte le porte in ascolto utilizzando il seguente comando:
ss -atlnp | grep -i dockerDovresti vedere il seguente output:
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))Accedi a Malcolm
Ora puoi accedere al dashboard di OpenSearch di Malcolm utilizzando l’URL https://your-server-ip/dashboards/. Ti verrà chiesto di fornire il tuo nome utente e password admin:

Fornisci il tuo nome utente admin, password e fai clic sul pulsante Accedi. Dovresti vedere il dashboard di OpenSearch nella seguente schermata:

Per accedere alla schermata di caricamento del file di cattura di Malcolm e dell’archivio log, digita l’URL https://your-server-ip/upload/.

Per accedere all’editor di mappatura dei nomi host e subnet, digita l’URL https://your-server-ip/name-map-ui/.

Per accedere alla schermata di gestione degli account, utilizza l’URL https://your-server-ip:488/


Congratulazioni! hai installato e configurato con successo lo strumento di analisi del traffico di rete Malcolm su Ubuntu 22.04.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.