تثبيت خادم XMPP (Jabber) مع Prosody [محدث]


كثير منا يستخدم غتلك o الفيسبوك الدردشة دون معرفة أن البروتوكول الذي نستخدمه للتواصل ليس سوى XMPP (بروتوكول الحضور والرسائل الموسعة) وهو مفتوح أيضًا.

En جنو / لينكس لدينا العديد من التطبيقات لإعداد خادمنا الخاص XMPP o بربر كما هو معروف أيضًا ، بعضها أكثر تعقيدًا من البعض الآخر عند التكوين. على سبيل المثال ، لدينا اجابيرد، وهو أمر بسيط وخفيف للغاية ، ولكن إذا أردنا تحسين المزيد ، فلدينا علم العروض.

ثم أتركك مقالة نشرت في جوتل بواسطة أحد مستخدمينا (Hugo) وأين يوضح لنا كيفية تكوين الخادم الخاص بنا XMPP مع علم العروض.

مقدمة

عند تثبيت خادم XMPP (Jabber) للرسائل الداخلية على شبكة محلية ، يختار الكثيرون jabber أو ejabberd أو openfire ، ولكن على الرغم من أنها تعمل ، إلا أن هذه التطبيقات يمكن أن تتطلب الكثير من الموارد.

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

سيشرح هذا البرنامج التعليمي القصير كيفية تثبيت وتهيئة العرض على مستقر دبيان.

الاستعدادات والتركيب

توجد حزم Prosody في مستودع دبيان ، لكن مطوري هذا البرنامج قد أعدوا مستودعًا لـ Debian والمشتقات التي تحتوي على حزم حديثة ووحدات إضافية ، والتي يمكننا استخدامها على النحو التالي:

صدى "deb http://packages.prosody.im/debian مستقر رئيسي" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - تحديث sudo aptitude

بمجرد إضافة المستودع ، يمكننا المضي قدمًا في تثبيت prosody (بالإضافة إلى إضافة وحدات لاستخدامها sasl كآلية مصادقة إذا لزم الأمر ، مما يسمح بدمج العرض مع pam, LDAP، وما إلى ذلك).

sudo aptitude install sasl2-bin libsasl2-modules-ldap prosody liblua5.1- {sec0، cyrussasl0، event-prosody0}

ننتقل بعد ذلك إلى إنشاء شهادات موقعة ذاتيًا لنطاقنا:

cd / etc / prosody / certs sudo openssl req-new -x509 -days 1095 -nodes -out "mydomain.cu.cert" -keyout "mydomain.cu.key"

سيطلب منا المعالج سلسلة من البيانات ، والتي من أهمها "الاسم الشائع (مثل الخادم FQDN أو اسمك) "حيث يتعين علينا وضع المجال الخاص بنا ، حيث سنستخدمه في القسم VirtualHost ملف الضبط.

بالإضافة إلى ذلك ، إذا كان على الخادم حيث نقوم بتثبيت العارضات قمنا بتكوينها iptables مع سياسات الرفض الافتراضية ، نحتاج إلى فتح المنافذ المطلوبة لشبكتنا ، على سبيل المثال:

sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state - State ESTABLISHED، ذات الصلة -j ACCEPT sudo iptables -A INPUT - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multort --dports 5222,5223,5269،XNUMX،XNUMX -m state - State NEW -j ACCEPT

ترتيب

بعد ذلك ، ننتقل إلى تعديل بعض سطور ملف التكوين ، والتي يجب علينا تعديلها /etc/prosody/prosody.cfg.lua لذلك يبدو مثل هذا:

المنافذ = {5222، 5269} ssl_ports = {5223} مشرفين = {"juan@mydomain.cu"، "pedro@mydomain.cu"} use_libevent = صحيح ؛ - يعتمد الخيار الافتراضي على وظيفة select () ، وبدلاً من ذلك يستخدم libevent epoll () ، وهو أكثر كفاءة وقابلية للتوسع. modules_enabled = {"roster" ؛ "saslauth" ؛ "tls" ؛ "الاتصال" ؛ "القرص" ؛ "نشر"؛ "vcard" ؛ "خصوصية"؛ "ضغط"؛ "إرث" ؛ "الإصدار"؛ "مدة التشغيل"؛ "زمن"؛ "بينغ" ؛ "بيب" ؛ "تسجيل"؛ - لا تقم بتعطيل هذه الوحدة ، فهي لا تسمح فقط بالتسجيل ولكن أيضًا لتغيير كلمات المرور "المخصصة" ؛ "admin_adhoc" ؛ "posix" ؛ "كلام فارغ"؛ - أضف هذا السطر إذا كنت تريد تمكين jabber من http} ؛ allow_registration = false؛ - معطل للأمان - قم بالتغيير إلى صحيح إذا كنت تريد تمكين إنشاء الحساب من العميل نفسه ssl = {key = "/etc/prosody/certs/localhost.key" ؛ الشهادة = "/etc/prosody/certs/localhost.cert" ؛ } التخزين = "داخلي" ؛ - التخزين الافتراضي هو ملف xml - اختياريًا يمكننا استخدام طريقة التخزين "sql" - وهذا يسمح باستخدام SQLite أو MySQL أو PostgreSQL كخلفية (على الرغم من ضرورة إضافة معلمات معينة) المصادقة = "تجزئة داخلية" ؛ - يمكننا استخدام "Internal_plain" إذا كان العميل لا يدعم SCRAM-SHA-1 - إذا أردنا استخدام طريقة sasl لاستخدام LDAP لاحقًا ، فيجب علينا استخدام "cyrus" log = {error = "/ var / log / prosody / prosody. يخطئ "؛ info = "/var/log/prosody/prosody.log" ؛ } pidfile = "/var/run/prosody/prosody.pid" ؛ VirtualHost "localhost" VirtualHost "mydomain.cu" ssl = {key = "/etc/prosody/certs/mydomain.cu.key" ؛ الشهادة = "/etc/prosody/certs/mydomain.cu.crt" ؛ }

بمجرد تعديل ملف التكوين ، نعيد تشغيل الخدمة:

طرح عرض خدمة sudo

الآن سنشرع في إنشاء الحسابات. في هذه الحالة ، كما في ملف التكوين ، نقوم بتعطيل التسجيل من العملاء ، يجب إنشاء الحسابات يدويًا على الخادم. طريقة المصادقة التي نختارها في التكوين (Internal_hashed) تجعل كلمات المرور غير محفوظة بشكل واضح ولكن مع الآلية SCRAM-SHA-1. إذا كان عميل المراسلة الذي نعتزم استخدامه لا يدعم هذه الآلية ، فيمكن استخدام طريقة "Internal_plain" في التكوين.

أولاً ، سننشئ حسابات مسؤولي الخدمة التي نعلن عنها في التكوين (التصريح عنها لا يعني أنه تم إنشاؤها تلقائيًا):

sudo prosodyctl adduser juan@mydomain.cu sudo prosodyctl adduser pedro@mydomain.cu

يمكننا استخدام نفس الأمر لأي حساب آخر نريد إنشاءه.

أخيرًا ، نتحقق من تشغيل الخدمة:

حالة sudo prosodyctl

يجب أن نتلقى رسالة مثل التالية:

بروسودي يعمل مع PID 1310

تكوين العميل

يعتمد التكوين على العميل ، ولكن التفاصيل بسيطة بشكل عام. على سبيل المثال ، ل لغة مبسطة:

علامة التبويب "أساسي"

اسم المستخدم: خوان
المجال: mydomain.cu
المورد: كمبيوتر جون

علامة التبويب "خيارات متقدمة"

أمان الاتصال: استخدم التشفير إن أمكن
منفذ الاتصال: 5222
اتصل بالخادم: myserver.mydomain.cu

الملاحظات

يمكن العثور على مزيد من المعلومات (بما في ذلك استخدام Cyrus SASL مع LDAP وكيفية إنشاء إدخالات من DNS) في هذه المادة من ويكي دبيان.

تعليقات المستخدم عبر DesdeLinux وذلك لإيقاف الخدمة التي تحتاج إلى تنفيذها حقًا pkill lua5.1


