SSD Nodes Learn 🎉 VPS من $5.50/شهر
الأدلة Matt Connorبقلم Matt Connor

استضافة خادم SimpleX للمحادثات ذاتياً على VPS

شغّل مرحّل SimpleX SMP على VPS مع تثبيت إصدار محدد، وبصمة يحتاجها العملاء، والمنافذ، ومستخدم خدمة بلا صلاحيات، والنسخ الاحتياطية وTLS ونموذج التهديد.

ما الذي يفعله خادم SimpleX للمحادثات المستضاف ذاتياً

لاستضافة خادم SimpleX للمحادثات ذاتياً، تُشغّل عَفريتاً واحداً على VPS: smp-server، وهو المرحّل الخاص بـSMP (بروتوكول المراسلة simplex). يحتفظ هذا العَفريت بقوائم انتظار الرسائل التي يكتب إليها جهات اتصالك ويقرأون منها. ويوجد عَفريت ثانٍ اختياري يُسمى xftp-server لترحيل عمليات نقل الملفات. يأتي كلاهما من المشروع نفسه، simplexmq، ويتكوّن كل منهما من ملف ثنائي واحد، وملف إعداد، وسجل لا تُضاف إليه إلا عمليات الإلحاق.

هذا الشرح موجّه إلى المشغّل، وليس إلى مستخدم التطبيق. لا يحتفظ المرحّل بحسابات أو قوائم جهات اتصال أو سجل محادثات. بل يحتفظ بقوائم انتظار، وبعض النصوص المشفّرة التي لم تُسلَّم، وشهادة تحدد هويته. وما تتحمله أنت هو ضمان وقت التشغيل، وتوفير قدر صغير من مساحة القرص، والتعامل مع البيانات الوصفية التي تمر عبر خادمك.

كل أمر ومسار ومنفذ وخيار أدناه مأخوذ من الوثائق الخاصة بالمشروع: صفحة استضافة خادم SMP، وصفحة خادم XFTP، ووثيقة أمان البروتوكول. عند أهمية رقم معين، تُذكر الصفحة التي أُخذ منها بجانبه.

لماذا تحتاج شبكة بلا معرّفات مستخدمين إلى مرحّلات

لا تستخدم SimpleX أسماء مستخدمين أو أرقام هواتف أو معرّفات حسابات. جهة الاتصال هي قائمة انتظار أحادية الاتجاه: عنوان على مرحّل يكتب فيه أحد الطرفين، ويقرأ منه الطرف الآخر. لا تشترك جهتا اتصال لديك في أي معرّف يمكن لخادم استخدامه للربط بينهما.

مع ذلك، يجب أن توجد قوائم الانتظار هذه في مكان ما لسبب بسيط. نادراً ما يكون هاتفان متصلين بالإنترنت في الثانية نفسها. يجب أن يتولى مكوّن ما استقبال الرسالة الآن والاحتفاظ بها إلى أن يطلبها الجهاز الآخر. هذه هي المهمة الكاملة لمرحّل SMP. ويعني ذلك أيضاً أن الجهازين لا يتصلان ببعضهما مباشرة، لذلك لا يعرف أيٌّ منهما عنوان IP الخاص بالآخر. يتولى المرحّل بدلاً من ذلك امتصاص هذا الانكشاف.

يُعد اسم مضيف المرحّل جزءاً من عنوان قائمة الانتظار، ولذلك يظهر في كل رابط دعوة تنشئه منه. تذكّر ذلك عندما تقرأ نموذج التهديد قرب النهاية.

ما الذي يستطيع الـrelay رؤيته وما لا يستطيع رؤيته

