agents.defaults.sandbox (genel) veya agents.entries.*.sandbox (ajan başına) tarafından denetlenir. Gateway işlemi her zaman ana sistemde kalır; etkinleştirildiğinde yalnızca araç yürütme korumalı alana taşınır.
Bu kusursuz bir güvenlik sınırı değildir ancak model saçma bir şey yaptığında dosya sistemi ve işlem erişimini önemli ölçüde sınırlar.
Korumalı alanda çalıştırılanlar
- Araç yürütme:
exec,read,write,edit,apply_patch,processvb. - İsteğe bağlı korumalı alan tarayıcısı (
agents.defaults.sandbox.browser).
- Gateway işleminin kendisi.
tools.elevatedaracılığıyla korumalı alan dışında çalışmasına açıkça izin verilen tüm araçlar. Yükseltilmiş yürütme, korumalı alanı atlar ve yapılandırılmış çıkış yolunda çalışır (varsayılan olarakgateway; yürütme hedefinodeolduğunda isenode). Korumalı alan kapalıysa yürütme zaten ana sistemde çalıştığındantools.elevatedhiçbir şeyi değiştirmez. Bkz. Yükseltilmiş Mod.
Modlar, kapsam ve arka uç
Üç bağımsız ayar korumalı alan davranışını denetler:
Mod, korumalı alanın ne zaman uygulanacağını denetler:
off: korumalı alan kullanılmaz.non-main: ajanın ana oturumu dışındaki tüm oturumları korumalı alanda çalıştırır. Ana oturum anahtarı her zamanagent:<agentId>:maindeğeridir (session.scope,"global"olduğunda iseglobal); yapılandırılamaz. Grup/kanal oturumları kendi anahtarlarını kullanır; bu nedenle her zaman ana olmayan oturum sayılır ve korumalı alanda çalıştırılır.all: her oturum bir korumalı alanda çalışır.
agent: ajan başına bir kapsayıcı.session: oturum başına bir kapsayıcı.shared: korumalı alandaki tüm oturumların paylaştığı tek bir kapsayıcı (bu kapsam altında ajan başınadocker/ssh/browsergeçersiz kılmaları yok sayılır).
agents.defaults.sandbox.ssh altında, OpenShell’e özgü yapılandırma ise plugins.entries.openshell.config altında bulunur.
Docker arka ucu
Korumalı alan etkinleştirildiğinde varsayılan arka uç Docker’dır. Araçları ve korumalı alan tarayıcılarını Docker daemon soketi (/var/run/docker.sock) üzerinden yerel olarak çalıştırır; yalıtım Docker ad alanlarıyla sağlanır.
Varsayılanlar: network: "none" (dışarı giden bağlantı yok), readOnlyRoot: true, capDrop: ["ALL"], imaj openclaw-sandbox:bookworm-slim.
Ana sistem GPU’larını kullanıma açmak için agents.defaults.sandbox.docker.gpus değerini (veya ajan başına geçersiz kılmayı) "all" ya da "device=GPU-uuid" gibi bir değere ayarlayın. Bu değer Docker’ın --gpus bayrağına aktarılır ve NVIDIA Container Toolkit gibi uyumlu bir ana sistem çalışma zamanı gerektirir.
Korumalı alan tarayıcısı
- Tarayıcı aracı ihtiyaç duyduğunda korumalı alan tarayıcısı otomatik olarak başlatılır (CDP’nin erişilebilir olmasını sağlar).
agents.defaults.sandbox.browser.autoStart(varsayılantrue) veautoStartTimeoutMs(varsayılan 12s) aracılığıyla yapılandırın. - Korumalı alan tarayıcı kapsayıcıları, genel
bridgeağı yerine özel bir Docker ağı (openclaw-sandbox-browser) kullanır.agents.defaults.sandbox.browser.networkile yapılandırın. agents.defaults.sandbox.browser.cdpSourceRange, bir CIDR izin listesiyle kapsayıcı sınırındaki CDP girişini kısıtlar (örneğin172.21.0.1/32).- noVNC gözlemci erişimi varsayılan olarak parola korumalıdır; OpenClaw, yerel bir önyükleme sayfası sunan ve noVNC’yi URL parçasındaki parolayla (sorgu dizesinde veya üstbilgi günlüklerinde değil) açan kısa ömürlü bir belirteç URL’si oluşturur.
agents.defaults.sandbox.browser.allowHostControl(varsayılanfalse), korumalı alandaki oturumların ana sistem tarayıcısını açıkça hedeflemesine olanak tanır.- İsteğe bağlı izin listeleri
target: "custom"kullanımını denetler:allowedControlUrls,allowedControlHosts,allowedControlPorts.
SSH arka ucu
exec, dosya araçları ve medya okumalarını SSH ile erişilebilen herhangi bir makinede korumalı alanda çalıştırmak için backend: "ssh" kullanın.
command: "ssh", workspaceRoot: "/tmp/openclaw-sandboxes", strictHostKeyChecking: true, updateHostKeys: true.
- Yaşam döngüsü: OpenClaw,
sandbox.ssh.workspaceRootaltında kapsam başına bir uzak kök oluşturur. Oluşturma veya yeniden oluşturma sonrasındaki ilk kullanımda, bu uzak çalışma alanına yerel çalışma alanından bir kez başlangıç verileri aktarır. Bundan sonraexec,read,write,edit,apply_patch, istem medya okumaları ve gelen medya hazırlama işlemleri SSH üzerinden doğrudan uzak çalışma alanında çalışır. OpenClaw, uzak değişiklikleri yerel çalışma alanına otomatik olarak eşitlemez. - Kimlik doğrulama materyali:
identityFile/certificateFile/knownHostsFilemevcut yerel dosyalara başvurur.identityData/certificateData/knownHostsData, normal gizli bilgiler çalışma zamanı anlık görüntüsü aracılığıyla çözümlenen,0600moduyla geçici dosyalara yazılan ve SSH oturumu sona erdiğinde silinen satır içi dizeleri veya SecretRefs değerlerini kabul eder. Aynı öğe için hem*Filehem de*Dataçeşidi ayarlanmışsa o oturumda*Dataönceliklidir. - Uzak sistemin esas alınmasının sonuçları: İlk başlangıç verisi aktarımından sonra uzak SSH çalışma alanı gerçek korumalı alan durumu hâline gelir. Başlangıç verisi aktarımı adımından sonra OpenClaw dışında ana sistemde yapılan yerel düzenlemeler, korumalı alanı yeniden oluşturana kadar uzak sistemde görünmez.
openclaw sandbox recreate, kapsam başına uzak kökü siler ve sonraki kullanımda yerelden yeniden başlangıç verileri aktarır. Tarayıcı korumalı alanı bu arka uçta desteklenmez vesandbox.docker.*ayarları bu arka uç için geçerli değildir.
OpenShell arka ucu
Araçları OpenShell tarafından yönetilen uzak bir ortamda korumalı alanda çalıştırmak içinbackend: "openshell" kullanın. OpenShell, genel SSH arka ucuyla aynı SSH aktarımını ve uzak dosya sistemi köprüsünü yeniden kullanır; bunlara OpenShell yaşam döngüsünü (sandbox create/get/delete/ssh-config) ve isteğe bağlı bir mirror çalışma alanı eşitleme modunu ekler.
mode: "mirror" (varsayılan), yerel çalışma alanını kanonik tutar: OpenClaw, exec öncesinde yerel çalışma alanını sandbox’a eşitler ve sonrasında değişiklikleri geri eşitler. mode: "remote", uzak çalışma alanını yerelden bir kez başlangıç verileriyle doldurur, ardından exec/read/write/edit/apply_patch işlemlerini geri eşitleme yapmadan doğrudan uzak çalışma alanında çalıştırır; başlangıç verileri aktarıldıktan sonra yapılan yerel düzenlemeler, openclaw sandbox recreate işlemini gerçekleştirene kadar görünmez. scope: "agent" veya scope: "shared" altında bu uzak çalışma alanı aynı kapsamda paylaşılır. Mevcut sınırlamalar: sandbox tarayıcısı henüz desteklenmemektedir ve sandbox.docker.binds bu arka uç için geçerli değildir.
openclaw sandbox list/recreate/prune işlemlerinin tümü OpenShell çalışma zamanlarını Docker çalışma zamanlarıyla aynı şekilde ele alır; prune mantığı arka uca duyarlıdır.
Tüm ön koşullar, yapılandırma başvurusu, çalışma alanı modu karşılaştırması ve yaşam döngüsü ayrıntıları için OpenShell sayfasına bakın.
Çalışma alanı erişimi
agents.defaults.sandbox.workspaceAccess, sandbox’ın neleri görebileceğini denetler:
OpenShell arka ucunda
mirror modu, exec çalıştırmaları arasında kanonik kaynak olarak yine yerel çalışma alanını kullanır; remote modu, ilk başlangıç verisi aktarımından sonra kanonik kaynak olarak uzak OpenShell çalışma alanını kullanır ve workspaceAccess: "ro"/"none" yazma davranışını aynı şekilde kısıtlamaya devam eder.
Gelen medya, etkin sandbox çalışma alanına (media/inbound/*) kopyalanır.
Skills:
read aracı sandbox kök dizinine bağlıdır. workspaceAccess: "none" ile OpenClaw, uygun becerileri okunabilmeleri için sandbox çalışma alanına (.../skills) yansıtır. "rw" ile çalışma alanı becerileri /workspace/skills konumundan okunabilir; uygun yönetilen, paketle gelen veya plugin becerileri ise oluşturulan salt okunur /workspace/.openclaw/sandbox-skills/skills yolunda somutlaştırılır.Tek bir ajan için birden çok klasör
Sandbox’ta çalışan bir ajanın birincil çalışma alanından daha fazlasına ihtiyacı olduğunda Docker bind bağlamalarını kullanın. Her girdi, bir ana makine klasörünü açıkça belirtilmiş bir erişim moduyla bir container yoluna eşler:ro, bağlanan klasörü sandbox içinde salt okunur yapar.rw, sandbox içindeki araçların ve süreçlerin ana makine klasörünü değiştirmesine izin verir.- Container yolu, ajanın kullandığı yoldur. Ana makine yolları otomatik olarak açığa çıkarılmaz.
research ajanına yazılabilir bir birincil çalışma alanı, /reference konumunda salt okunur başvuru materyali ve /drafts konumunda ayrı bir yazılabilir çıktı klasörü sağlar:
workspaceAccess ve bind modları birbirinden bağımsızdır:
workspaceAccess değerini değiştirmek, ek bir bind bağlamasını ro modundan rw moduna veya tersine değiştirmez. Genel ve ajan başına docker.binds değerleri birleştirilir. Ajan başına bind bağlamaları için scope: "agent" veya "session" kullanmaya devam edin; scope: "shared", ajan başına tüm Docker geçersiz kılmalarını yok sayar ve yalnızca genel bind bağlamalarını kullanır.
Bind bağlamaları, desteklenen çok klasörlü sınırdır; çünkü Docker, container’ın dosya sistemi görünümünü bağlama yalıtımıyla oluşturur ve ro/rw modu sandbox içindeki her sürece uygulanır. Bu sınır, her OpenClaw kod yolunda dosya yolu yetkilendirme denetimlerini çoğaltmadan exec, dosya sistemi araçları, alt süreçler ve kütüphaneleri kapsar. Ana makine tarafındaki bir yol izin listesi, izin verilen bir kabuk veya bağımlılık dosyalara doğrudan erişebildiğinde aynı eksiksiz sınırı sağlayamaz.
İsteğe bağlı dangerouslyAllowExternalBindSources, yalnızca çalışma alanı köklerinin dışındaki kaynaklara izin verir. OpenClaw’ın engellenen sistem, kimlik bilgisi, Docker soketi, sembolik bağlantı üst dizini veya ayrılmış hedef denetimlerini devre dışı bırakmaz. En küçük klasörü tercih edin, yazma gerekmediği sürece ro kullanın ve bağlamaları değiştirdikten sonra sandbox’ı yeniden oluşturun:
Diğer bind davranışları
agents.defaults.sandbox.docker.binds, genel bağlamaları yapılandırır. Biçim aynı host:container:mode biçimidir (örneğin "/home/user/source:/source:rw").
agents.defaults.sandbox.browser.binds, ek ana makine dizinlerini yalnızca sandbox tarayıcısı container’ına bağlar. Ayarlandığında ([] dâhil), tarayıcı container’ı için docker.binds değerinin yerini alır; belirtilmediğinde tarayıcı container’ı docker.binds değerine geri döner.
İmajlar ve kurulum
Varsayılan Docker imajı:openclaw-sandbox:bookworm-slim
Kaynak kod deposu ile npm kurulumu karşılaştırması
scripts/sandbox-setup.sh, scripts/sandbox-common-setup.sh ve scripts/sandbox-browser-setup.sh yardımcı betikleri yalnızca bir kaynak kod deposundan çalıştırıldığında kullanılabilir. npm paketine dâhil edilmezler.OpenClaw’ı npm install -g openclaw aracılığıyla yüklediyseniz bunun yerine aşağıda gösterilen satır içi docker build komutlarını kullanın.1
Varsayılan imajı oluşturun
Kaynak kod deposundan:npm kurulumundan (kaynak kod deposu gerekmez):Varsayılan imaj Node içermez. Bir beceri Node’a (veya başka çalışma zamanlarına) ihtiyaç duyuyorsa özel bir imaj oluşturun ya da
sandbox.docker.setupCommand aracılığıyla yükleyin (ağ çıkışı + yazılabilir kök dizin + root kullanıcısı gerektirir).openclaw-sandbox:bookworm-slim eksik olduğunda OpenClaw, sessizce düz debian:bookworm-slim kullanmaz. Varsayılan imajı hedefleyen sandbox çalıştırmaları, imajı oluşturana kadar bir oluşturma talimatıyla hemen başarısız olur; çünkü paketle gelen imaj, sandbox yazma/düzenleme yardımcıları için python3 içerir.2
İsteğe bağlı: ortak imajı oluşturun
Yaygın araçları (örneğin npm kurulumundan, önce varsayılan imajı oluşturun (yukarıya bakın), ardından depodaki
curl, jq, Node 24, pnpm, python3 ve git) içeren daha işlevsel bir sandbox imajı için:Kaynak kod deposundan:scripts/docker/sandbox/Dockerfile.common dosyasını kullanarak ortak imajı bunun üzerine oluşturun.Ardından agents.defaults.sandbox.docker.image değerini openclaw-sandbox-common:bookworm-slim olarak ayarlayın.3
İsteğe bağlı: sandbox tarayıcı imajını oluşturun
Kaynak kod deposundan:npm kurulumundan, depodaki
scripts/docker/sandbox/Dockerfile.browser dosyasını kullanarak oluşturun.agents.defaults.sandbox.docker.network ile geçersiz kılın.
Sandbox tarayıcısının Chromium varsayılanları
Sandbox tarayıcısının Chromium varsayılanları
Paketle gelen sandbox tarayıcı imajı, container ortamındaki iş yükleri için temkinli Chromium başlangıç bayrakları uygular:
--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-dev-shm-usage--disable-background-networking--disable-breakpad--disable-crash-reporter--no-zygote--metrics-recording-only--password-store=basic--use-mock-keychain--headless=new,browser.headlessetkinleştirildiğinde.--no-sandbox --disable-setuid-sandbox,browser.noSandboxetkinleştirildiğinde.- Varsayılan olarak
--disable-3d-apis,--disable-gpu,--disable-software-rasterizer; bu grafik sağlamlaştırma bayrakları, GPU desteği olmayan container’lara yardımcı olur. İş yükünüz WebGL veya diğer 3B özellikleri gerektiriyorsaOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0değerini ayarlayın. - Varsayılan olarak
--disable-extensions; uzantılara dayalı akışlar içinOPENCLAW_BROWSER_DISABLE_EXTENSIONS=0değerini ayarlayın. - Varsayılan olarak
--renderer-process-limit=2;OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>tarafından denetlenir;0ise Chromium’un varsayılanını korur.
browser.extraArgs kullanın.Ağ güvenliği varsayılanları
Ağ güvenliği varsayılanları
network: "host"engellenir.network: "container:<id>"varsayılan olarak engellenir (ad alanına katılarak kuralları aşma riski).- Acil durum geçersiz kılma seçeneği:
agents.defaults.sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true.
scripts/docker/setup.sh, korumalı alan yapılandırmasını başlatabilir. Bu yolu etkinleştirmek için OPENCLAW_SANDBOX=1 (veya true/yes/on) değerini ayarlayın. Soket konumunu OPENCLAW_DOCKER_SOCKET ile geçersiz kılın. Tam kurulum ve ortam değişkeni başvurusu: Docker.
setupCommand (tek seferlik container kurulumu)
setupCommand, korumalı alan container’ı oluşturulduktan sonra bir kez çalışır (her çalıştırmada değil). Container içinde sh -lc aracılığıyla yürütülür.
Yollar:
- Genel:
agents.defaults.sandbox.docker.setupCommand - Agent başına:
agents.entries.*.sandbox.docker.setupCommand
Yaygın sorunlar
Yaygın sorunlar
- Varsayılan
docker.network,"none"değeridir (dışarıya trafik yoktur), dolayısıyla paket kurulumları başarısız olur. docker.network: "container:<id>",dangerouslyAllowContainerNamespaceJoin: truegerektirir ve yalnızca acil durumlar içindir.readOnlyRoot: trueyazma işlemlerini engeller;readOnlyRoot: falsedeğerini ayarlayın veya özel bir görüntüyü önceden oluşturun.- Paket kurulumları için
userroot olmalıdır (userdeğerini atlayın veyauser: "0:0"olarak ayarlayın). - Korumalı alan yürütmesi, ana makinenin
process.envdeğerini devralmaz. Skill API anahtarları içinagents.defaults.sandbox.docker.env(veya özel bir görüntü) kullanın. agents.defaults.sandbox.docker.enviçindeki değerler, açık Docker container ortam değişkenleri olarak aktarılır. Docker daemon erişimi olan herkes, bunlarıdocker inspectgibi Docker meta veri komutlarıyla inceleyebilir. Bu meta veri ifşası kabul edilebilir değilse özel bir görüntü, bağlanmış gizli dosya veya başka bir gizli bilgi sağlama yolu kullanın.
Araç politikası ve kaçış yolları
Araç izin/reddetme politikaları, korumalı alan kurallarından önce uygulanmaya devam eder. Bir araç genel olarak veya agent başına reddedilmişse korumalı alan kullanımı onu yeniden etkinleştirmez.tools.elevated, exec aracını korumalı alan dışında çalıştıran açık bir kaçış yoludur (varsayılan olarak gateway; exec hedefi node olduğunda ise node). /exec yönergeleri yalnızca yetkili gönderenler için geçerlidir ve oturum başına kalıcıdır; exec özelliğini kesin olarak devre dışı bırakmak için araç politikası reddini kullanın (bkz. Korumalı Alan, Araç Politikası ve Yükseltilmiş Mod Karşılaştırması).
Hata ayıklama:
openclaw sandbox list; korumalı alan container’larını, durumu, görüntü eşleşmesini, yaşı, boşta kalma süresini ve ilişkili oturumu/agent’ı gösterir.openclaw sandbox explain [--session <key>] [--agent <id>]; geçerli korumalı alan modunu, ana makine çalışma alanını, çalışma zamanı çalışma dizinini, Docker bağlamalarını, araç politikasını ve düzeltme yapılandırma anahtarlarını inceler.workspaceRootalanı, yapılandırılmış korumalı alan kökü olarak kalır;effectiveHostWorkspaceRoot, etkin çalışma alanının gerçekte nerede bulunduğunu gösterir.openclaw sandbox recreate [--all | --session <key> | --agent <id>] [--browser] [--force], bir sonraki kullanımda geçerli yapılandırmayla yeniden oluşturulmaları için container’ları/ortamları kaldırır.- “Bu neden engellendi?” yaklaşımı için Korumalı Alan, Araç Politikası ve Yükseltilmiş Mod Karşılaştırması bölümüne bakın.
Çoklu agent geçersiz kılmaları
Her agent, korumalı alanı ve araçları geçersiz kılabilir:agents.entries.*.sandbox ve agents.entries.*.tools (ayrıca korumalı alan araç politikası için agents.entries.*.tools.sandbox.tools). Öncelik sırası için Çoklu Agent Korumalı Alanı ve Araçları bölümüne bakın.
En küçük etkinleştirme örneği
İlgili konular
- Çoklu Agent Korumalı Alanı ve Araçları — agent başına geçersiz kılmalar ve öncelik sırası
- OpenShell — yönetilen korumalı alan arka ucu kurulumu, çalışma alanı modları ve yapılandırma başvurusu
- Korumalı alan yapılandırması
- Korumalı Alan, Araç Politikası ve Yükseltilmiş Mod Karşılaştırması — “Bu neden engellendi?” sorusunda hata ayıklama
- Güvenlik