Instalación de Software · 9 min read · Oct 29, 2025

Cómo instalar la herramienta de análisis de tráfico de red Malcolm en Ubuntu 22.04

Malcolm es una herramienta de análisis de tráfico de red simple, fácil de usar y poderosa. Es capaz de capturar artefactos (archivos PCAP) y registros de Zeek. Malcolm proporciona un marco interconectado que lo hace mayor que la suma de sus partes. El despliegue fácil y flexible de Malcolm y su robusta combinación de herramientas llenan un vacío en el espacio de seguridad de red y hacen que el análisis avanzado de tráfico de red sea accesible para muchos en los sectores público y privado.

En esta publicación, te mostraremos cómo instalar la herramienta de análisis de tráfico de red Malcolm en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Mínimo 16 GB de RAM y 4 núcleos de CPU.
  • Una contraseña de root configurada en el servidor.

Crear un usuario del sistema Malcolm

Primero, necesitarás crear una cuenta de usuario dedicada para ejecutar Malcolm. Puedes crearla con el siguiente comando:

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

A continuación, establece la contraseña del usuario con el siguiente comando:

passwd malcolm

Luego, verifica el UID del usuario Malcolm con el siguiente comando:

id malcolm

Deberías ver la siguiente salida:

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

Instalar Malcolm en Ubuntu 22.04

Primero, cambia al usuario Malcolm y descarga la última versión de Malcolm usando el siguiente comando:

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

Una vez completada la descarga, cambia el directorio al directorio descargado y comienza a instalar Malcolm usando el siguiente comando:

cd Malcolm  
sudo ./scripts/install.py

Durante la instalación, se te harán varias preguntas, como se muestra a continuación:

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 vez que Malcolm esté instalado, puedes proceder al siguiente paso.

Configurar Malcolm

Después de instalar Malcolm, necesitarás configurarlo usando el siguiente comando:

sudo ./scripts/install.py --configure

Durante la configuración de Malcolm, se te harán varias preguntas. Responde todas las preguntas como se muestra a continuación:

  • Los procesos de Malcolm se ejecutarán como UID 1000 y GID 1000. ¿Está bien? (Y/n): Y
  • Estableciendo 10g para OpenSearch y 3g para Logstash. ¿Está bien? sí
  • Estableciendo 3 trabajadores para las canalizaciones de Logstash. ¿Está bien? (Y/n): sí
  • Reiniciar Malcolm al reiniciar el sistema o el demonio de Docker? Sí Luego, elige la opción predeterminada, unless-stopped.
  • Elige si configurar Malcolm con HTTPS: Sí
  • Elige si Malcolm se ejecutará detrás de algún proxy: No
  • Elige red: Simplemente presiona Enter para aceptar los valores predeterminados. Elige LDAP: No
  • ¿Almacenar instantáneas del índice de OpenSearch localmente en /opt/malcolm/Malcom/opensearch-backup? Sí
  • Elige comprimir las instantáneas del índice de OpenSearch: Sí
  • Si deseas eliminar los índices más antiguos cuando la base de datos exceda un cierto tamaño: No
  • Búsqueda inversa de DNS localmente para direcciones IP de origen y destino en los registros: No
  • Búsquedas de OUI de proveedores de hardware para direcciones MAC: Sí
  • Realizar puntuación de aleatoriedad de cadenas en algunos campos: sí
  • Exponer el puerto de OpenSearch a hosts externos: no
  • Exponer el puerto de Logstash a hosts externos: no
  • Reenviar registros de Logstash a una instancia externa de OpenSearch: no
  • Exponer el puerto TCP de Filebeat a hosts externos: no
  • Habilitar la extracción de archivos con Zeek: sí
  • Elegir interesante como el comportamiento de extracción. Elegir método de preservación de archivos: cuarentena
  • Escanear archivos extraídos/archivos PE con ClamAV: sí
  • Escanear archivos extraídos/archivos PE con Yara: sí
  • Escanear archivos extraídos/archivos PE con Capa: sí
  • Buscar hashes de archivos extraídos con VirusTotal: no
  • Descargar firmas de escáner actualizadas periódicamente: sí
  • ¿Debería Malcolm capturar tráfico de red en archivos PCAP? sí
  • Especificar interfaz(es) de captura (separadas por comas) en las que Malcolm utilizará para el tráfico de red: eth0
  • ¿Capturar paquetes usando netsniff-ng? (Y/n): sí
  • ¿Capturar paquetes usando tcpdump? (y/N): no
  • Filtro de captura (expresión de filtro similar a tcpdump; deja en blanco para capturar todo el tráfico) (): Puedes deshabilitar el tráfico relacionado con Elasticsearch (puerto 9200), Logstash (5044), Arkime(8005): no puerto 9200 y no puerto 5044 y no puerto 8005
  • ¿Deshabilitar la descarga de hardware de la interfaz de captura y ajustar los tamaños del búfer de anillo? (y/N): n