يحدّد المشروع نموذج التهديد هذا في protocol/security.md، ومن المفيد قراءته قبل تثبيت أي شيء، لأن هذا الـrelay سيصبح تحت إدارتك بعد إكمال هذا الدليل. لا يستطيع الـrelay، حتى إذا كان المهاجم يسيطر عليه بالكامل، معرفة محتوى الرسائل أو نوعها، أو إضافة رسائل فردية أو تكرارها أو إفسادها دون إمكانية اكتشاف ذلك، أو كسر التشفير من الطرف إلى الطرف عبر هجوم نشط.

تسرد الصفحة نفسها ما يستطيع الـrelay فعله. يمكنه معرفة متى يكون مستلم في queue متصلاً بالإنترنت. ويمكنه إحصاء عدد الرسائل التي تمر عبر queue. ويمكنه معرفة عنوان IP الخاص بالمستلم. كما يمكنه إسقاط كل رسالة مستقبلية في queue، أو تقديم معلومات غير صحيحة عن حالة queue.

إذن الفصل واضح. سرية المحتوى من مسؤولية العميل، ولا يغيّر الاستضافة الذاتية شيئاً فيها. أما البيانات الوصفية والتوافر فمن مسؤولية مشغّل الـrelay، والاستضافة الذاتية تسلّمهما إليك.

ما تحتاج إليه قبل البدء

  • VPS يعمل بنظام Ubuntu 22.04 أو 24.04. ينشر المشروع ملفات إصدار ثنائية مبنية لهذين الإصدارين تحديداً، وبمعماريتي x86-64 وaarch64.
  • اسم نطاق يتضمن سجل A يشير إلى VPS، بالإضافة إلى سجل AAAA إذا كان لديك IPv6. تستخدم الوثائق smp1.example.com مثالاً.
  • وصول root أو وصول sudo، مع إبقاء جلسة SSH ثانية مفتوحة أثناء تعديل الجدار الناري.
  • مكان خارج الخادم لتخزين نسخة احتياطية، لأن مجلد الإعدادات يمثّل هوية الخادم.

على مثيل ARM، استخدم ملف aarch64 بدلاً من x86-64. لا يتغير أي شيء آخر في هذا الدليل، والاختيار بين خطط VPS بمعمارية ARM وx86 يتعلق بالسعر والسرعة لكل نواة، وليس بما إذا كان هذا البرنامج يعمل.

ثبّت إصداراً محدداً، ولا تستخدم "latest"

يوفّر المشروع script للتثبيت يجلب الإصدار الحالي ويسجّل الأمر simplex-servers-update. يعمل ذلك، لكن ثبّت الإصدار على أي حال. فالـrelay الذي يتغير ملفه التنفيذي دون علمك يصعب تحليل سلوكه عند حدوث عطل.

اعتباراً من August 2026، الإصدار الحالي من simplexmq هو v6.5.0، وقد نُشر في 29 April 2026. تحقّق من صفحة الإصدارات لمعرفة الـtag الذي تريده، ثم استخدم هذا الـtag في كل المواضع أدناه.

sudo useradd -m smp
sudo install -d -o smp -g smp -m 755 /etc/opt/simplex /var/opt/simplex

لا يعيّن useradd -m smp أي كلمة مرور، لذلك لا يسجّل أي شخص الدخول مباشرةً باسم smp. أنشئ الدليلين بنفسك قبل تشغيل أي شيء آخر، لأن /etc/opt مملوك لـroot ووضعه 755، وهذا لا يترك للمستخدم smp مكاناً لكتابة دليل الإعداد الخاص به.

VER=v6.5.0
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/smp-server-ubuntu-24_04-x86-64" -o /tmp/smp-server
sha256sum /tmp/smp-server

قارن قيمة hash هذه بقيم SHA2-256 المنشورة في ملاحظات الإصدار للـtag نفسه. يوقّع المشروع أيضاً checksums الإصدارات باستخدام مفتاح SimpleX Chat FB44AF81A45BDE327319797C85107E357D4A17FC، كما هو موضّح في صفحة الخادم، ولذلك يمكنك التحقق من التوقيع بدلاً من الوثوق بالصفحة التي حصلت منها على قيمة hash.

