Sicheres Ausführen von llama.cpp nativen Tools (exec_shell_command) mit mehrfacher Sandboxing unter Linux

✍️ OpenClawRadar📅 Veröffentlicht: 7. Juni 2026🔗 Source
Sicheres Ausführen von llama.cpp nativen Tools (exec_shell_command) mit mehrfacher Sandboxing unter Linux
Ad

Das llama.cpp-Projekt hat kürzlich native Tool-Unterstützung zu seinem llama-server hinzugefügt, die es dem Modell ermöglicht, Funktionen wie get_datetime und das mächtige, aber gefährliche exec_shell_command aufzurufen. Ein Reddit-Benutzer hat einen detaillierten Multi-Sandboxing-Workflow veröffentlicht, um exec_shell_command sicher für Aufgaben wie Web-RAG (Abruf von Live-URLs) zu nutzen, ohne das Hostsystem zu gefährden.

Wichtige Details aus der Quelle

  • Verwendetes Modell: Qwen3.6-35B-A3B_MTP-UD-Q8_K_XL.gguf mit MTP spekulativer Dekodierung
  • Server-Flags: --jinja --tools get_datetime,exec_shell_command --temp 0.6 --top-p 0.95 --top-k 20 --presence-penalty 1.5 --min-p 0.00 --chat-template-kwargs '{"preserve_thinking":true}' --spec-type draft-mtp --spec-draft-n-max 1
  • Multi-Sandboxing-Stack: Firejail + smolvm (Alpine Linux VM) + dedizierter Linux-Benutzer für die Tool-Ausführung
Ad

Schritt-für-Schritt-Einrichtung

  1. Tools in llama-server aktivieren: starten mit --tools get_datetime,exec_shell_command (zuerst mit get_datetime testen)
  2. Firejail installieren (z.B. sudo pacman -S firejail auf Arch)
  3. Isolierten Benutzer erstellen: sudo useradd -m vmagents; sudo passwd vmagents
  4. Zu vmagents wechseln und smolvm installieren: curl -sSL https://smolmachines.com/install.sh | bash
  5. Minimale Alpine VM erstellen:
    smolvm machine create minivm --image alpine --net
    smolvm machine start --name minivm
  6. minivm-exec erstellen in ~vmagents/.local/bin/:
    #!/bin/sh
    smolvm machine start --name minivm >/dev/null
    firejail smolvm machine exec --name minivm -- $* 2>/dev/null
    smolvm machine stop --name minivm >/dev/null
    Ausführbar machen: chmod +x minivm-exec
  7. vm-exec erstellen im eigenen Benutzer-~/.local/bin/:
    #!/bin/sh
    sudo su - vmagents -c "minivm-exec $*"
    Ausführbar machen.
  8. In der llama-Web-Oberfläche das Modell anweisen, vm-exec als Wrapper zu verwenden, z.B.:
    Stelle jedem auszuführenden Befehl den Sandbox-Wrapper vm-exec voran. Verwende wget, um Webinhalte abzurufen, und füge die Option "-U Mozilla" als Browser-User-Agent-String hinzu.
    Dann bitte es, eine Live-URL abzurufen und den Inhalt zu analysieren.

Wie das Sandboxing funktioniert

Befehle werden in einer temporären Alpine Linux VM (minivm) ausgeführt, die von smolvm erstellt und selbst in eine Firejail-Sandbox eingebettet wird. Dies isoliert Netzwerkzugriff, Dateisystem und Prozessraum. Das vm-exec-Skript auf dem Host ruft die gesamte Kette als Benutzer vmagents auf und verhindert so eine Eskalation in das Home-Verzeichnis des Host-Benutzers oder zu kritischen Systemdateien. Die VM wird nach jedem Befehl gestoppt, sodass kein dauerhafter Zustand von bösartigen Aktionen erhalten bleibt.

Für wen das gedacht ist

Entwickler, die lokale LLM-Server betreiben und sichere Codeausführung oder Web-Fetching über agentische Tools ermöglichen möchten, ohne das Host-Betriebssystem zu gefährden.

📖 Vollständige Quelle lesen: r/LocalLLaMA

Ad

👀 Siehe auch