Logo

A powerful, easily deployable network traffic analysis tool suite for network security monitoring

Quick Start

Documentation

Components

Supported Protocols

Configuring

Arkime

Dashboards

Hedgehog Linux

Contribution Guide

End-to-end Malcolm and Hedgehog Linux ISO Installation

This document outlines how to install Malcolm and Hedgehog Linux using the project’s installer ISOs. These instructions apply to installing this software both on a β€œbare metal” system or in a virtual machine environment using VMware, VirtualBox, QEMU/KVM, etc.

The Malcolm and Hedgehog Linux installers as described in these instructions are intended to be used to replace the existing operating system (if any) of the respective systems onto which they are installed; and, as such, are designed to require as little user input as possible. For this reason, there are NO user prompts or confirmations about partitioning and reformatting hard disks for use by the operating system. The installer assumes that all non-removable storage media (eg., SSD, HDD, NVMe, etc.) are available for use and β›”πŸ†˜πŸ˜­πŸ’€ will partition and format them without warning πŸ’€πŸ˜­πŸ†˜β›”.

In contrast to using the ISO installer, Malcolm can also be installed on any x86-64 (also known as x64, x86_64, AMD64, and Intel 64) or AArch64 (also known as ARM64) platform capable of running Docker or Podman. See the installation example using Ubuntu 24.04 LTS for that method of installation and configuration, or Windows host system configuration and macOS host system configuration for those platforms.

Table of Contents

Obtaining the Installation ISOs

Please see Downloading Malcolm for instructions on how to obtain the Malcolm and Hedgehog Linux installation ISOs.

As an alternative to the official release ISOs, instructions are provided for building the Malcolm installer ISO and Hedgehog Linux installer ISO (Malcolm’s dedicated network sensor appliance OS) from scratch.

β€œBurning” the Installation ISOs to USB Flash Drive

Various methods can be used to write the contents of an installer ISO image to a USB flash drive. One simple free and open-source application for doing so is Etcher, which can be used on Windows, macOS, and Linux platforms.

Alternatively, instructions specific to a particular operating system may be found online (e.g., Arch Linux, Debian Linux, Ubuntu Linux).

Using one of these methods, write the Malcolm and Hedgehog Linux installer ISOs to two 8GB or larger USB flash drives, respectively.

Alternatively, the ISO images could be burned to writable optical media (e.g., DVDΒ±R). The Malcolm installer will likely need to be written to DVDΒ±R DL (β€œdual layer” or β€œdouble layer”) media as the image exceeds the 4.7 GB storage provided by standard DVDs.

Etcher on macOS

Using Etcher on macOS

dd on Linux

Using dd on Linux

Booting the Installation Media

The ISO installers are compatible with systems that support EFI-mode and legacy (BIOS) booting. The procedure for configuring a system’s firmware to allow booting from USB or optical media varies from manufacturer to manufacturer. Manufacturers typically provide a β€œone-time boot” menu upon a specific keypress (e.g., F12 for Dell, F9 for HP, etc.). If needed, consult the documentation provided by the hardware manufacturer on how to access the boot options menu and boot from the newly-burned USB flash media or DVDΒ±R.

EFI Boot Manager

An example of an EFI boot manager in QEMU

BIOS Boot Manager

An example of a BIOS boot options menu in QEMU

Malcolm Installation and Configuration

ISO Installation

Upon Booting the Malcolm installation ISO, users are presented with the following Boot menu. Use the arrow keys to select Install Malcolm, and press Enter.

The first screen of the installer

The next screen of the installer presents the following options relevant to installation:

The Install Malcolm menu

After users select the type of Malcolm install to perform, the installer will ask for several pieces of information prior to installing the Malcolm base operating system:

Example of the installer's password prompt

After the passwords have been entered, the installer will proceed to format the system drive and install Malcolm.

Installer progress

At the end of the installation process, users will be prompted with a few self-explanatory yes/no questions:

Following these prompts, the installer will reboot and the Malcolm base operating system will boot.

The Malcolm installer does not require an Internet connection to complete successfully. If the installer prompts users to configure network connectivity, they may choose β€œdo not configure the network at this time.”

Desktop Environment

The Malcolm base operating system is a hardened Linux installation based on the current stable release of Debian running the XFCE desktop environment. The system has been preloaded with all of the components that make up Malcolm.