sudo install -m 755 -o root -g root /tmp/smp-server /usr/local/bin/smp-server

ثبّته بملكية root عمداً. تعمل الخدمة باسم smp، لذلك لا يمكن لاختراق الخدمة أن يعيد كتابة الملف التنفيذي الذي تبدأ منه.

تهيئة الخادم والقيمتين السريتين اللتين يطبعهما

sudo su smp -c "smp-server init --yes --store-log --daily-stats --no-password --fqdn=smp1.example.com"
  • --store-log (-l) يكتب سجلاً للصفوف بنمط الإلحاق فقط إلى /var/opt/simplex/smp-server-store.log، لذلك يستمر الـrelay بعد إعادة التشغيل. من دونه، تؤدي إعادة التشغيل إلى حذف كل صف، ما يوقف عمل كل جهة اتصال تمر عبرك.
  • --daily-stats (-s) يكتب العدادات بصيغة CSV إلى /var/opt/simplex/smp-server-stats.daily.log.
  • --fqdn يضع نطاقك في الشهادة المُنشأة. استخدم --ip بدلاً منه إذا لم يكن لديك نطاق.
  • --no-password يتيح لأي شخص إنشاء صف على الـrelay الخاص بك. للحفاظ على خصوصيته، اضبط create_password ضمن [AUTH] في /etc/opt/simplex/smp-server.ini بعد التهيئة، بدلاً من تمرير --password هنا، لأن سطر الأوامر يظهر في سجل shell وقائمة العمليات أثناء تشغيله.

تنشئ التهيئة شهادة وتطبع القيمتين اللتين يجب الاحتفاظ بهما. القيمة الأولى هي بصمة، وهي سلسلة base64 تُكتب أيضاً إلى /etc/opt/simplex/fingerprint. القيمة الثانية هي عنوان الخادم الكامل، ويتكوّن من البصمة واسم المضيف. انسخ القيمتين الآن.

تنشئ التهيئة أيضاً /etc/opt/simplex/ca.key، وتطلب الوثائق نقل هذا الملف إلى وحدة تخزين غير متصلة بالإنترنت. السبب مهم: يثبّت العملاء بصمة مرجع الشهادة هذا، لذلك يمكن لأي شخص يملك ca.key إصدار شهادة خادم جديدة يقبلها عملاؤك على أنها شهادتك. لن تحتاج إلى الملف مجدداً إلا لتدوير شهادة الخادم لاحقاً باستخدام smp-server cert.

تعامل مع التهيئة باعتبارها خطوة تُنفَّذ مرة واحدة. تأتي البصمة الموجودة في عنوانك من المرجع الذي تنشئه التهيئة، لذلك يؤدي إنشاء ذلك المرجع مجدداً إلى عنوان مختلف، ويصبح العنوان الذي وزعته سابقاً غير مرتبط به.

شغِّله عبر systemd كمستخدم غير مميّز

اكتب /etc/systemd/system/smp-server.service تماماً كما يرد في الوثائق:

[Unit]
Description=SMP server systemd service

[Service]
User=smp
Group=smp
Type=simple
ExecStart=/usr/local/bin/smp-server start +RTS -N -RTS
ExecStopPost=/usr/bin/env sh -c '[ -e "/var/opt/simplex/smp-server-store.log" ] && cp "/var/opt/simplex/smp-server-store.log" "/var/opt/simplex/smp-server-store.log.bak"'
LimitNOFILE=65535
KillSignal=SIGINT
TimeoutStopSec=infinity

[Install]
WantedBy=multi-user.target

