Ricerca nel sito web

Come installare lo strumento di analisi del traffico di rete Malcolm su Ubuntu 22.04


Su questa pagina

  1. Prerequisiti
  2. Crea un utente di sistema Malcolm
  3. Installa Malcolm Ubuntu 22.04
  4. Configura Malcolm
  5. Crea un account amministratore Malcolm
  6. Tira le immagini di Malcolm Docker
  7. Avvia il servizio Malcolm
  8. Accedi a Malcolm

Malcolm è uno strumento di analisi del traffico di rete semplice, facile da usare e potente. È in grado di acquisire artefatti (file PCAP) e registri Zeek. Malcolm fornisce una struttura interconnessa che lo rende più grande della somma delle sue parti. L'implementazione facile e flessibile di Malcolm e la solida combinazione di strumenti colmano un vuoto nello spazio di sicurezza della rete e rendono l'analisi avanzata del traffico di rete accessibile a molti sia nel settore pubblico che in quello 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 CPU core.
  • Sul server è configurata una password di root.

Crea un utente di sistema Malcolm

Innanzitutto, 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 malcolm

Quindi, imposta la password dell'utente con il seguente comando:

passwd malcolm

Quindi, controlla l'UID dell'utente Malcolm con il seguente comando:

id malcolm

Dovresti vedere il seguente output:

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

Installa Malcolm Ubuntu 22.04

Innanzitutto, passa l'utente a Malcolm e scarica l'ultima versione di Malcolm utilizzando il seguente comando:

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

Una volta completato il download, cambia la directory nella directory scaricata e avvia l'installazione di Malcolm usando il seguente comando:

cd Malcolm
sudo ./scripts/install.py

Durante 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): Y

Una volta installato Malcolm, puoi procedere al passaggio successivo.

Configura Malcolm

Dopo aver installato Malcolm, dovrai configurarlo utilizzando il seguente comando:

sudo ./scripts/install.py --configure

Durante 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? (S/n): S
  • Impostazione di 10g per OpenSearch e 3g per Logstash. Va bene? sì
  • Impostazione di 3 worker per le pipeline Logstash. Va bene? (S/n): sì
  • Riavviare Malcolm al riavvio del sistema o del demone Docker? Sì Quindi, scegli l'opzione predefinita, a meno che non venga arrestato.
  • Scegli se configurare Malcolm con HTTPS: Sì
  • Scegli se Malcolm funzionerà dietro a un proxy: No
  • Scegli la rete: entra per accettare le impostazioni predefinite. Scegli LDAP: No
  • Memorizza gli snapshost dell'indice OpenSearch localmente in /opt/malcolm/Malcom/opensearch-backup? sì
  • Scegli di comprimere gli snapshot dell'indice OpenSearch: sì
  • Se si desidera eliminare gli indici più vecchi quando il database supera una certa dimensione: No
  • Ricerca DNS inversa a livello locale per gli indirizzi IP di origine e destinazione nei log: no
  • Ricerche OUI del fornitore di hardware per gli indirizzi MAC: sì
  • Esegui il punteggio di casualità delle stringhe su alcuni campi: sì
  • Esponi la porta OpenSearch a host esterni: no
  • Esponi la porta Logstash a host esterni: no
  • Inoltra i log di Logstash a un'istanza OpenSearch esterna: no
  • Esponi la porta TCP di Filebeat a host esterni: no
  • Abilita l'estrazione di file con Zeek: sì
  • Scegli interessante come comportamento di estrazione. Scegli il metodo di conservazione dei file: quarantena
  • Scansione di file estratti/file PE con ClamAV: sì
  • Scansione di file estratti/file PE con Yara: sì
  • Scansione di file estratti/file PE con Capa: sì
  • Cerca gli hash dei file estratti con VirusTotal: no
  • Scarica periodicamente le firme dello scanner aggiornate: sì
  • Malcolm dovrebbe acquisire il traffico di rete nei file PCAP: sì
  • Specifica le interfacce di acquisizione (separate da virgole) che Malcolm utilizzerà per il traffico di rete: eth0
  • Catturare i pacchetti utilizzando netsniff-ng? (S/n): sì
  • Catturare i pacchetti usando tcpdump? (s/n): no
  • Filtro di acquisizione (espressione di filtro simile a tcpdump; lasciare vuoto per acquisire tutto il traffico)(): è possibile disabilitare il traffico relativo a Elasticsearch (porta 9200), Logstash (5044), Arkime (8005): non porta 9200 e non porta 5044 e non la porta 8005
  • Disabilitare l'offload dell'hardware dell'interfaccia di acquisizione e regolare le dimensioni del ring buffer? (s/n): n

Una volta che Malcolm è stato configurato, riavvia il sistema per applicare la configurazione.

sudo reboot

Crea un account amministratore Malcolm

Successivamente, dovrai creare un account amministrativo per accedere all'interfaccia web di Malcolm.

Innanzitutto, cambia l'utente in Malcolm e vai alla directory Malcolm usando il seguente comando:

su - malcolm
cd ~/Malcolm

Successivamente, esegui il seguente comando per creare un account amministratore:

./scripts/auth_setup

Rispondi a tutte le domande come mostrato di seguito per creare un account amministratore:

  • Nome utente/password dell'amministratore del negozio per l'accesso locale a Malcolm? sì
  • Imposta la password e il nome utente dell'amministratore.
  • (Ri)genera certificati SSL autofirmati per il traffico web HTTPS: sì
  • (Ri)genera certificati autofirmati per un log forwarder remoto: sì
  • Memorizza nome utente/password per l'inoltro di eventi Logstash a un'istanza OpenSearch secondaria esterna: no. Memorizza nome utente/password per l'account del mittente dell'avviso e-mail: no

Estrai le immagini di Malcolm Docker

Successivamente, dovrai scaricare tutte le immagini Docker richieste dal registro Docker Hub. Puoi scaricare tutto con il seguente comando:

docker-compose pull

Una volta scaricate tutte le immagini, verifica tutte le immagini utilizzando il seguente comando:

docker images

Dovresti 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   120MB

Avvia il servizio Malcolm

A questo punto, tutti i componenti necessari per Malcolm sono pronti. Ora puoi avviare il servizio Malcolm usando il seguente comando:

./scripts/start

Attendere qualche istante per avviare tutti i servizi. Una volta avviati tutti i servizi, verificare tutti i servizi in esecuzione utilizzando il seguente comando:

docker ps -a

Dovresti 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-1

Puoi anche verificare tutte le porte in ascolto usando il seguente comando:

ss -atlnp | grep -i docker

Dovresti 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 alla dashboard di Malcolm OpenSearch utilizzando l'URL https://your-server-ip/dashboards/. Ti verrà chiesto di fornire il nome utente e la password dell'amministratore:

Fornisci il nome utente e la password dell'amministratore e fai clic sul pulsante Accedi. Dovresti vedere la dashboard di OpenSearch nella seguente schermata:

Per accedere alla schermata Malcolm Capture File and Log Archive Upload, digita l'URL https://your-server-ip/upload/.

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

Per accedere alla schermata Gestione account, utilizza l'URL https://your-server-ip:488/

Congratulazioni! hai installato e configurato correttamente lo strumento di analisi del traffico di rete Malcolm su Ubuntu 22.04.