NetworkManager can be used to configure networking for Malcolm. NetworkManager can be configured by clicking the πŸ–§ (networked computers) icon in the system tray in the upper-right, or right-clicking the icon and selecting Edit Connections… to modify the properties of a given connection.

Display resolution should be detected and adjusted automatically. To make changes to display properties, click the Applications menu and select Settings β†’ Display.

The panel bordering the top of the Malcolm desktop is home to a number of useful shortcuts:

Malcolm Desktop

Configure Network Interfaces

The Malcolm base operating system does not use Dynamic Host Configuration Protocol (DHCP) to assign IP addresses to any ethernet interfaces by default. To configure DHCP for network interfaces intended for access and management, click the icon for the NetworkManager applet in the system tray and select Auto Ethernet:

Auto Ethernet

Alternatively, to configure a network interface with a static IP address (recommended):

  1. Right-click the icon for the NetworkManager applet in the system tray and select Edit Connections

Edit Connections

  1. Click the plus βž• icon on the Network Connections dialog

Add a new connection

  1. Select Ethernet for the Connection Type

Connection type

  1. On the Ethernet tab, select the Device (e.g., eth0, enp1s0, etc.) on

Device selection

  1. On the IPv4 Settings tab, set the method Manual and add the address/netmask/gateway and specify DNS servers, if applicable

IPv4 settings

  1. Click Save

All network interfaces intended for capture only should have their method set to Disabled under the IPv4 Settings tab:

Disabled Network Interface

Configure Hostname, Time Sync, and SSH Access

If users wish to change Malcolm’s hostname or configure system time synchronization, they can open a terminal (the icon immediately to the right of the Applications menu icon at the top of the Malcolm desktop) and run system-quickstart then enter the user (if the user is part of the sudo group) or root password.

Here users can configure Malcolm to keep its time synchronized with either an NTP server (using the NTP protocol), another Malcolm aggregator or another HTTP/HTTPS server. On the next dialog, choose the time synchronization method to configure.

Time synchronization method

If htpdate is selected, users will be prompted to enter the URL of an HTTP/HTTPS server (for another Malcolm instance, either port 443 or port 9200 over https may be used) and the time synchronization check frequency in minutes. A test connection will be made to determine if the time can be retrieved from the server.

*htpdate* configuration

If ntpdate is selected, users will be prompted to enter the IP address or hostname of the NTP server.

NTP configuration

Upon configuring time synchronization, a β€œTime synchronization configured successfully!” message will be displayed, after which users will be returned to the welcome screen. Select Cancel.

This same utility can be used to enable SSH password authentication. (Caution: password authentication is less secure than public/private key pairs.)

Configure Malcolm

The first time the Malcolm base operating system boots the Malcolm Configuration wizard will start automatically. This same configuration script can be run again later by running ./scripts/configure from the Malcolm installation directory, or clicking the Configure Malcolm πŸ”³ icon in the top panel.

Malcolm Configuration on first boot

The configuration script’s dialog- and terminal-based user interfaces identical configuration workflows with only slightly different presentations. This document will use the terminal-based (β€œTUI”) interface, which can be forced by running install.py with the --tui flag, as opposed to the dialog-based (β€œDUI”) interface, which can be forced with the --dui flag.

Users will first be presented with a Malcolm logo splash screen unless the --skip-splash flag is specified.

user@host:~/Malcolm$ ./scripts/configure

                                                     Welcome To

 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ        β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ        β–ˆβ–ˆβ–ˆβ–ˆ              β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆ              β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ       β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–ˆβ–ˆβ–ˆ     β–‘β–‘β–ˆβ–ˆβ–ˆ             β–‘β–‘β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆ   β–ˆβ–ˆβ–ˆ  β–ˆβ–ˆ   β–‘β–‘β–ˆβ–ˆβ–ˆ             β–‘β–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ 
 β–‘β–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆ      β–ˆβ–ˆβ–ˆ   β–‘β–‘β–ˆβ–ˆβ–ˆ     β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ        β–‘β–‘   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆ 
 β–‘β–ˆβ–ˆβ–ˆβ–‘β–‘β–ˆβ–ˆβ–ˆ β–‘β–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ             β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ   β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆβ–‘β–‘β–ˆβ–ˆβ–ˆ β–‘β–ˆβ–ˆβ–ˆ 
 β–‘β–ˆβ–ˆβ–ˆ β–‘β–‘β–‘  β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ             β–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆβ–ˆ   β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ β–‘β–‘β–‘  β–‘β–ˆβ–ˆβ–ˆ 
 β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ             β–ˆ β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ 
 β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ    β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ         β–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ β–ˆβ–ˆ   β–‘β–ˆβ–ˆβ–ˆ              β–‘β–ˆβ–ˆβ–ˆ      β–‘β–ˆβ–ˆβ–ˆ 
 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ   β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