تتضمن وحدة المنبع أيضاً AmbientCapabilities=CAP_NET_BIND_SERVICE. يوجد هذا السطر لأن العملية تعمل بصفتها smp، ولأن المنافذ التي تقل أرقامها عن 1024 تكون مغلقة أمام عملية non-root؛ لذلك، لا يستطيع daemon ربط المنفذين 80 أو 443 من دونه. أضِفه إذا كنت تخدم عبر هذين المنفذين. يهم LimitNOFILE=65535 لأن كل عميل مشترك يحتفظ باتصال TCP مفتوح، بينما الحد الافتراضي أقل بكثير من العدد الذي يحتاج إليه relay مشغول. ينسخ ExecStopPost سجل المتجر إلى ملف .bak عند كل إيقاف، ما يمنحك نقطة تراجع مجانية واحدة.

sudo systemctl daemon-reload
sudo systemctl enable --now smp-server
sudo systemctl status smp-server
sudo journalctl -fu smp-server

يسجّل التشغيل السليم عنوان الخادم. بعد ذلك، تأكد من أن المقابس مفتوحة فعلياً:

sudo ss -tlnp | grep -E ':(443|5223)'

يجب أن يذكر السطران smp-server. تشغيل daemon بحسابه الخاص ومن دون صلاحيات sudo هو الممارسة نفسها الموضحة في حسابات منفصلة لكل خدمة على VPS، وهو ما يمنع تحوّل خلل في أحد daemons الشبكية إلى shell بصلاحيات root.

ما المنافذ التي يجب فتحها، ومنفذ واحد يجب إبقاؤه مغلقاً

تسرد الوثائق ثلاثة منافذ: 5223/tcp و443/tcp و80/tcp. المنفذ 5223 هو ناقل SMP. يضبط الإعداد المرفق port: 5223,443 ضمن [TRANSPORT]، لذلك يستجيب البروتوكول نفسه أيضاً على 443. وهذا مهم لأن كثيراً من الشبكات المقيّدة تسمح بالاتصالات الصادرة عبر 443 ولا تسمح بغيره. لا يلزم المنفذ 80 إلا لصفحة المعلومات الاختيارية وإعادة توجيهها إلى HTTPS.

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5223/tcp
sudo ufw enable

لا تفتح 5224. هذا هو منفذ التحكم، وتصل إليه الوثائق من الخادم نفسه باستخدام nc 127.0.0.1 5224. يعرض حالة الخادم ويحذف قوائم الانتظار، لذلك يجب أن يبقى على loopback مع ضبط كلمتي مرور المسؤول والمستخدم ضمن [AUTH]. إذا كنت جديداً على الأداة، يشرح الأساسيات العملية لـ ufw على VPS ترتيب القواعد وكيفية تجنب فقدان الوصول إلى الخادم.

هناك عنصر تحكم آخر يسبب مشكلات لبعض المستخدمين. يشغّل معظم مزوّدي الخدمة جداراً نارياً للشبكة من لوحة التحكم، وهو منفصل عن ufw على الخادم. قد يكون المنفذ مفتوحاً في ufw، ومع ذلك يُسقط قبل أن يصل إليك.

عنوان الخادم الذي يحتاج إليه عملاؤك

smp://<fingerprint>[:<password>]@<public_hostname>[,<onion_hostname>]

هذا النص هو كامل إعدادات جهة العميل. ألصقه في إعدادات الخادم داخل التطبيق، أو دع شخصاً يمسح رمز QR الذي يعرضه التطبيق لهذا النص. تذكر الوثائق أن رمز QR يتضمن كلمة المرور، ولذلك يمكن للشخص الذي يمسحه أيضاً استلام الرسائل عبر خادمك.

هناك سلوك موثّق يفاجئ الجميع. لا يؤثر إضافة خادمك في التطبيق إلا على جهات الاتصال التي تنشئها بعد ذلك. تبقى جهات الاتصال الحالية على مرحّلات الترحيل التي أُنشئت قوائم انتظارها عليها، ولا تنتقل إليها. ولهذا السبب أيضاً لا يمكنك إيقاف مرحّل الترحيل في اليوم التالي لاستبداله.