18 تعليقات ، اترك لك

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   KZKG ^ جارا قال

    يعجبني ... دعنا نرى ما إذا قمت بتغيير OpenFire مرة واحدة وإلى الأبد لـ ejabberd أو هذا Prosody

    1.    إيلاف قال

      أنا بالفعل أقوم بإجراء الاختبارات في VirtualBox على وجه التحديد من أجل ذلك .. لأنه إذا انتظرك يا بني .. ¬¬

      1.    KZKG ^ جارا قال

        ^ - ^ يو ... هيه ...
        الآن أرسل تذكرة إلى مزود الاستضافة تسأل عن سجل DNS الذي نحتاجه لإزالة 'jabber .'______

        1.    إيلاف قال

          حسنا. Jabber ، IRC ، Facebook ، Gtalk ، لا أعرف كيف أو أين ، لكن اتصل ..

  2.   إرنستو إنفانتي قال

    كيف يتم التكامل مع LDAP الخاص بـ Prosody؟ و BD؟

  3.   روتس 87 قال

    زوجان من الصور لأقل معرفة لن تكون سيئة ^. ^

  4.   صائد قال

    في المنزل لدي عرض ، قمت بتثبيته للاختبار وأعجبني لبساطته. تفاصيل عند إيقاف الخادم لا بد لي من القيام بعملية pkill lua5.1 لإيقافه حقًا.

  5.   أوروش قال

    واو ، هذا مثير للاهتمام. هل هناك طريقة يمكن للأشخاص الآخرين من خلالها إنشاء مستخدمين من خلال واجهة المستخدم الرسومية (يمكن أن تكون الويب)؟ كيف ستشرع في الحصول على مجال لاستخدامه؟ 😛

    1.    صائد قال

      يمكنك تمكين التسجيل في التكوين ومن نفس عميل jabber يتم تسجيلهم عن طريق تحديد خيار إنشاء حساب على الخادم.

      allow_registration = صحيح ؛

  6.   فيران قال

    أنا أبحث عن حزم prosody في slackware ، تعليمي ممتاز. في صحتك

  7.   ارتورو مولينا قال

    كيف يمكنني التحقق من تمكن المستخدم من المصادقة؟ أو كيف يمكنني معرفة ما إذا كان المستخدم متصلاً بالخادم؟

  8.   تضمين التغريدة قال

    لقد نجحت was تمكنت من تثبيته وتكوينه بشكل صحيح. قم بتثبيت الخادم على جهاز كمبيوتر واحد والعميل هو جهاز كمبيوتر آخر. ولكن لدي مشكلة. لكي يعرف العميل أن خادمي مع المجال (medellinlibre.org) هو محلي. يجب أن أضيف إلى ملف المضيفين IPDELSERVIDOR medellinlibre.org. إذا لم يكن كذلك ، فإنه لا يتصل لأسباب واضحة سؤالي هو ما إذا كان لا توجد طريقة لجميع أجهزة الكمبيوتر على الشبكة لمعرفة افتراضيًا أن هذا المجال موجود على LAN عند عنوان IP معين؟

    1.    المحدودة قال

      نفس الشك! هل تعلم في النهاية ؟؟ أنا أبدأ بعروض ...

    2.    صائد قال

      بسيط جدًا ، في pidgin ، حدد IP للخادم في الخيارات المتقدمة ، والخيار الآخر هو تحميل DNS على شبكة LAN الخاصة بك.

  9.   فرانسيسكو قال

    هذا الموضوع ممتع للغاية وأردت معرفة ما إذا كان Prosody يدعم مآخذ الويب. أنا مهتم بإنشاء عميل ويب xmpp

    1.    تضمين التغريدة قال

      تستطيع أن ترى هذا. http://code.google.com/p/xmppwebchat/

  10.   إينوكازي قال

    مرحبًا ، أليس لديك نسخة من البرنامج التعليمي مع تكوين مخصص للشبكة الداخلية المحلية فقط؟ لا يوجد مجال أو أي شيء من هذا القبيل. بالكاد يكون جهاز كمبيوتر واحد فقط مع Liñux هو خادم وأجهزة الكمبيوتر الأخرى التي تتصل به

    هي فقط القدرة على الدردشة بين حواسيب إنترانت من خلال مبسط.