Una vez que Malcolm haya sido configurado, reinicia tu sistema para aplicar la configuración.

sudo reboot

Crear cuenta de administrador de Malcolm

A continuación, necesitarás crear una cuenta administrativa para acceder a la interfaz web de Malcolm.

Primero, cambia al usuario Malcolm y navega al directorio de Malcolm usando el siguiente comando:

su - malcolm  
cd ~/Malcolm

A continuación, ejecuta el siguiente comando para crear una cuenta de administrador:

./scripts/auth_setup

Responde todas las preguntas como se muestra a continuación para crear una cuenta de administrador:

  • ¿Almacenar nombre de usuario/contraseña del administrador para acceso local a Malcolm? sí
  • Establecer contraseña y nombre de usuario del administrador.
  • (Re)generar certificados SSL autofirmados para tráfico web HTTPS: sí
  • (Re)generar certificados autofirmados para un reenvío de registro remoto: sí
  • Almacenar nombre de usuario/contraseña para reenviar eventos de Logstash a una instancia secundaria de OpenSearch externa: no. Almacenar nombre de usuario/contraseña para la cuenta de envío de alertas por correo electrónico: no

Descargar imágenes de Docker de Malcolm

A continuación, necesitarás descargar todas las imágenes de Docker requeridas del registro de Docker Hub. Puedes descargar todas con el siguiente comando:

docker-compose pull

Una vez que todas las imágenes estén descargadas, verifica todas las imágenes usando el siguiente comando:

docker images

Deberías obtener la siguiente salida:

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 el servicio de Malcolm

En este punto, todos los componentes requeridos para Malcolm están listos. Ahora puedes iniciar el servicio de Malcolm usando el siguiente comando:

./scripts/start

Espera un tiempo para iniciar todos los servicios. Una vez que todos los servicios estén iniciados, verifica todos los servicios en ejecución usando el siguiente comando:

docker ps -a

Deberías ver todos los contenedores en ejecución en la siguiente salida:

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

También puedes verificar todos los puertos en escucha usando el siguiente comando:

ss -atlnp | grep -i docker

Deberías ver la siguiente salida:

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

Acceder a Malcolm

Ahora puedes acceder al panel de control de OpenSearch de Malcolm usando la URL https://your-server-ip/dashboards/. Se te pedirá que proporciones tu nombre de usuario y contraseña de administrador:

Proporciona tu nombre de usuario de administrador, contraseña y haz clic en el botón Iniciar sesión. Deberías ver el panel de control de OpenSearch en la siguiente pantalla:

Para acceder a la pantalla de carga de archivos de captura de Malcolm y archivo de registro, escribe la URL https://your-server-ip/upload/.

Para acceder al editor de mapeo de nombres de host y subred, escribe la URL https://your-server-ip/name-map-ui/.

Para acceder a la pantalla de gestión de cuentas, utiliza la URL https://your-server-ip:488/

¡Felicidades! has instalado y configurado con éxito la herramienta de análisis de tráfico de red Malcolm en Ubuntu 22.04.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.