إضافة مرحّل ملفات XFTP

يمثّل XFTP (بروتوكول نقل الملفات SimpleX) الجزء الخاص بالملفات من الشبكة، وهو daemon منفصل له عنوانه الخاص. وفقاً لـإعلان XFTP الصادر عن المشروع، لا تملك المرحّلات أي بيانات وصفية عن الملفات: فهي ترى أجزاءً منفردة، حجم كل منها 256kb أو 1mb أو 4mb، ويُصرَّح بالوصول إليها باستخدام بيانات اعتماد مجهولة. يمكن للمرسل توزيع أجزاء ملف واحد على عدة مرحّلات، لذلك يحتفظ خادمك بأجزاء وليس بملفات.

sudo useradd -m xftp
sudo install -d -o xftp -g xftp -m 755 /etc/opt/simplex-xftp /var/opt/simplex-xftp /srv/xftp
curl -fL "https://github.com/simplex-chat/simplexmq/releases/download/$VER/xftp-server-ubuntu-24_04-x86-64" -o /tmp/xftp-server
sudo install -m 755 -o root -g root /tmp/xftp-server /usr/local/bin/xftp-server
sudo su xftp -c "xftp-server init -l --fqdn=xftp1.example.com -q '20gb' -p /srv/xftp/"

يوجد إعداد الخدمة في /etc/opt/simplex-xftp/، وحالتها في /var/opt/simplex-xftp/، وأجزاء الملفات في المسار الذي يحدده -p. وتأتي وحدة systemd بالبنية نفسها، مع User=xftp وExecStart=/usr/local/bin/xftp-server start +RTS -N -RTS. يطبع Init عنوان xftp:// بالتنسيق نفسه المستخدم لعنوان SMP، مع بصمة خاصة به في /etc/opt/simplex-xftp/fingerprint.

يجب التخطيط لتعارض في المنافذ. المنفذ الموثّق لخادم XFTP هو 443، كما يدرج إعداد SMP المنفذ 443 أيضاً. لا يمكن لعمليتين ربط المنفذ نفسه على العنوان نفسه، لذلك يجب تغيير أحد الإعدادين عند تشغيلهما على VPS واحد. أبسط حل هو ضبط port: 5223 في قسم [TRANSPORT] الخاص بـSMP، وترك المنفذ 443 لمرحّل الملفات، لكن ذلك يلغي إمكانية استخدام 443 كخيار احتياطي للعملاء على الشبكات المقيّدة. البدائل هي إضافة عنوان IP ثانٍ إلى VPS نفسه، أو استخدام VPS ثانٍ.

حدّد الحصة بواقعية. تمثّل -q '20gb' مقداراً من مساحة القرص تلتزم بتوفيره. مرحّل الملفات هو الجزء الذي يستهلك مساحة القرص وعرض النطاق. أما مرحّل الرسائل فلا يكاد يستهلك أياً منهما.

ما يوجد على القرص وما تستعيده النسخة الاحتياطية

يوجد دليلان مهمان. /etc/opt/simplex/ هو الهوية، ويحتوي على smp-server.ini وشهادة الخادم ومفتاحه، وعلى ca.key وfingerprint. أما /var/opt/simplex/ فهو الحالة، إذ يحتوي smp-server-store.log على قوائم الانتظار، وعندما يكون restore_messages: on، على الرسائل التي لم تُسلَّم، إلى جانب ملف الإحصاءات اليومي.

sudo systemctl stop smp-server
sudo tar czf /root/simplex-backup.tgz -C / etc/opt/simplex var/opt/simplex
sudo chmod 600 /root/simplex-backup.tgz
sudo systemctl start smp-server

