So installierst du Malcolm Network Traffic Analysis Tool auf Ubuntu 22.04
Malcolm ist ein einfaches, benutzerfreundliches und leistungsstarkes Tool zur Analyse des Netzwerkverkehrs. Es ist in der Lage, Artefakte (PCAP-Dateien) und Zeek-Logs zu erfassen. Malcolm bietet einen vernetzten Rahmen, der es zu mehr macht als die Summe seiner Teile. Die einfache und flexible Implementierung von Malcolm und die robuste Kombination von Tools füllen eine Lücke im Bereich der Netzwerksicherheit und machen die fortschrittliche Analyse des Netzwerkverkehrs für viele im öffentlichen und privaten Sektor zugänglich.
In diesem Beitrag zeigen wir dir, wie du Malcolm, das Tool zur Analyse des Netzwerkverkehrs, auf Ubuntu 22.04 installierst.
Voraussetzungen
- Ein Server, auf dem Ubuntu 22.04 läuft.
- Mindestens 16 GB RAM und 4 CPU-Kerne.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Einen Malcolm-Systembenutzer erstellen
Zuerst musst du ein eigenes Benutzerkonto für Malcolm erstellen. Du kannst es mit dem folgenden Befehl erstellen:
useradd -m -d /opt/malcolm -s /bin/bash -G sudo malcolm
Als Nächstes legst du das Benutzerpasswort mit dem folgenden Befehl fest:
passwd malcolm
Überprüfe dann die UID des Malcolm-Benutzers mit folgendem Befehl:
id malcolm
Du solltest die folgende Ausgabe sehen:
uid=1000(malcolm) gid=1000(malcolm) groups=1000(malcolm),27(sudo)
Malcolm installieren Ubuntu 22.04
Wechsle zunächst den Benutzer Malcolm und lade die neueste Version von Malcolm mit folgendem Befehl herunter:
su - malcolm git clone https://github.com/idaholab/Malcolm
Sobald der Download abgeschlossen ist, wechselst du in das heruntergeladene Verzeichnis und startest die Installation von Malcolm mit dem folgenden Befehl:
cd Malcolm sudo ./scripts/install.py
Während der Installation werden dir einige Fragen gestellt, wie unten gezeigt:
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
Sobald Malcolm installiert ist, kannst du mit dem nächsten Schritt fortfahren.
Malcolm konfigurieren
Nach der Installation von Malcolm musst du es mit dem folgenden Befehl konfigurieren:
sudo ./scripts/install.py --configure
Während der Malcolm-Konfiguration werden dir mehrere Fragen gestellt. Beantworte alle Fragen wie unten gezeigt:
- Die Malcolm-Prozesse werden als UID 1000 und GID 1000 ausgeführt. Ist das in Ordnung? (Y/n): Y
- Einstellung 10g für OpenSearch und 3g für Logstash. Ist das in Ordnung? ja
- Einstellung von 3 Workern für Logstash-Pipelines. Ist das OK? (J/n): ja
- Malcolm beim Neustart des Systems oder des Docker-Daemons neu starten? Ja Wähle dann die Standardoption, sofern nicht gestoppt.
- Wähle, ob Malcolm mit HTTPS eingerichtet werden soll: Ja
- Wähle, ob Malcolm hinter einem Proxy laufen soll: Nein
- Wähle Netzwerk: Gib einfach ein, um die Standardeinstellungen zu übernehmen. Wähle LDAP: Nein
- OpenSearch-Index snapshosts lokal in /opt/malcolm/Malcom/opensearch-backup speichern? Ja
- Wähle OpenSearch-Index-Snapshots komprimieren: Ja
- Ob du die ältesten Indizes löschen willst, wenn die Datenbank eine bestimmte Größe überschreitet: Nein
- Reverse DNS-Lookup lokal für Quell- und Ziel-IP-Adressen in den Protokollen: Nein
- OUI-Lookups der Hardwarehersteller für MAC-Adressen: Ja
- String-Zufallsprüfung für einige Felder durchführen: ja
- OpenSearch-Port für externe Hosts freigeben: nein
- Logstash-Port für externe Hosts freigeben: nein
- Logstash-Protokolle an eine externe OpenSearch-Instanz weiterleiten: nein
- Filebeat TCP-Port für externe Hosts freigeben: nein
- Aktiviere die Dateiextraktion mit Zeek: ja
- Wähle interessant als Extraktionsverhalten. Dateispeicherungsmethode wählen: Quarantäne
- Scanne extrahierte Dateien/PE-Dateien mit ClamAV: ja
- Scanne extrahierte Dateien/PE-Dateien mit Yara: ja
- Scanne extrahierte Dateien/PE-Dateien mit Capa: ja
- Extrahierte Datei-Hashes mit VirusTotal nachschlagen: nein
- Regelmäßig aktualisierte Scanner-Signaturen herunterladen: ja
- Soll Malcolm den Netzwerkverkehr in PCAP-Dateien erfassen: ja
- Gib die Schnittstelle(n) an (durch Komma getrennt), über die Malcolm den Netzwerkverkehr aufzeichnen soll: eth0
- Pakete mit netsniff-ng aufzeichnen? (J/N): ja
- Pakete mit tcpdump aufzeichnen? (j/n): nein
- Erfassungsfilter (tcpdump-ähnlicher Filterausdruck; leer lassen, um den gesamten Verkehr zu erfassen) (): Du kannst den Datenverkehr in Bezug auf Elasticsearch (Port 9200), Logstash (5044), Arkime(8005) deaktivieren: nicht Port 9200 und nicht Port 5044 und nicht Port 8005
- Hardware-Offloading der Erfassungsschnittstelle deaktivieren und Ringpuffergrößen anpassen? (y/N): n
Sobald das Malcolm konfiguriert ist, starte dein System neu, um die Konfiguration zu übernehmen.
sudo reboot
Malcolm Admin-Konto erstellen
Als Nächstes musst du ein Administratorkonto erstellen, um auf die Malcolm-Weboberfläche zuzugreifen.
Wechsle zunächst den Benutzer zu Malcolm und navigiere mit dem folgenden Befehl zum Malcolm-Verzeichnis:
su - malcolm cd ~/Malcolm
Als Nächstes führst du den folgenden Befehl aus, um ein Administratorkonto zu erstellen:
./scripts/auth_setup
Beantworte alle Fragen wie unten gezeigt, um ein Administratorkonto zu erstellen:
- Administrator-Benutzername/Passwort für den lokalen Malcolm-Zugang speichern? ja
- Lege das Passwort und den Benutzernamen des Administrators fest.
- Selbstsignierte SSL-Zertifikate für den Webverkehr HTTPS (neu) generieren: ja
- Selbstsignierte Zertifikate für einen Remote-Log-Forwarder (neu) generieren: ja
- Benutzernamen/Passwort für die Weiterleitung von Logstash-Ereignissen an eine sekundäre, externe OpenSearch-Instanz speichern: nein. Benutzername/Passwort für das E-Mail-Benachrichtigungsabsenderkonto speichern: nein
Malcolm-Docker-Images abrufen
Als Nächstes musst du alle benötigten Docker-Images von der Docker Hub Registry herunterladen. Du kannst sie mit dem folgenden Befehl herunterladen:
docker-compose pull
Sobald alle Images heruntergeladen sind, überprüfe sie mit dem folgenden Befehl:
docker images
Du solltest die folgende Ausgabe erhalten:
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
Start Malcolm Service
Jetzt sind alle erforderlichen Komponenten für Malcolm bereit. Du kannst nun den Malcolm-Dienst mit folgendem Befehl starten:
./scripts/start
Warte einige Zeit, bis alle Dienste gestartet sind. Sobald alle Dienste gestartet sind, überprüfe alle laufenden Dienste mit dem folgenden Befehl:
docker ps -a
In der folgenden Ausgabe solltest du alle laufenden Container sehen:
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
Du kannst auch alle lauschenden Ports mit dem folgenden Befehl überprüfen:
ss -atlnp | grep -i docker
Du solltest die folgende Ausgabe sehen:
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))
Zugriff auf Malcolm
Du kannst nun über die URL https://your-server-ip/dashboards/ auf das Malcolm OpenSearch Dashboard zugreifen . Du wirst aufgefordert, deinen Admin-Benutzernamen und dein Passwort einzugeben:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche “ Anmelden „. Auf dem folgenden Bildschirm solltest du das OpenSearch-Dashboard sehen:
Um auf den Bildschirm Malcolm Capture File and Log Archive Upload zuzugreifen, gib die URL https://your-server-ip/upload/ ein .
Um den Editor für die Zuordnung von Host- und Subnetznamen aufzurufen, gibst du die URL https://your-server-ip/name-map-ui/ ein.
Um auf den Bildschirm Kontoverwaltung zuzugreifen, gibst du die URL https://your-server-ip:488/ ein.
Herzlichen Glückwunsch! Du hast Malcolm, das Tool zur Analyse des Netzwerkverkehrs, erfolgreich unter Ubuntu 22.04 installiert und konfiguriert.