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 malcolmEm seguida, defina a senha do usuário com o seguinte comando:
passwd malcolmEm seguida, verifique o UID do usuário Malcolm com o seguinte comando:
id malcolmVocê 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/MalcolmUma 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.pyDurante 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): YUma 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 --configureDurante 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 rebootCriar 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 ~/MalcolmEm seguida, execute o seguinte comando para criar uma conta de administrador:
./scripts/auth_setupResponda 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 pullUma vez que todas as imagens estejam baixadas, verifique todas as imagens usando o seguinte comando:
docker imagesVocê 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 120MBIniciar 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/startAguarde 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 -aVocê 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-1Você também pode verificar todas as portas em escuta usando o seguinte comando:
ss -atlnp | grep -i dockerVocê 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.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.