يجب أن تكون طبيعة هذا الأرشيف واضحة. فهو ليس أرشيفاً للرسائل؛ فالعناصر الموجودة في قائمة الانتظار هي نصوص مشفّرة لمفاتيح لم يحتفظ بها المرحّل قط، كما أن إعداد [STORE_LOG] المضمّن تنتهي صلاحيته للرسائل بعد 21 يوماً على أي حال. إنه نسخة من هوية الخادم، بما في ذلك ca.key، ولذلك يمكن لأي شخص يحصل على الملف أن ينتحل هوية مرحّلك أمام جهات اتصالك. شفّره واحتفظ به خارج الخادم.

الفائدة تظهر عند الاستعادة. أعد /etc/opt/simplex إلى VPS جديد، ووجّه اسم DNS نفسه إليه، وستبقى بصمة الخادم من دون تغيير، لذلك ستظل كل العناوين التي وزّعتها تعمل. إذا فقدت ذلك الدليل، فلا توجد وسيلة للاستعادة: فالتثبيت الجديد يعني بصمة جديدة، والبصمة الجديدة تعني عنواناً جديداً، وهذا يعني فقدان كل جهة اتصال كانت تمر عبر مرحّلك.

TLS: شهادتان تؤديان وظيفتين مختلفتين

لا يستخدم نقل SMP مرجعاً عاماً لإصدار الشهادات. ينشئ Init مرجعاً خاصاً وشهادة خادم، وتنتقل بصمة ذلك المرجع ضمن عنوان الخادم. يتحقق العميل من أن ما يقدمه الخادم يطابق تلك البصمة المثبّتة، وهذا ما يصفه المشروع بأنه حماية الاتصال بين العميل والخادم من هجمات الرجل في الوسط. لا يوجد عميل ACME (بيئة إدارة الشهادات التلقائية) لتشغيله على ذلك المنفذ، وتتم عملية التدوير يدوياً عبر smp-server cert مع ضبط SMP_SERVER_CFG_PATH.

صفحة المعلومات الاختيارية هي موضع استخدام الشهادة الأخرى. يحدّد قسم [WEB] فيها static_path وhttps: 443 وcert: /etc/opt/simplex/web.crt وkey: /etc/opt/simplex/web.key. لم يسمع المتصفح من قبل بالمرجع الخاص بك، لذلك تكون هذه هي الحالة التي ينبغي فيها استخدام شهادة موثوقة من جهة عامة. يضع دليل البدء السريع باستخدام Docker‏ Caddy أمام الخادم لهذا الغرض تحديداً، ويصدر الشهادة تلقائياً.

الوصول إلى relay عبر Tor

تتضمن الوثائق قسماً عن Tor يثبّت Tor من مستودع Tor Project ويضيف خدمة مخفية في /etc/tor/torrc:

SOCKSPort 0
HiddenServiceNonAnonymousMode 1
HiddenServiceSingleHopMode 1
HiddenServiceDir /var/lib/tor/simplex-smp/
HiddenServicePort 5223 localhost:5223
HiddenServicePort 443 localhost:443

اقرأ سطري الوضع بعناية. تعني single hop وnon-anonymous أن موقع relay نفسه غير مخفي. يكون عنوان onion سريعاً، ويوفّر للعملاء طريقة للوصول لا تكشف عنوان IP الخاص بهم لك، لكن يظل الخادم قابلاً للعثور عليه عبر عنوان IP العام الخاص به. يُضاف اسم المضيف onion من /var/lib/tor/simplex-smp/hostname في نهاية عنوان الخادم بعد فاصلة. إذا أردت إخفاء موقع الخادم أيضاً، فهذا يتطلب إعداداً مختلفاً، وتتناول تشغيل خدمة onion حقيقية على VPS هذه المفاضلة. يوضّح Tor مقارنةً بـ VPN الفرق في البيانات التي يخفيها كل من الأداتين، وينطبق ذلك هنا مباشرة.

نموذج التهديد: ما الذي يتغير عند الاستضافة الذاتية