β–‘β–‘β–‘β–‘β–‘     β–‘β–‘β–‘β–‘β–‘   β–‘β–‘β–‘β–‘β–‘     β–‘β–‘β–‘β–‘β–‘   β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘    β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ    β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘    β–‘β–‘β–‘β–‘β–‘     β–‘β–‘β–‘β–‘β–‘ 

                                       v25.12.0. Press any key to continue...

The items in the Malcolm Configuration Menu are arranged hierarchically, with the current setting displayed next to each option. For the most part, each option in the menu corresponds to an environment variable stored in the ./config directory, used by Malcolm to determine runtime behavior.

--- Malcolm Configuration Menu ---
Select an item number to configure, or an action:
β”œβ”€β”€ 1. Container Runtime (current: docker)
β”‚   β”œβ”€β”€ 2. Container Network Name (current: empty)
β”‚   β”œβ”€β”€ 3. Malcolm Restart Policy (current: No)
β”‚   β”œβ”€β”€ 4. Process Group ID (current: 1000)
β”‚   └── 5. Process User ID (current: 1000)
β”œβ”€β”€ 6. Run Profile (current: malcolm)
β”‚   β”œβ”€β”€ 7. Dark Mode for Dashboards (current: Yes)
β”‚   β”œβ”€β”€ 8. Extra Tags (current: [])
β”‚   β”œβ”€β”€ 9. Forward AIDE Results (current: No)
β”‚   β”œβ”€β”€ 10. Forward Audit Log (current: No)
β”‚   β”œβ”€β”€ 11. Forward CPU Utilization (current: No)
β”‚   β”œβ”€β”€ 12. Forward Disk Operation Statistics (current: No)
β”‚   β”œβ”€β”€ 13. Forward Disk Utilization (current: No)
β”‚   β”œβ”€β”€ 14. Forward Kernel Messages (current: No)
β”‚   β”œβ”€β”€ 15. Forward Logs to Remote Secondary Store (current: No)
β”‚   β”œβ”€β”€ 16. Forward Memory Utilization (current: No)
β”‚   β”œβ”€β”€ 17. Forward Network Activity (current: No)
β”‚   β”œβ”€β”€ 18. Forward Systemd Journal Logs (current: No)
β”‚   β”œβ”€β”€ 19. Forward Thermal Readings (current: No)
β”‚   β”œβ”€β”€ 20. Logstash Memory (current: 3g)
β”‚   β”œβ”€β”€ 21. Logstash Workers (current: 3)
β”‚   β”œβ”€β”€ 22. OpenSearch Memory (current: 24g)
β”‚   └── 23. Primary Document Store (current: opensearch-local)
β”œβ”€β”€ 24. Require HTTPS Connections (current: No)
β”œβ”€β”€ 25. IPv4 for nginx Resolver Directive (current: Yes)
β”œβ”€β”€ 26. IPv6 for nginx Resolver Directive (current: No)
β”œβ”€β”€ 27. Traefik Labels (current: No)
β”œβ”€β”€ 28. Use Default Storage Location (current: Yes)
β”œβ”€β”€ 29. Clean Up Artifacts (current: Yes)
β”‚   β”œβ”€β”€ 30. Delete Old Indices (current: Yes)
β”‚   β”‚   β”œβ”€β”€ 31. Index Prune Threshold (current: 1T)
β”‚   β”‚   └── 32. Prune Indices by Name (current: No)
β”‚   └── 33. Delete Old PCAP (current: Yes)
β”‚       └── 34. Delete PCAP Threshold (current: 5%)
β”œβ”€β”€ 35. Enable Arkime Index Management (current: No)
β”œβ”€β”€ 36. Enable Arkime Analysis (current: Yes)
β”‚   β”œβ”€β”€ 37. Allow Arkime WISE Configuration (current: No)
β”‚   └── 38. Enable Arkime WISE (current: Yes)
β”œβ”€β”€ 39. Enable Suricata Analysis (current: Yes)
β”‚   └── 40. Enable Suricata Rule Updates (current: Yes)
β”œβ”€β”€ 41. Enable Zeek Analysis (current: Yes)
β”‚   β”œβ”€β”€ 42. Enable Zeek File Extraction (current: Yes)
β”‚   β”‚   └── 43. File Extraction Mode (current: interesting)
β”‚   β”‚       β”œβ”€β”€ 44. Extracted File Percent Threshold (current: 0)
β”‚   β”‚       β”œβ”€β”€ 45. Extracted File Size Threshold (current: 100G)
β”‚   β”‚       β”œβ”€β”€ 46. File Preservation (current: quarantined)
β”‚   β”‚       β”œβ”€β”€ 47. Preserved Files HTTP Server (current: Yes)
β”‚   β”‚       β”‚   β”œβ”€β”€ 48. Downloaded Preserved File Password (current: ********)
β”‚   β”‚       β”‚   └── 49. Zip Downloads (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 50. Scan with capa (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 51. Scan with ClamAV (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 52. Scan with YARA (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 53. Update Scan Rules (current: Yes)
β”‚   β”‚       └── 54. VirusTotal API Key (current: empty)
β”‚   β”œβ”€β”€ 55. Enable Zeek ICS/OT Analyzers (current: Yes)
β”‚   β”‚   └── 56. Enable Zeek ICS "Best Guess" (current: Yes)
β”‚   └── 57. Use Threat Feeds for Zeek Intelligence (current: Yes)
β”‚       β”œβ”€β”€ 58. Cron Expression for Threat Feed Updates (current: 0 0 * * *)
β”‚       β”œβ”€β”€ 59. Intel::item_expiration Timeout (current: -1min)
β”‚       β”œβ”€β”€ 60. Pull Threat Intelligence Feeds on Startup (current: Yes)
β”‚       └── 61. Threat Indicator "Since" Period (current: 7 days ago)
β”œβ”€β”€ 62. Enrich with Reverse DNS Lookups (current: Yes)
β”œβ”€β”€ 63. Enrich with Manufacturer (OUI) Lookups (current: Yes)
β”œβ”€β”€ 64. Enrich with Frequency Scoring (current: Yes)
β”œβ”€β”€ 65. NetBox Mode (current: Local)
β”‚   β”œβ”€β”€ 66. Auto-Create Subnet Prefixes (current: Yes)
β”‚   β”œβ”€β”€ 67. Auto-Populate NetBox Inventory (current: Yes)
β”‚   β”œβ”€β”€ 68. NetBox Enrichment (current: Yes)
β”‚   β”œβ”€β”€ 69. NetBox IP Autopopulation Filter (current: empty)
β”‚   └── 70. NetBox Site Name (current: Malcolm)
β”œβ”€β”€ 71. Expose Malcolm Service Ports (current: Yes)
β”œβ”€β”€ 72. Network Traffic Node Name (current: host)
└── 73. Capture Live Network Traffic (current: Yes)
    β”œβ”€β”€ 74. Analyze Live Traffic with Suricata (current: Yes)
    β”œβ”€β”€ 75. Analyze Live Traffic with Zeek (current: Yes)
    β”œβ”€β”€ 76. Capture Filter (current: empty)
    β”œβ”€β”€ 77. Capture Interface(s) (current: eth0)
    β”œβ”€β”€ 78. Capture Live Traffic with netsniff-ng (current: Yes)
    β”œβ”€β”€ 79. Capture Live Traffic with tcpdump (current: No)
    β”œβ”€β”€ 80. Gather Traffic Capture Statistics (current: Yes)
    └── 81. Optimize Interface Settings for Capture (current: Yes)

--- Actions ---
  s. Save and Continue Installation
  w. Where Is...? (search for settings)
  x. Exit Installer
---------------------------------

Enter item number or action: 

For some settings, additional sub-items will become available when that setting is enabled. For example, enabling Zeek File Extraction exposes the settings related to that feature:

…
β”œβ”€β”€ 23. Enable Zeek Analysis (current: Yes)
β”‚   β”œβ”€β”€ 24. Enable Zeek File Extraction (current: No)
β”‚   β”œβ”€β”€ 25. Enable Zeek ICS/OT Analyzers (current: No)
…
Enter item number or action: 24

Enable Zeek File Extraction (current: No)
Enable file extraction with Zeek? (y / N): Y
…
β”œβ”€β”€ 23. Enable Zeek Analysis (current: Yes)
β”‚   β”œβ”€β”€ 24. Enable Zeek File Extraction (current: Yes)
β”‚   β”‚   └── 25. File Extraction Mode (current: interesting)
β”‚   β”‚       β”œβ”€β”€ 26. Extracted File Percent Threshold (current: 0)
β”‚   β”‚       β”œβ”€β”€ 27. Extracted File Size Threshold (current: empty)
β”‚   β”‚       β”œβ”€β”€ 28. File Preservation (current: quarantined)
β”‚   β”‚       β”œβ”€β”€ 29. Preserved Files HTTP Server (current: Yes)
β”‚   β”‚       β”‚   β”œβ”€β”€ 30. Downloaded Preserved File Password (current: empty)
β”‚   β”‚       β”‚   └── 31. Zip Downloads (current: No)
β”‚   β”‚       β”œβ”€β”€ 32. Scan with capa (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 33. Scan with ClamAV (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 34. Scan with YARA (current: Yes)
β”‚   β”‚       β”œβ”€β”€ 35. Update Scan Rules (current: Yes)
β”‚   β”‚       └── 36. VirusTotal API Key (current: empty)
β”‚   β”œβ”€β”€ 37. Enable Zeek ICS/OT Analyzers (current: No)
…
Enter item number or action: 25
File Extraction Mode (current: interesting)
1: none
2: known
3: mapped
4: all
5: interesting
6: notcommtxt
Enter choice number (interesting): 4
…

Once the desired Malcolm configuration options have been selected, select s to save the settings and proceed to the final configuration summary for confirmation. Then, select y to write the changed configuration to the corresponding environment variable files.

…
--- Actions ---
  s. Save and Continue
  w. Where Is...? (search for settings)
  x. Exit Installer
---------------------------------

Enter item number or action: s
============================================================
FINAL CONFIGURATION SUMMARY
============================================================
Configuration Only                                : Yes
Configuration Directory                           : /home/user/Malcolm/config
Container Runtime                                 : docker
Run Profile                                       : malcolm
Process UID/GID                                   : 1000/1000
Container Restart Policy                          : unless-stopped
Container Network                                 : default
Default Storage Locations                         : Yes
HTTPS/SSL                                         : Yes
Node Name                                         : host
============================================================

Proceed with Malcolm installation using the above configuration? (y / N): y

Malcolm Configuration Menu Items

Setting up Authentication

Once the configuration questions have been completed as described above, users can click the β€œplay” icon (β–·) in the panel at the top of the desktop to start Malcolm. As authentication has not yet been configured, users will be prompted to do so. This authentication setup can be run again later by running ./scripts/auth_setup from the Malcolm installation directory.

Setting up authentication on Malcolm's first run

The Configure Authentication dialog

As this is the first time setting up authentication, ensure the all option is selected and press OK.

Users will be prompted to do the following:

Hedgehog Linux Installation and Configuration

As of Malcolm v25.12.0, the same base operating system is used for both Malcolm and Hedgehog Linux. All of the sections above under Malcolm Installation and Configuration also apply to Hedgehog Linux.

The following section outlines the Hedgehog-specific steps needed to establish communication between the Hedgehog Linux sensor and the Malcolm aggregator.

Configuring Communication Between Hedgehog and Malcolm

Follow the Malcolm guidelines above for Configuring Network Interfaces and Configuring Hostname, Time Sync, and SSH Access.

The first time Hedgehog Linux boots the Malcolm Configuration wizard will start automatically. This same configuration script can be run again later by running ./scripts/configure from the Malcolm installation directory, or clicking the Configure Malcolm πŸ”³ icon in the top panel.

The sections above for Configuring Malcolm and the Malcolm Configuration Menu Items are applicable for Hedgehog Linux, with the following notable exceptions:

--- Malcolm Configuration Menu ---
…
β”‚   β”œβ”€β”€ 18. Logstash Host (current: malcolm.home.arpa:5044)
β”‚   β”œβ”€β”€ 19. Malcolm Reachback ACL (current: ['192.168.122.1', '192.168.122.5', '10.9.0.215'])
β”‚   └── 20. Primary Document Store (current: opensearch-remote)
β”‚       β”œβ”€β”€ 21. Primary OpenSearch/Elasticsearch URL (current: https://malcolm.home.arpa:9200)
…
β”œβ”€β”€ 30. Enable Arkime Analysis (current: Yes)
β”‚   └── 31. Arkime WISE URL (current: https://malcolm.home.arpa/wise/)
…
β”œβ”€β”€ 55. NetBox Mode (current: Remote)
β”‚   └── 56. NetBox Site Name (current: Remote Site ABC)
…
--- Malcolm Configuration Menu ---
…
β”œβ”€β”€ 6. Run Profile (current: hedgehog)
…
β”‚   β”œβ”€β”€ 8. Forward AIDE Results (current: Yes)
β”‚   β”œβ”€β”€ 9. Forward Audit Log (current: Yes)
β”‚   β”œβ”€β”€ 10. Forward CPU Utilization (current: Yes)
β”‚   β”œβ”€β”€ 11. Forward Disk Operation Statistics (current: Yes)
β”‚   β”œβ”€β”€ 12. Forward Disk Utilization (current: Yes)
β”‚   β”œβ”€β”€ 13. Forward Kernel Messages (current: Yes)
β”‚   β”œβ”€β”€ 14. Forward Memory Utilization (current: Yes)
β”‚   β”œβ”€β”€ 15. Forward Network Activity (current: Yes)
β”‚   β”œβ”€β”€ 16. Forward Systemd Journal Logs (current: Yes)
β”‚   β”œβ”€β”€ 17. Forward Thermal Readings (current: Yes)
…

The auth_setup script on Hedgehog Linux has a Receive client certifictes from Malcolm option corresponding to Malcolm’s Transfer self-signed client certificates to a remote log forwarder option described above. In order for a Hedgehog Linux to securely communicate with Malcolm, it needs the client certificates generated when users answered Y to (Re)generate self-signed certificates for a remote log forwarder during that setup. Malcolm can facilitate the secure transfer of these to a sensor running Hedgehog.

Select Receive client certificates from Malcolm, then press OK when prompted β€œRun auth_setup on Malcolm and select β€˜Transfer self-signed client certificates…’”.

SSL Certificate Transfer, Hedgehog Side - 01

SSL Certificate Transfer, Hedgehog Side - 02

Return to the Malcolm instance where auth_setup is running (or re-run it if needed) and press OK. Users will see a message with the title ssl-client-transmit that looks like this:

SSL Certificate Transfer, Malcolm Side - 02

Note Malcolm’s IP address (192.168.122.5 in the screenshot above) and the single-use code phrase (2033-inside-century-simon in the screenshot above) and enter them on the Hedgehog:

SSL Certificate Transfer, Hedgehog Side - 03

After a few seconds a progress bar will update and show the files have been 100% transfered. They are automatically saved into the ~/Malcolm/filebeat/certs directory on the sensor.

SSL Certificate Transfer, Hedgehog Side - 03

Once the has been completed, users can click the β€œplay” icon (β–·) in the panel at the top of the desktop to start Malcolm under the Hedgehog run profile.

Verifying Traffic Capture and Forwarding

The easiest way to verify network traffic is being captured by the sensor and forwarded to Malcolm is through Malcolm’s Arkime Sessions interface.

If logged into the Malcolm desktop environment, click the Arkime icon (πŸ¦‰) in the top panel. If connecting from another browser, connect to **https://**.

As Malcolm is using self-signed TLS certificates, users will likely have to confirm a browser exception to allow the self-signed certificates to proceed. Enter the credentials specified during the configure authentication process.

Arkime’s sessions view will be displayed. Filter on the node field to view records from a specific Hedgehog Linux sensor. In the search bar, enter node == hedgehoghostname (replacing hedgehoghostname with the hostname configured for Hedgehog Linux). See the Search Queries in Arkime and OpenSearch cheat sheet for more search syntax hints.

Arkime's Sessions view

Arkime’s sessions view with a filter on node

Arkime’s views button (indicated by the eyeball πŸ‘ icon) allows overlaying additional previously-specified filters onto the current sessions filters. For convenience, Malcolm provides several Arkime preconfigured views including filtering on the event.provider and event.dataset fields. This can be combined with the node filter described above to verify different network log types (e.g., Arkime sessions, Zeek logs, Suricata alerts, etc.) are all being captured and forwarded correctly.

Malcolm views