مساعدك الذكي منحني وصولًا إلى الصدفة
كيفية تأمين إعداد OpenClaw/Moltbot المحلي أو على الخادم الافتراضي الخاص (VPS)
OpenClaw (المعروف سابقًا باسم Clawdbot/Moltbot) يوفّر لك مساعدًا ذكيًا شخصيًا يعمل عبر WhatsApp وSlack وDiscord وiMessage وغيرها من القنوات. لكن إذا وضعت بوابته أو تحكم العقد أو SSH على الإنترنت العام دون مصادقة قوية، فإنك تمنح الغرباء مسارًا للوصول إلى سطر الأوامر على جهازك.
هذا الدليل يوضح الإعداد الآمن الافتراضي: إبقاء بوابة OpenClaw على واجهة الحلقة الخلفية فقط، وتعريضها فقط لشبكة Tailnet عبر Tailscale Serve، وتقوية SSH، والتحقق من خارج الشبكة أن البوابة ليست عامة.
اعتماد المشروع السريع كشف عن مخاوف أمنية حقيقية: مسح Shodan وجد 2,847 نسخة مكشوفة في الأسابيع القليلة الأولى، وقضية تدقيق أمان على GitHub أبلغت عن 512 مشكلة في قاعدة الشيفرة. جزء من ذلك كان ناتجًا عن ماسحات آلية وبعضها تغير منذ إعادة تسمية يناير 2026 إلى OpenClaw، لذا اعتبر الرقم إشارة تحذيرية وليس عددًا دقيقًا للثغرات الحالية. لا تحتاج لأن تكون خبيرًا أمنيًا—ما عليك سوى تجنّب نشر أسطح التشغيل قبل النشر.
ما الذي تكشفه فعليًا
اعتمادًا على طريقة التثبيت والتعريض، هناك ثلاث أسطح تستحق الفحص:
- المنفذ 22: وصول SSH إلى خادم VPS
- المنفذ 18789: واجهة تحكم البوابة وواجهة WebSocket API
- تحكم المتصفح/العقدة: تنفيذ العقد البعيدة وأتمتة المتصفح عبر نموذج إقران البوابة/العقدة
توثيق الوصول عن بُعد الحالي لـ OpenClaw يوضح أن WebSocket للبوابة يرتبط بواجهة الحلقة الخلفية افتراضيًا ويوصي بالحفاظ على هذا الإعداد ما لم تقم عمدًا باختيار LAN أو Tailnet أو ربط مخصص. هذا جيد. تظهر المخاطر عندما تتجاوز هذا الإعداد الافتراضي، تنشر منافذ Docker، تضيف وكيلًا عكسيًا، تُفعّل Funnel، أو تترك SSH مفتوحًا للعالم.
البوابة هي الأكبر. إنها سطح التشغيل لمساعدك، بما في ذلك مسارات استدعاء الأدوات. إذا كانت قابلة للوصول من الإنترنت وغيّرت المصادقة أو كانت ضعيفة أو تم تجاوزها أو تسريبها، قد يتمكن المهاجم من توجيه الوكيل أو استدعاء الأدوات بصلاحيات مستخدمك.
تحكم المتصفح حساس تقريبًا بنفس الدرجة. توثيق OpenClaw الحالي يوصي بتشغيل تحكم المتصفح عبر عقدة مقترنة على جهاز المتصفح ومعاملة إقران العقدة كالوصول التشغيلي. إذا كانت البوابة قادرة على استدعاء system.run على عقدة مقترنة، فهذا يعني تنفيذ شفرة عن بُعد على تلك العقدة، وفقًا لسياسة العقدة في البوابة وموافقات التنفيذ الخاصة بالعقدة نفسها.
SSH هو SSH. إذا كنت تستخدم المصادقة بكلمة مرور، فإن محاولات القوة الغاشمة لا مفر منها على خادم VPS عام.
حل Tailscale
بالنسبة إلى OpenClaw، يوفر Tailscale وصولًا عن بُعد دون نشر خدمات المشغل:
- تشغيل نسخة OpenClaw على خادم VPS أو جهاز محلي
- تبقى البوابة مقيدة بواجهة loopback وتُوصل عبر Tailscale Serve، أو تُربط مباشرةً بعنوان IP الخاص بالشبكة مع مصادقة صريحة
- تثبيت Tailscale على كل من الخادم وأجهزتك الشخصية
- الوصول إلى OpenClaw عبر عنوان IP الخاص بـ Tailscale أو اسم MagicDNS
- لا يرى أحد على الإنترنت شيئًا، ما لم تقم بتمكين Funnel أو أي وكيل عام عن قصد
هل يجب أن يدير OpenClaw إعدادات Tailscale؟
OpenClaw يحتوي على تكامل مدمج مع Tailscale يمكنه تكوين tailscale serve أو tailscale funnel للبوابة.
وضع Serve يبقي الأمور داخل شبكة tailnet فقط. تظل البوابة مقيدة بـ 127.0.0.1 بينما يتولى Tailscale توجيه الحركة وHTTPS. عندما يُفعَّل gateway.auth.allowTailscale، يستطيع OpenClaw مصادقة حركة تحكم UI/WebSocket باستخدام رؤوس هوية Tailscale والتحقق من المصدر عبر tailscale whois. هذا هو الوضع المناسب لمعظم النشرات الشخصية.
وضع Funnel يعرّض البوابة للجمهور عبر ميزة نقطة النهاية العامة في Tailscale. توضح وثائق Tailscale نفسها أن Funnel يوجه الحركة من الإنترنت إلى خدمة محلية. يرفض OpenClaw تشغيل Funnel ما لم يكن وضع مصادقة البوابة password، لكنك لا تزال تختار كشفًا عامًا لسطح المشغل.
توثيق الأمان في OpenClaw يوضح أن حقن الأوامر والوصول إلى الأدوات هما من المخاطر الأساسية للمساعد الشخصي. لا تمنح الوكيل مسارًا لجعل نفسه عامًّا بصمت. استخدم Serve عن قصد، وتجنب Funnel إلا إذا كنت بحاجة فعلية للوصول العام، واطلب موافقة تنفيذ لأي أمر tailscale.
إعداد OpenClaw بأمان
الخطوة 1: تثبيت Tailscale
على خادم VPS أو الخادم المحلي الخاص بك:
# Install Tailscalecurl -fsSL https://tailscale.com/install.sh | sh
# Authenticate (opens a browser to log in)sudo tailscale up
# Get your Tailscale IPtailscale ip -4# Output: 100.x.x.xعلى جهاز العميل، قم بتثبيت Tailscale من صفحة التحميل الرسمية وسجِّل الدخول إلى نفس الـ tailnet.
الآن كلا الجهازين على نفس الشبكة الخاصة. يمكنك اختبار الاتصال بـ VPS باستخدام عنوان IP الخاص بـ Tailscale، وسيتم توجيه الحركة عبر النفق المشفر.
الخطوة 2: ضبط OpenClaw لاستخدام Tailscale
النمط الأكثر أمانًا حاليًا هو: إبقاء البوابة على واجهة loopback وتعريضها لشبكة tailnet عبر وضع Serve في Tailscale.
في ملف إعداد OpenClaw:
{ gateway: { bind: "loopback", tailscale: { mode: "serve" }, },}بعد ذلك شغِّل البوابة باستخدام Serve:
openclaw gateway --tailscale serveتوضح وثائق OpenClaw أن هذا يبقي البوابة على 127.0.0.1 بينما يوفر Tailscale HTTPS وتوجيه الـ tailnet. تُفتح البوابة عبر https://<magicdns-name>/، وليس عبر عنوان الـ IP العام لخادم VPS.
إذا كنت تفضّل ربط مباشر إلى الـ tailnet بدلاً من وضع Serve، استخدم مصادقة صريحة للبوابة:
{ gateway: { bind: "tailnet", auth: { mode: "token", token: "replace-with-a-long-random-token", }, },}ثم اتصل من جهاز tailnet آخر:
http://<tailscale-ip>:18789/ws://<tailscale-ip>:18789عند تشغيل OpenClaw داخل Docker أو أي بيئة حاويات أخرى، كن حذرًا جدًا مع نشر المنافذ. النشر مثل -p 18789:18789 عادةً ما يربط جميع واجهات المضيف. يفضَّل ربط الـ loopback مع Tailscale Serve، أو ربط جانب المضيف صراحةً إلى عنوان IP الخاص بـ Tailscale بعد التأكد من أن الحاوية ما زالت تستقبل الحركة:
TAILSCALE_IP=$(tailscale ip -4)docker run ... -p "$TAILSCALE_IP:18789:18789" ...بعد أي تعديل في Docker، تحقق من الخارج باستخدام nmap ومن داخل النظام باستخدام ss. يمكن لـ Docker أن يتجاوز أو يعيد ترتيب افتراضات جدار الحماية على المضيف إذا لم تأخذ ذلك في الاعتبار.
الخطوة 3: تأمين SSH
حتى مع Tailscale، يجب تأمين SSH بشكل صحيح:
# احتفظ بجلسة SSH الحالية مفتوحة أثناء تنفيذ هذه الخطوات.# أولاً، من جهاز العميل، تأكد من إمكانية SSH عبر Tailscale:ssh your-user@SERVER_TAILSCALE_IP
# ضع إعدادات التعزيز في ملف drop‑in بدلاً من تعديل sshd_config بالكامل.sudo tee /etc/ssh/sshd_config.d/99-openclaw-hardening.conf >/dev/null <<'EOF'PasswordAuthentication noPermitRootLogin noKbdInteractiveAuthentication noEOF
# تحقق من صحة الإعداد قبل إعادة التحميل. لا تتخطى هذه الخطوة.sudo sshd -tsudo systemctl reload ssh || sudo systemctl reload sshdهذا يعطل تسجيل الدخول باستخدام كلمة مرور ويمنع الدخول كـ root. الخطوة التالية تستخدم UFW لمنع SSH العام تمامًا مع الاستمرار في السماح بـ SSH عبر tailscale0.
الخطوة 4: قواعد جدار الحماية
قم بإعداد جدار حماية كطبقة أمان ثانية:
# Using UFW (Ubuntu/Debian)sudo ufw allow in on tailscale0sudo ufw default deny incomingsudo ufw default allow outgoingsudo ufw enablesudo ufw delete allow 22/tcp || truesudo ufw reloadsudo ufw status verboseدليل تقوية الأمان الخاص بـ Tailscale على Ubuntu يستخدم نفس النمط: السماح لـ tailscale0، رفض كل حركة الدخول الأخرى، ثم التحقق من أن اتصال SSH العام ينتهي بمهلة بينما يظل SSH إلى العنوان 100.x.y.z يعمل. إذا كنت تشغل موقعًا عامًا على نفس الـ VPS، احتفظ فقط بالقواعد العامة التي تحتاجها فعلاً، مثل 80/tcp و 443/tcp.
فحص التعرض
التحقق من المنافذ المفتوحة من الخارج
من جهاز ليس على شبكة Tailscale الخاصة بك:
# تحقق ما إذا كانت المنافذ العامة الشائعة مكشوفةnmap -p 22,80,443,18789 YOUR_PUBLIC_IP
# النتيجة المتوقعة لجهاز مؤمن:# 22/tcp filtered ssh# 18789/tcp filtered unknownإذا ظهر 22 أو 18789 كـ open بدلاً من filtered أو closed، فهناك مشكلة. إذا كان 80 أو 443 مفتوحًا، تأكد أن ذلك يعود فقط إلى موقعك العام المقصود أو نقطة نهاية Tailscale Funnel، وليس إلى بوابة OpenClaw عن طريق الخطأ.
التحقق مما يستمع محليًا
على خادم OpenClaw الخاص بك:
# عرض جميع المنافذ المستمعة وما الذي ترتبط بهsudo ss -tulpn | grep LISTEN
# ابحث عن أسطر مشابهة لهذه (مناسبة لـ Serve):# tcp LISTEN 0 128 127.0.0.1:18789 *:*## أو هذه (مقبولة للربط المباشر على tailnet مع المصادقة):# tcp LISTEN 0 128 100.x.y.z:18789 *:*## **ليس** مثل هذه (سيئة):# tcp LISTEN 0 128 0.0.0.0:18789 *:*إذا رأيت 0.0.0.0 أو ::: (ما يعادل IPv6)، فهذا يعني أن الخدمة مكشوفة للعالم.
تدقيق الأمان المدمج
OpenClaw يتضمن أمرًا لتدقيق الأمان security audit command يتحقق من تكوينك مقابل أفضل ممارسات الأمان:
openclaw security audit --deepopenclaw security audit --deep --fixالتدقيق يفحص تعريض البوابة، وضع Tailscale، إعدادات المصادقة، وصول القنوات، سياسة الأدوات، جرد الإضافات، وأذونات الملفات. اعتبر --fix أداة مساعدة مفيدة، لا بديلًا عن قراءة النتائج.
ما لا يحله هذا
Tailscale يزيل أكبر خطأ: تعريض المشغل للجمهور. لكنه لا يحل كل شيء:
تخزين الاعتمادات: OpenClaw يخزن نصوص الجلسات، رموز OAuth، ومفاتيح API على القرص. تأكد من أن لهذه الملفات أذونات صحيحة (chmod 600 للملفات، chmod 700 لأدلة الإعداد الخاصة) ولا تكون ضمن نظام التحكم بالإصدارات. التدقيق المدمج يتحقق من ذلك.
عزل الإضافات: الإضافات تُشغَّل بصلاحيات المستخدم الكامل. لا تثبّت إلا الإضافات من مصادر تثق بها، وراجع القدرات التي تطلبها. أداة التدقيق تُجرد الإضافات المثبتة.
أمان الجهاز: إذا تم اختراق حساب Tailscale الخاص بك أو سرق جهاز على الشبكة الخاصة، يمكن للمهاجم الوصول إلى نسخة OpenClaw. فعّل تفويض أجهزة Tailscale لطلب موافقة على الأجهزة الجديدة.
قائمة التحقق من النشر
قبل اعتبار نسخة OpenClaw/Moltbot جاهزة للإنتاج:
- تثبيت Tailscale وتوثيقه على كل من الخادم والعميل
- إبقاء البوابة على واجهة loopback باستخدام Tailscale Serve، أو ربطها بـ
tailnetمع تفويض صريح - ضبط SSH لتعطيل المصادقة بكلمة المرور وتسجيل الدخول كجذر
- تكوين جدار الحماية (UFW أو iptables/nftables) للسماح بـ
tailscale0ومنع أي وصول عام غير ضروري - فحص nmap الخارجي يظهر جميع المنافذ
filteredأوclosed - أمر
ss -tulpnالداخلي يظهر البوابة مربوطة بـ127.0.0.1أو::1أو عنوان IP الخاص بـ Tailscale فقط - ملفات الاعتماد لديها أذونات 600 وأدلة الإعداد الخاصة بها أذونات 700
- تشغيل
openclaw security audit --deepومعالجة جميع النتائج - إذا كنت تستخدم إدارة Tailscale في OpenClaw، تم تمكين موافقات التنفيذ
- تكوين نسخ احتياطية منتظمة (بيانات OpenClaw + الإعدادات)
الموارد
- دليل أمان OpenClaw
- تكامل Tailscale مع OpenClaw
- مرجع سطر أوامر Tailscale Serve CLI
- Tailscale Funnel
- استخدام UFW لتقوية خادم Ubuntu
- تدقيق أمان: 512 نتيجة (قضية على GitHub)
- دليل فحص الشبكة باستخدام Nmap