ما الذي تكسبه. توجد البيانات الوصفية، مثل قوائم الانتظار الموجودة، ووقت قراءتها، والعناوين التي تتصل بها، على جهاز تتحكم فيه، وأنت تحدد مدة الاحتفاظ بها. كما أنك لا تكون جزءاً من مجموعة كبيرة يمكن طلب بياناتها دفعة واحدة.

ما الذي لا تكسبه، بوضوح:

  • لا يتغير التشفير. كانت الرسائل مشفّرة من طرف إلى طرف قبل أن تنشئ هذا النظام، وتظل مشفّرة من طرف إلى طرف بعده. الاستضافة الذاتية قرار يتعلق بالبيانات الوصفية، وليس قراراً يتعلق بالتشفير.
  • يرى مزود VPS لديك حركة الشبكة المتجهة إلى عنوان IP الخاص بك، ويحتفظ ببيانات الفوترة الخاصة بك. لقد نقلت الثقة من مشغّل خدمة مراسلة إلى مشغّل خدمة استضافة. لم تلغِها.
  • relay الخاص بك مجموعة صغيرة. إذا كان يخدم منزلاً واحداً، فإن الاتصال به يحدد ذلك المنزل، كما يظهر اسم المضيف الخاص به داخل كل رابط دعوة ترسله منه. يخفي relay عام نشط هويتك بشكل أفضل من هذه الناحية، وهذه هي المقايضة الفعلية.
  • أصبحت مسؤولية التوافر عليك. يعني امتلاء القرص أو تعطل الجهاز توقف تسليم الرسائل، ولا تملك جهات اتصالك وسيلة لتجاوزك والتوجيه من مسار آخر.

ينطبق المنطق نفسه على أي خدمة خاصة تضعها على جهاز تملكه، سواء كان هذا relay أو شبكة WireGuard VPN على VPS تملكه. أنت تختار الجهة التي ترى البيانات الوصفية. لكنك لا تجعلها تختفي.

عندما لا يعمل

تبدأ الخدمة ثم تتوقف فوراً. اقرأ sudo journalctl -u smp-server -n 50. يذكر فشل الربط المنفذ الذي تعذّر حجزه. ثم شغّل sudo ss -tlnp | grep :443 لمعرفة العملية التي تستخدمه حالياً. في الخادم الجديد تكون هذه العملية عادةً nginx أو Caddy أو خادم XFTP الذي ثبّتَّه قبل ساعة.

يتعذّر على Init كتابة إعداداته. يؤدي تشغيل smp-server init بصفة المستخدم smp قبل وجود /etc/opt/simplex إلى خطأ في الصلاحيات، لأن /etc/opt مملوك لـ root. أنشئ الدليل بالمالك الصحيح أولاً، ثم أعد تشغيل init.

يتعذّر على العملاء الوصول إلى relay. تحقّق من أن الاسم يُحلّ إلى العنوان الصحيح باستخدام dig +short smp1.example.com. ثم اختبر المنفذ من حاسوبك المحمول، وليس من الخادم: nc -vz smp1.example.com 5223. إذا فشل الاتصال من خارج الخادم بينما يعرض ss أن المقبس مفتوح على الخادم، فهذا يشير إلى جدار الشبكة الناري لدى مزوّد الخدمة. وهذه آلية تحكم منفصلة عن ufw.

يتعذّر على جهة اتصال الاتصال عبر relay. يجب أن تتطابق البصمة الموجودة في العنوان الذي شاركته مع المحتوى الحالي لـ /etc/opt/simplex/fingerprint. إذا ضبطت create_password ضمن [AUTH]، فيجب أن يتضمن العنوان كلمة المرور أيضاً، وإلا فلن يُسمح للعميل بإنشاء قائمة انتظار.

لم يتحرك شيء بعد إضافة الخادم في التطبيق. هذا سلوك مقصود. تستخدم جهات الاتصال الجديدة فقط relay المضاف حديثاً. أما جهات الاتصال الحالية فتحتفظ بقوائم الانتظار الموجودة لديها.

