Skip to main content

System Requirements

Minimum Requirements (Testing)

  • CPU: 4 cores @ 2.0 GHz
  • RAM: 8 GB
  • Storage: 20 GB available
  • Network: Single 1GbE NIC
  • OS: Debian 12 (Bookworm) or Ubuntu 22.04+
  • Kernel: 6.1.0+ (for eBPF/XDP support)
  • CPU: 8+ cores @ 3.0 GHz
  • RAM: 16 GB (32 GB for high-throughput)
  • Storage: 100 GB SSD
  • Network: Dual 10GbE NICs (Intel X710, Mellanox ConnectX-5)
  • OS: Debian 12 (Bookworm)
  • Kernel: 6.1.0+
Hardware Recommendations:
  • Testing: Intel NUC, x86 Mini PC (N100/N305)
  • Production: Supermicro 1U, Dell PowerEdge R240
  • Avoid: Raspberry Pi (insufficient performance for 1Gbps+)

Kernel Version Check

Verify your kernel version supports eBPF:

Installation Methods

From Source

Recommended for development and customization

Vagrant

Pre-configured VM for rapid testing

Docker

Containerized deployment (limited eBPF support)

Method 1: Install from Source

Step 1: Install Build Dependencies

Step 2: Install libbpf 1.4.6+

ML Defender requires libbpf 1.4.6 or higher:

Step 3: Install CMake 3.25+

Step 4: Install ONNX Runtime 1.17.1

Required for ML model inference:

Step 5: Install etcd-cpp-api

For distributed configuration:

Step 6: Install FAISS 1.8.0 (Optional, for RAG)

Required only if using RAG ingestion:

Step 7: Clone and Build ML Defender

Step 8: Configure System Settings

Step 9: Create Directory Structure

Installation from source complete! Proceed to Configuration to set up components.

Method 2: Vagrant Deployment

Vagrant provides a pre-configured VM with all dependencies installed.

Prerequisites

  • VirtualBox 7.0+
  • Vagrant 2.3+
  • 16GB RAM available on host
  • 50GB disk space

Install Vagrant

Launch VM

VM Configuration

The Vagrantfile configures:
  • defender VM:
    • 8GB RAM, 6 CPUs
    • eth1: 192.168.56.20 (WAN-facing, host-based IDS)
    • eth2: 192.168.100.1 (LAN-facing, gateway mode)
    • All dependencies pre-installed
    • Components pre-built
  • client VM (optional):
    • 1GB RAM, 2 CPUs
    • eth1: 192.168.100.50
    • Traffic generation tools

Network Topology

Pre-configured Aliases

The VM includes helpful aliases:
Vagrant deployment is ideal for testing and development. For production, use installation from source or Docker.

Method 3: Docker Deployment

Docker provides containerized deployment with service orchestration.
Docker has limited eBPF support. XDP features run in generic mode with reduced performance (~1-5 Mbps vs 1Gbps native).

Prerequisites

  • Docker 24.0+
  • Docker Compose 2.0+

Launch Services

Service Architecture

The docker-compose.yaml defines:

Network Configuration

Verify Services


Method 4: Debian Package Installation

ML Defender provides .deb packages for Debian/Ubuntu systems.

Install Package

Package Contents

The package includes:
  • /usr/local/bin/sniffer - eBPF sniffer binary
  • /etc/ml-defender/sniffer.json - Configuration
  • /usr/lib/systemd/system/sniffer-ebpf.service - systemd service
  • /var/log/ml-defender/ - Log directory

Service Management


Network Interface Setup

Single NIC (Host-Based IDS)

Protects only the host system:

Dual NIC (Gateway Mode)

Inspects transit traffic between networks:

eBPF XDP Mode

XDP can run in three modes:
  1. Native (best performance, requires driver support):
  2. Offloaded (SmartNIC only):
  3. Generic/SKB (fallback, lowest performance):
ML Defender auto-detects the best available mode.

Post-Installation

Verify Installation

1

Check Binaries

2

Check Dependencies

3

Test eBPF Support

4

Verify Network Config

Next Steps

Configuration

Configure components, IPSet capacity, and detection thresholds

Quick Start

Start the system and run your first detection