Instalação de Software · 9 min read · Oct 29, 2025

Como Instalar a Ferramenta de Análise de Tráfego de Rede Malcolm no Ubuntu 22.04

Malcolm é uma ferramenta de análise de tráfego de rede simples, fácil de usar e poderosa. É capaz de capturar artefatos (arquivos PCAP) e logs do Zeek. Malcolm fornece uma estrutura interconectada que a torna maior do que a soma de suas partes. A implantação fácil e flexível do Malcolm e a combinação robusta de ferramentas preenchem uma lacuna no espaço de segurança de rede e tornam a análise avançada de tráfego de rede acessível a muitos nos setores público e privado.

Neste post, mostraremos como instalar a ferramenta de análise de tráfego de rede Malcolm no Ubuntu 22.04.

Pré-requisitos

  • Um servidor rodando Ubuntu 22.04.
  • Mínimo de 16 GB de RAM e 4 núcleos de CPU.
  • Uma senha de root configurada no servidor.

Criar um Usuário do Sistema Malcolm

Primeiro, você precisará criar uma conta de usuário dedicada para executar o Malcolm. Você pode criá-la com o seguinte comando:

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

Em seguida, defina a senha do usuário com o seguinte comando:

passwd malcolm

Em seguida, verifique o UID do usuário Malcolm com o seguinte comando:

id malcolm

Você deve ver a seguinte saída:

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

Instalar o Malcolm no Ubuntu 22.04

Primeiro, troque para o usuário Malcolm e baixe a versão mais recente do Malcolm usando o seguinte comando:

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

Uma vez que o download estiver completo, mude o diretório para o diretório baixado e comece a instalar o Malcolm usando o seguinte comando:

cd Malcolm  
sudo ./scripts/install.py

Durante a instalação, você será questionado sobre várias perguntas, conforme mostrado abaixo:

Instalando pacotes necessários: ['apache2-utils', 'make', 'openssl', 'python3-dialog']

"docker info" falhou, tentar instalar o Docker? (Y/n): Y

Tentar instalar o Docker usando repositórios oficiais? (Y/n): Y
Instalando pacotes necessários: ['apt-transport-https', 'ca-certificates', 'curl', 'gnupg-agent', 'software-properties-common']


Instalando pacotes do docker: ['docker-ce', 'docker-ce-cli', 'containerd.io']
A instalação dos pacotes do docker aparentemente foi bem-sucedida

Adicionar um usuário não-root ao grupo "docker"?: Y

Digite a conta do usuário: malcolm

Adicionar outro usuário não-root ao grupo "docker"?: n

"docker-compose version" falhou, tentar instalar docker-compose? (Y/n): Y

Instalar docker-compose diretamente do github do docker? (Y/n): Y
Download e instalação do docker-compose aparentemente foram bem-sucedidos


fs.file-max aumenta o máximo permitido para manipuladores de arquivos
fs.file-max= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y


fs.inotify.max_user_watches aumenta o máximo permitido para arquivos monitorados
fs.inotify.max_user_watches= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y


fs.inotify.max_queued_events aumenta o tamanho da fila para arquivos monitorados
fs.inotify.max_queued_events= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y


fs.inotify.max_user_instances aumenta o máximo permitido para monitores de arquivos
fs.inotify.max_user_instances= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y

vm.max_map_count aumenta o máximo permitido para segmentos de memória
vm.max_map_count= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y


net.core.somaxconn aumenta o máximo permitido para conexões de socket
net.core.somaxconn= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y

vm.dirty_background_ratio define a porcentagem de memória do sistema que pode ser preenchida com páginas "sujas" antes de descarregar
vm.dirty_background_ratio= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y

vm.dirty_ratio define a porcentagem máxima de memória do sistema suja antes de comprometer tudo
vm.dirty_ratio= parece estar faltando em /etc/sysctl.conf, anexá-lo? (Y/n): Y

/etc/security/limits.d/limits.conf aumenta os máximos permitidos para manipuladores de arquivos e segmentos bloqueados em memória
/etc/security/limits.d/limits.conf não existe, criá-lo? (Y/n): Y

Uma vez que o Malcolm esteja instalado, você pode prosseguir para a próxima etapa.

Configurar o Malcolm

Após instalar o Malcolm, você precisará configurá-lo usando o seguinte comando:

sudo ./scripts/install.py --configure

