Riskanalys aktuella inställningar
- LXC container körs som privilegierad
- lxc.cgroup2.devices.allow: c 226:* rwm
- lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
⚠️ Säkerhetskonsekvens (viktigt)
Din CT 102 är i praktiken:
❗ En VM utan hypervisor-skydd.
Om den blir komprometterad → kan hosten komprometteras.
Det är ibland motiverat (GPU passthrough, hårdvarunära AI, specialdrivrutiner), men det är bra att vara medveten om.
👉 Det är inte privilege-nivån som gör skillnaden — det är vilka namespaces / mounts / cgroups som är aktiva.
Det här händer oftast när containern har:
- full /proc och /sys mountade (rw eller utan filtrering)
- lxc.apparmor.profile avstängt eller satt till unconfined
- lxc.mount.auto = proc:rw sys:rw
- saknar korrekt cgroup-begränsning
- körs med nesting=1 och får host-namespaces
🟢 Säker nivå att sikta på
| Inställning | Värde |
|---|---|
| privileged | ja (om GPU behövs) |
| apparmor | default |
| devices | whitelist |
| nesting | off |
| extra mounts | inga |
| resurslimit | ja |
⚠️Viktigt
Privileged + GPU + Docker = hög risk.
Men privileged + inga extra mounts + devices begränsade + AppArmor = rimligt säker kompromiss.
✅ Sammanfattning
Ja — du kan göra CT 102 betydligt säkrare utan att slå av privileged:
- Begränsa devices (viktigast)
- Slå på AppArmor igen
- Stäng nesting
- Ta bort onödiga mounts
- Sätt resursgränser
🧩 6. Varför just LLM-containern?
Vanliga orsaker:
- GPU passthrough kräver privileged
- /dev/dri är mountad manuellt
- Någon guide rekommenderade unconfined för AI
- Du skapade den tidigt innan standard ändrade
LXC setup och härdning av system
🔐
2. Hårdning – steg för steg
Steg 1 — Begränsa devices (största vinsten)
Tillåt bara nödvändiga devices, istället för alla:
pct stop 102
pct set 102 --lxc.cgroup2.devices.allow "c 226:* rwm" # GPU (/dev/dri)
pct set 102 --lxc.cgroup2.devices.allow "c 195:* rwm" # NVIDIA om tillämpligt
pct set 102 --lxc.cgroup2.devices.allow "c 1:3 rwm" # /dev/null
pct set 102 --lxc.cgroup2.devices.allow "c 1:5 rwm" # /dev/zero
pct set 102 --lxc.cgroup2.devices.allow "c 1:7 rwm" # /dev/full
pct set 102 --lxc.cgroup2.devices.allow "c 5:0 rwm" # /dev/tty
pct start 102
(Anpassa efter vad den faktiskt behöver)
Steg 2 — Lås AppArmor istället för unconfined
Steg 3 — Stäng nesting om ej nödvändigt
Steg 4 — Ta bort onödiga mounts
Steg 5 — Begränsa resurser
Grafikkort
root@LLM:/home# sudo lshw -C display
*-display UNCLAIMED
description: VGA compatible controller
product: Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: e7
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller cap_list
configuration: latency=0
resources: iomemory:400-3ff iomemory:420-41f memory:4000000000-41ffffffff memory:4200000000-42001fffff ioport:3000(size=256) memory:98800000-9883ffff memory:98840000-9885ffff
*-display
description: VGA compatible controller
product: Arrow Lake-P [Intel Graphics]
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
logical name: fb0
version: 03
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=i915 latency=0 resolution=720,480
resources: iomemory:620-61f iomemory:420-41f irq:249 memory