FAQ

هل يجعل تشغيل خادم SimpleX ذاتياً رسائلي أكثر أماناً؟

لا، وهذا مقصود. يشفّر SimpleX الرسائل من طرف إلى طرف بين الأجهزة، لذلك لا يملك خادم الترحيل المفاتيح، أياً كان مشغّله. يغيّر التشغيل الذاتي الجهة التي تراقب البيانات الوصفية المرتبطة بهذه الرسائل: قوائم الانتظار الموجودة، ووقت قراءتها، وعناوين IP التي تتصل بها. هذا قرار يتعلق بالبيانات الوصفية. إذا كان سبب التشغيل الذاتي هو الحصول على تشفير أقوى، فالتشفير موجود أصلاً.

ماذا يستطيع مشغّل ترحيل SimpleX أن يرى فعلياً؟

يوضّح protocol/security.md في المشروع ذلك. لا يستطيع خادم الترحيل قراءة محتوى الرسائل أو أنواعها، ولا يستطيع تعديل رسائل فردية دون اكتشاف ذلك، ولا يستطيع كسر التشفير من طرف إلى طرف عبر هجوم نشط. لكنه يستطيع معرفة وقت اتصال مستلم قائمة الانتظار، وعدّ الرسائل التي تمر عبر قائمة انتظار، ومعرفة عنوان IP الخاص بالمستلم، وإسقاط الرسائل المستقبلية في قائمة انتظار، أو الكذب بشأن حالة قائمة الانتظار. هذه هي الصلاحيات التي تملكها عندما يصبح خادم الترحيل ملكك.

هل أحتاج إلى اسم نطاق وشهادة TLS؟

تحتاج إلى نطاق لإعداد قابل للاستخدام، ويقبل smp-server init استخدام --ip إذا لم يكن لديك نطاق فعلاً. لا تحتاج إلى شهادة من جهة عامة لمنفذ المراسلة: إذ ينشئ init جهة إصدار خاصة به، ويثبت العميل بصمة الإصبع الظاهرة في عنوان smp:// الخاص بك. لا تحتاج إلى شهادة موثوقة علناً إلا لصفحة معلومات الويب الاختيارية، التي تُضبط باستخدام cert وkey في قسم [WEB] من smp-server.ini.

ماذا يحدث إذا فقدت /etc/opt/simplex؟

يتوقف كل عنوان وزعته عن العمل. يحتوي ذلك الدليل على جهة إصدار الشهادات التي تكون بصمتها مضمّنة في عنوان خادمك، لذلك ينتج عن إعادة البناء بصمة مختلفة، وبالتالي خادم مختلف. لا يمكن إصلاح قوائم انتظار جهات الاتصال الموجودة على خادم الترحيل ذلك من جانب العميل. أنشئ نسخة احتياطية مشفّرة من الدليل وخزّنها خارج الخادم، وخزّن ca.key دون اتصال بالإنترنت وفقاً لتعليمات الوثائق، لأن من يملكه يستطيع انتحال خادم الترحيل الخاص بك.

هل يمكنني تشغيل ترحيل SMP وترحيل ملفات XFTP على VPS نفسه؟

نعم، مع ضرورة حل تعارض واحد. المنفذ الموثّق لخادم XFTP هو 443، وتعرض إعدادات SMP الافتراضية port: 5223,443، لذلك يحاول كلاهما استخدام المقبس نفسه. خصّص المنفذ 443 لأحدهما: اضبط port: 5223 لخادم SMP، أو انقل ترحيل الملفات إلى عنوان IP ثانٍ أو VPS ثانٍ. اضبط أيضاً حصة التخزين بما يتناسب مع مساحة القرص المتاحة فعلياً، لأن ترحيل الملفات هو المكوّن الذي يستهلك مساحة القرص وعرض النطاق الترددي.