Gateway
دليل تشغيل إتاحة Gateway
يحوّل دليل التشغيل هذا إرشادات الأمان الأوسع إلى قائمة تحقق للمشغّل بشأن الوصول عن بُعد وكشف المراسلة.
اختر نمط الكشف
فضّل أضيق نمط يلبّي سير العمل.
| النمط | يُنصح به عندما | الضوابط المطلوبة |
|---|---|---|
| local loopback + نفق SSH | الاستخدام الشخصي، وصول الإدارة، تصحيح الأخطاء | أبقِ gateway.bind: "loopback" وأنشئ نفقًا إلى 127.0.0.1:18789 |
| local loopback + Tailscale Serve | وصول شخصي عبر شبكة tailnet إلى Control UI/WebSocket | أبقِ Gateway مقتصرًا على local loopback؛ لا تصادق ترويسات هوية Tailscale إلا على واجهة WebSocket الخاصة بـ Control UI، وليس على مسارات المصادقة الأخرى |
| ربط Tailnet/LAN | شبكة خاصة مخصصة ذات أجهزة معروفة | مصادقة Gateway، وقائمة سماح في جدار الحماية، وعدم إعادة توجيه أي منفذ عام |
| وكيل عكسي موثوق | SSO/OIDC للمؤسسة أمام Gateway | مصادقة trusted-proxy، وقيم trustedProxies صارمة، وقواعد لاستبدال/إزالة الترويسات، ومستخدمون مسموحون محددون صراحةً |
| الإنترنت العام | عمليات نشر نادرة وعالية المخاطر | وكيل مدرك للهوية، وTLS، وحدود للمعدل، وقوائم سماح صارمة، وجلسات غير رئيسية معزولة |
تجنّب إعادة توجيه منفذ عام مباشرةً إلى Gateway. إذا كان الوصول العام مطلوبًا، فضع وكيلًا مدركًا للهوية أمامه واجعل الوكيل مسار الشبكة الوحيد إلى Gateway.
جرد ما قبل التشغيل
سجّل ما يلي قبل تغيير سياسة الربط أو الوكيل أو Tailscale أو القناة:
- مضيف Gateway، ومستخدم نظام التشغيل، ودليل الحالة (الافتراضي
~/.openclaw). - عنوان URL الخاص بـ Gateway ووضع الربط (
gateway.bind؛ المنفذ الافتراضي18789). - وضع المصادقة، أو مصدر الرمز المميز/كلمة المرور، أو مصدر هوية الوكيل الموثوق.
- كل قناة مفعّلة وما إذا كانت تقبل الرسائل المباشرة أو المجموعات أو Webhook.
- الوكلاء الذين يمكن للمرسلين غير المحليين الوصول إليهم.
- ملف تعريف الأدوات، ووضع العزل، وسياسة الأدوات ذات الصلاحيات المرتفعة لكل وكيل يمكن الوصول إليه.
- بيانات الاعتماد الخارجية المتاحة لهؤلاء الوكلاء.
- موقع النسخة الاحتياطية من
~/.openclaw/openclaw.jsonوبيانات الاعتماد.
إذا كان بإمكان أكثر من شخص مراسلة الروبوت، فتعامل مع ذلك بوصفه تفويضًا مشتركًا لسلطة الأدوات، وليس عزلًا للمضيف لكل مستخدم.
فحوصات خط الأساس
شغّل ما يلي قبل فتح الوصول:
openclaw doctoropenclaw security auditopenclaw security audit --deepopenclaw healthعالج النتائج الحرجة أولًا. لا تقبل التحذيرات إلا عندما تكون مقصودة
وموثّقة لعملية النشر. راجع فحوصات تدقيق الأمان
لمعرفة معنى كل checkId ومفتاح إصلاحه.
للتحقق عن بُعد عبر CLI، مرّر بيانات الاعتماد صراحةً:
openclaw gateway probe --url ws://127.0.0.1:18789 --token "$OPENCLAW_GATEWAY_TOKEN"لا تفترض أن بيانات اعتماد الإعداد المحلي تنطبق على عنوان URL بعيد محدد صراحةً.
الحد الأدنى الآمن لخط الأساس
استخدم هذا الشكل كنقطة بداية لعمليات النشر المكشوفة:
{ gateway: { bind: "loopback", auth: { mode: "token", token: "replace-with-a-long-random-token", }, }, session: { dmScope: "per-channel-peer", }, agents: { defaults: { sandbox: { mode: "non-main" }, }, }, tools: { profile: "messaging", exec: { security: "deny", ask: "always" }, elevated: { enabled: false }, },}وسّع ضابطًا واحدًا في كل مرة: أضف قائمة سماح لقناة محددة قبل تمكين الأدوات القادرة على الكتابة، أو فعّل وكيلًا عكسيًا قبل قبول حركة مرور Control UI عن بُعد.
يحظر tools.exec.security: "deny" جميع استدعاءات التنفيذ، بما فيها
عمليات التشخيص الآمنة. إذا كانت عمليات التشخيص أو الأوامر منخفضة المخاطر مطلوبة، فلا تخفف هذا
القيد إلا بعد اختيار المرسلين والوكلاء والأوامر ووضع الموافقة المحددين الذين
يتوافقون مع نموذج التهديد لديك.
كشف الرسائل المباشرة والمجموعات
قنوات المراسلة هي أسطح إدخال غير موثوقة. قبل السماح بالرسائل المباشرة أو المجموعات:
- فضّل
dmPolicy: "pairing"أو قائمةallowFromصارمة علىdmPolicy: "open". - لا تجمع قوائم السماح
"*"مع وصول واسع إلى الأدوات. - اشترط الإشارات في المجموعات ما لم تكن الغرفة خاضعة لرقابة محكمة.
- اضبط
session.dmScope: "per-channel-peer"(أو"per-account-channel-peer"للقنوات متعددة الحسابات) عندما يمكن لعدة أشخاص إرسال رسائل مباشرة إلى الروبوت، كي لا تشترك جلسات الرسائل المباشرة في السياق. - وجّه القنوات المشتركة إلى وكلاء يملكون الحد الأدنى من الأدوات ولا يملكون بيانات اعتماد شخصية.
تسمح عملية الاقتران للمرسل بتشغيل الروبوت. لكنها لا تجعل ذلك المرسل حدًا أمنيًا منفصلًا للمضيف.
فحوصات الوكيل العكسي
بالنسبة إلى الوكلاء المدركين للهوية:
- يجب أن يصادق الوكيل المستخدمين قبل إعادة التوجيه إلى Gateway.
- يجب أن يحظر جدار الحماية أو نهج الشبكة الوصول المباشر إلى منفذ Gateway.
- يجب ألا تتضمن
gateway.trustedProxiesسوى عناوين IP المصدرية للوكيل. - يجب أن يزيل الوكيل ترويسات الهوية وإعادة التوجيه المقدمة من العميل أو يستبدلها.
- اضبط
gateway.auth.trustedProxy.allowUsersعندما يخدم الوكيل أكثر من فئة واحدة من المستخدمين. - لا تستخدم
gateway.auth.trustedProxy.allowLoopbackإلا لوكيل على المضيف نفسه عندما تكون العمليات المحلية موثوقة ويكون الوكيل مالكًا لترويسات الهوية.
شغّل openclaw security audit --deep بعد تغييرات الوكيل. تتميز نتائج
الوكيل الموثوق بقوة دلالتها لأن الوكيل يصبح حد
المصادقة.
مراجعة الأدوات والعزل
قبل كشف وكيل للمرسلين عن بُعد:
- تأكد من الجلسات التي تعمل على المضيف وتلك التي تعمل ضمن العزل.
- ارفض التنفيذ على المضيف أو اشترط الموافقة عليه.
- أبقِ الأدوات ذات الصلاحيات المرتفعة معطلة ما لم يحتج إليها مرسل موثوق ومحدد.
- تجنّب أدوات المتصفح واللوحة وNode وCron وGateway وإنشاء الجلسات لأسطح المراسلة المفتوحة أو شبه المفتوحة.
- أبقِ نقاط الربط ضيقة؛ وتجنّب مسارات بيانات الاعتماد والدليل الرئيسي ومقبس Docker والنظام.
- استخدم بوابات أو مستخدمي نظام تشغيل أو مضيفين منفصلين لحدود الثقة المختلفة اختلافًا جوهريًا.
إذا لم يكن المستخدمون عن بُعد موثوقين بالكامل، فيجب أن يأتي العزل من عمليات نشر منفصلة، لا من المطالبات أو تسميات الجلسات فقط.
التحقق بعد التغيير
بعد كل تغيير في الكشف:
- أعِد تشغيل
openclaw security audit --deep. - تأكد من نجاح اتصال مصرح له.
- تأكد من رفض مرسل غير مصرح له أو جلسة متصفح غير مصرح لها.
- تأكد من أن السجلات تحجب الأسرار.
- تأكد من أن توجيه الرسائل المباشرة/المجموعات يصل إلى الوكيل المقصود فقط.
- تأكد من أن الأدوات عالية التأثير تطلب الموافقة أو تُرفض.
- وثّق التحذيرات المتبقية المقبولة.
لا تنتقل إلى تغيير الكشف التالي حتى تفهم التغيير الحالي.
خطة التراجع
إذا كان Gateway مكشوفًا أكثر مما ينبغي:
{ gateway: { bind: "loopback", }, channels: { whatsapp: { dmPolicy: "disabled" }, telegram: { dmPolicy: "disabled" }, discord: { dmPolicy: "disabled" }, slack: { dmPolicy: "disabled" }, }, tools: { exec: { security: "deny", ask: "always" }, elevated: { enabled: false }, },}ثم:
- أوقف إعادة التوجيه العامة أو Tailscale Funnel أو مسارات الوكيل العكسي.
- بدّل رموز Gateway المميزة/كلمات المرور وبيانات اعتماد عمليات التكامل المتأثرة.
- أزل
"*"والمرسلين غير المتوقعين من قوائم السماح. - راجع سجلات التدقيق الحديثة، وسجل التشغيل، واستدعاءات الأدوات، وتغييرات الإعداد.
- أعِد تشغيل
openclaw security audit --deep. - أعِد تمكين الوصول بأضيق نمط يلبّي سير العمل.
قائمة التحقق للمراجعة
- يظل Gateway مقتصرًا على local loopback ما لم يوجد سبب موثّق.
- يتمتع الوصول من خارج local loopback بالمصادقة وجدار الحماية، ولا يملك مسارًا عامًا مباشرًا.
- تملك عمليات نشر الوكيل الموثوق عناوين IP صارمة للوكيل وضوابط للترويسات.
- تستخدم الرسائل المباشرة الاقتران أو قوائم السماح، وليس الوصول المفتوح افتراضيًا.
- تتطلب المجموعات إشارات أو قوائم سماح صريحة.
- لا تصل القنوات المشتركة إلى بيانات الاعتماد الشخصية.
- تعمل الجلسات غير الرئيسية في وضع العزل.
- يُرفض التنفيذ على المضيف والأدوات ذات الصلاحيات المرتفعة أو تخضع لبوابة موافقة.
- تحجب السجلات الأسرار.
- تمت معالجة نتائج التدقيق الحرجة.
- تم اختبار خطوات التراجع وتوثيقها.