Durante a configuração do Malcolm, você será questionado sobre várias perguntas. Responda a todas as perguntas conforme mostrado abaixo:

  • Os processos do Malcolm serão executados como UID 1000 e GID 1000. Isso está OK? (Y/n): Y
  • Definindo 10g para OpenSearch e 3g para Logstash. Isso está OK? yes
  • Definindo 3 trabalhadores para os pipelines do Logstash. Isso está OK? (Y/n): yes
  • Reiniciar o Malcolm após a reinicialização do sistema ou do daemon do Docker? Sim Então, escolha a opção padrão, unless-stopped.
  • Escolha se deseja configurar o Malcolm com HTTPS: Sim
  • Escolha se o Malcolm funcionará atrás de algum proxy: Não
  • Escolha rede: Apenas pressione Enter para aceitar os padrões. Escolha LDAP: Não
  • Armazenar snapshots de índice do OpenSearch localmente em /opt/malcolm/Malcom/opensearch-backup? Sim
  • Escolha comprimir snapshots de índice do OpenSearch: Sim
  • Se deseja excluir os índices mais antigos quando o banco de dados exceder um determinado tamanho: Não
  • Pesquisa reversa de DNS localmente para endereços IP de origem e destino nos logs: Não
  • Pesquisas de OUI do fornecedor de hardware para endereços MAC: Sim
  • Realizar pontuação de aleatoriedade de string em alguns campos: yes
  • Expor a porta do OpenSearch para hosts externos: no
  • Expor a porta do Logstash para hosts externos: no
  • Encaminhar logs do Logstash para uma instância externa do OpenSearch: no
  • Expor a porta TCP do Filebeat para hosts externos: no
  • Habilitar extração de arquivos com Zeek: yes
  • Escolha interessante como o comportamento de extração. Escolha o método de preservação de arquivos: quarentena
  • Escanear arquivos extraídos/arquivos PE com ClamAV: yes
  • Escanear arquivos extraídos/arquivos PE com Yara: yes
  • Escanear arquivos extraídos/arquivos PE com Capa: yes
  • Pesquisar hashes de arquivos extraídos com VirusTotal: no
  • Baixar assinaturas de scanner atualizadas periodicamente: yes
  • O Malcolm deve capturar tráfego de rede em arquivos PCAP: yes
  • Especifique a(s) interface(s) de captura (separadas por vírgula) nas quais o Malcolm usará para o tráfego de rede: eth0
  • Capturar pacotes usando netsniff-ng? (Y/n): yes
  • Capturar pacotes usando tcpdump? (y/N): no
  • Filtro de captura (expressão de filtro semelhante ao tcpdump; deixe em branco para capturar todo o tráfego) (): Você pode desativar o tráfego relacionado ao Elasticsearch (porta 9200), Logstash (5044), Arkime(8005): not port 9200 and not port 5044 and not port 8005
  • Desativar o offloading de hardware da interface de captura e ajustar os tamanhos do buffer de anel? (y/N): n

Uma vez que o Malcolm tenha sido configurado, reinicie seu sistema para aplicar a configuração.

sudo reboot

Criar Conta de Administrador do Malcolm

Em seguida, você precisará criar uma conta administrativa para acessar a interface web do Malcolm.

Primeiro, troque para o usuário Malcolm e navegue até o diretório do Malcolm usando o seguinte comando:

su - malcolm  
cd ~/Malcolm

Em seguida, execute o seguinte comando para criar uma conta de administrador:

./scripts/auth_setup

Responda a todas as perguntas conforme mostrado abaixo para criar uma conta de administrador:

  • Armazenar nome de usuário/senha do administrador para acesso local ao Malcolm? yes
  • Defina a senha e o nome de usuário do administrador.
  • (Re)gerar certificados SSL autoassinados para tráfego web HTTPS: yes
  • (Re)gerar certificados autoassinados para um encaminhador de log remoto: yes
  • Armazenar nome de usuário/senha para encaminhar eventos do Logstash para uma instância externa do OpenSearch: no. Armazenar nome de usuário/senha para a conta de remetente de alerta por e-mail: no

Baixar Imagens Docker do Malcolm

Em seguida, você precisará baixar todas as imagens Docker necessárias do registro Docker Hub. Você pode baixar todas com o seguinte comando:

docker-compose pull

Uma vez que todas as imagens estejam baixadas, verifique todas as imagens usando o seguinte comando:

docker images

Você deve obter a seguinte saída:

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

Iniciar o Serviço Malcolm

Neste ponto, todos os componentes necessários para o Malcolm estão prontos. Você pode agora iniciar o serviço Malcolm usando o seguinte comando:

./scripts/start

Aguarde um tempo para iniciar todos os serviços. Uma vez que todos os serviços estejam iniciados, verifique todos os serviços em execução usando o seguinte comando:

docker ps -a

Você deve ver todos os contêineres em execução na seguinte saída:

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

Você também pode verificar todas as portas em escuta usando o seguinte comando:

ss -atlnp | grep -i docker

Você deve ver a seguinte saída:

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))

Acessar o Malcolm

Agora você pode acessar o painel do OpenSearch do Malcolm usando a URL https://your-server-ip/dashboards/. Você será solicitado a fornecer seu nome de usuário e senha de administrador:

Forneça seu nome de usuário de administrador, senha e clique no botão Entrar. Você deve ver o painel do OpenSearch na tela seguinte:

Para acessar a tela de Upload de Arquivos de Captura e Arquivos de Log do Malcolm, digite a URL https://your-server-ip/upload/.

Para acessar o editor de mapeamento de nomes de host e sub-rede, digite a URL https://your-server-ip/name-map-ui/.

Para acessar a tela de Gerenciamento de Contas, use a URL https://your-server-ip:488/

Parabéns! você instalou e configurou com sucesso a ferramenta de análise de tráfego de rede Malcolm no Ubuntu 22.04.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.