התקן שרת XMPP (Jabber) עם Prosody [עודכן]


רבים מאיתנו משתמשים אט o צ'אט פייסבוק בלי לדעת שהפרוטוקול שאנו משתמשים בו כדי לתקשר הוא לא אחר מאשר XMPP (פרוטוקול העברת הודעות ונוכחות הניתן להרחבה) שפתוח גם כן.

En גנו / לינוקס יש לנו מספר יישומים להקים שרת משלנו XMPP o לִלְהוֹג כידוע, חלקם מסובכים יותר מאחרים בעת הגדרת התצורה. למשל, יש לנו ejabberd, שזה די פשוט וקל, אבל אם אנחנו רוצים לייעל הרבה יותר, יש לנו תוֹרַת הַמִשׁקָל.

ואז אני עוזב אותך מאמר פורסם ב GUTL על ידי אחד המשתמשים שלנו (הוגו) והיכן הוא מראה לנו כיצד להגדיר את השרת שלנו XMPP עם תוֹרַת הַמִשׁקָל.

מבוא

בעת התקנת שרת XMPP (Jabber) להעברת הודעות פנימיות ברשת מקומית, רבים בוחרים ב- jabber, ejabberd או openfire, אך למרות שהם פונקציונליים, יישומים אלה יכולים לדרוש משאבים רבים.

אם יש לך רשת קטנה או בינונית ואתה רק רוצה שירות מסרים מיידיים פשוט, למרבה המזל יש אלטרנטיבה לשרת קל משקל הנקראת פרוזודיה, שלמרות שהיא מתוכנתת ב- LUA שהיא שפה מתפרשת, על פי מפתחי זה היא עובדת טוב מאוד תודה לואג'יט.

הדרכה קצרה זו תסביר כיצד להתקין ולהגדיר פרוזודיה על יציב דביאן.

הכנות והתקנה

חבילות פרוזודי ממוקמות במאגר דביאן, אך מפתחי תוכנה זו הכינו מאגר עבור דביאן ונגזרים המכילים חבילות עדכניות ומודולים נוספים, בהם נוכל להשתמש באופן הבא:

הד "deb http://packages.prosody.im/debian main main" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | להוסיף -. עדכון

לאחר הוספת המאגר, נוכל להמשיך להתקין פרוזודי (בנוסף להוסיף מודולים לשימוש sasl כמנגנון אימות במידת הצורך, המאפשר לשלב פרוזודיה עם pam, LDAP, וכו ').

sudo aptitude התקן 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 או השם שלך) "שם עלינו לשים את הדומיין שלנו, כיוון שנשתמש בו בסעיף וירטואליזציה קובץ תצורה.

בנוסף, אם בשרת שבו אנו מתקינים פרוסודיה הגדרנו iptables עם מדיניות דחיית ברירת מחדל, עלינו לפתוח את היציאות הנדרשות עבור הרשת שלנו, למשל:

sudo iptables -A INPUT -i lo -j קבל sudo iptables -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m state - state ESTABLISHED, RELATED -j ACCEPT sudo iptables -A Input - i eth1 -s 192.168.0.0/24 -p tcp -m tcp -m multiport - dports 5222,5223,5269 -m state - מדינה חדש -j קבל

תצורה

לאחר מכן, המשך לשנות כמה שורות של קובץ התצורה, שעליהם עלינו לערוך /etc/prosody/prosody.cfg.lua אז זה נראה ככה:

יציאות = {5222, 5269} ssl_ports = {5223} מנהלים = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - אפשרות ברירת המחדל מבוססת על הפונקציה select (), במקום זאת libevent משתמש ב- epoll (), שהיא יעילה יותר וניתנת להרחבה. modules_enabled = {"סגל"; "ססלאות"; "tls"; "חיוג חוזר"; "דִיסק"; "פְּרָטִי"; "vcard"; "פְּרָטִיוּת"; "דְחִיסָה"; "legacyauth"; "גִרְסָה"; "זמן עבודה"; "זְמַן"; "פינג"; "זְרִיזוּת"; "הירשם"; - אל תשבית את המודול הזה, הוא מאפשר לא רק להירשם אלא גם לשנות סיסמאות "adhoc"; "admin_adhoc"; "פוסיקס"; "שְׁטוּיוֹת"; - הוסף שורה זו אם ברצונך להפעיל התעסקות באמצעות http}; allow_registration = false; - מושבת לאבטחה - שנה לאמת אם ברצונך לאפשר יצירת חשבונות מהלקוח עצמו ssl = {key = "/etc/prosody/certs/localhost.key"; תעודה = "/etc/prosody/certs/localhost.cert"; } אחסון = "פנימי"; - אחסון ברירת המחדל הוא קובץ xml - באופן אופציונלי נוכל להשתמש בשיטת האחסון "sql" - זה מאפשר שימוש ב- SQLite, MySQL או PostgreSQL כ- backend (אם כי יש להוסיף פרמטרים מסוימים) אימות = "internal_hashed"; - אנו יכולים להשתמש ב- "internal_plain" אם הלקוח אינו תומך ב- SCRAM-SHA-1 - אם אנו רוצים להשתמש בשיטת sasl כדי להשתמש במועד מאוחר יותר ב- LDAP, עלינו להשתמש ב- "cyrus" log = {error = "/ var / log / פרוזודיה / פרוזודיה. טועה "; 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"; }

לאחר שינוי קובץ התצורה, אנו מפעילים מחדש את השירות:

מחסור בשירותי סודו

כעת נמשיך ביצירת החשבונות. במקרה זה, כמו בקובץ התצורה אנו משביתים את הרישום מהלקוחות, יהיה עליך ליצור את החשבונות באופן ידני בשרת. שיטת האימות שאנו בוחרים בתצורה (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
מַשׁאָב: pc-john

הכרטיסייה "מתקדם"

אבטחת חיבור: השתמש בהצפנה במידת האפשר
יציאת חיבור: 5222
התחבר לשרת: myserver.mydomain.cu

הערות

ניתן למצוא מידע נוסף (כולל שימוש ב- Cyrus SASL עם LDAP וכיצד ליצור ערכים מ DNS) ב המאמר הזה מתוך ויקי דביאן.

משתמש מגיב באמצעות FromLinux שכדי להפסיק את השירות שהוא היה צריך לבצע pkill lua5.1


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

18 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   KZKG ^ גאארה דיג'ו

    אני אוהב את זה ... בוא נראה אם ​​אחת ולתמיד אני משנה את OpenFire עבור ejabberd או את הפרוזודיה הזו 🙂

    1.    אלב דיג'ו

      אני כבר עושה את הבדיקות ב- VirtualBox בדיוק בשביל זה .. כי אם נחכה לך בני .. ¬¬

      1.    KZKG ^ גאארה דיג'ו

        ^ - ^ U ... hehe ...
        עכשיו אני שולח כרטיס לספק האחסון ושואל לגבי רשומת ה- DNS שעלינו להסיר את ה'קשקש '.______

        1.    אלב דיג'ו

          בסדר. ג'אבר, IRC, פייסבוק, Gtalk, אני לא יודע איך ואיפה, אבל התחבר ..

  2.   ארנסטו אינפנטה דיג'ו

    איך השילוב עם ה- LDAP של הפרוזודיה? וה- BD?

  3.   87 דיג'ו

    כמה תמונות למידע פחות יהיה לא רע ^. ^

  4.   מטלטל דיג'ו

    בבית יש לי פרוזודיה, התקנתי אותה לבדיקה ואהבתי אותה בפשטותה. פרט בעת עצירת השרת אני צריך לעשות pkill lua5.1 כדי באמת לעצור אותו.

  5.   auroszx דיג'ו

    וואו, זה מעניין. האם יש דרך שאנשים אחרים יכולים ליצור משתמשים באמצעות ממשק משתמש (יכול להיות אינטרנט)? איך היית מנסה להשיג דומיין להשתמש בו? 😛

    1.    מטלטל דיג'ו

      אתה מאפשר את הרישום בתצורת התצורה ומאותו לקוח מקשקש שהם רשומים על ידי סימון האפשרות ליצור חשבון בשרת.

      allow_registration = נכון;

  6.   פרן דיג'ו

    אני מחפש חבילות פרוזודיות בסלאק, הדרכה מצוינת. לחיים

  7.   ארתורו מולינה דיג'ו

    כיצד אוכל לאמת אם משתמש הצליח לאמת? או איך אוכל לדעת אם משתמש מחובר לשרת?

  8.   @Jlcmux דיג'ו

    הצלחתי 😀 הצלחתי להתקין ולהגדיר אותה בצורה נכונה. התקן את השרת במחשב אחד והלקוח הוא מחשב אחר. אבל יש לי בעיה. על מנת שהלקוח ידע שהשרת שלי עם הדומיין (medellinlibre.org) הוא LOCAL. אני חייב להוסיף לקובץ המארח IPDELSERVIDOR medellinlibre.org. אם לא, זה לא מתחבר, מסיבות ברורות. השאלה שלי היא אם אין שום סיכוי שכל המחשבים ברשת יידעו כברירת מחדל שהתחום הזה נמצא ברשת LAN ב- IP נתון?

    1.    ltd דיג'ו

      אותו ספק! ידעת בסוף ?? אני מתחיל בפרוזודיה ...

    2.    מטלטל דיג'ו

      פשוט מאוד, ב- pidgin ציין את ה- ip של השרת באפשרויות מתקדמות, האפשרות השנייה היא הרכבת dns ב- LAN שלך.

  9.   פרנסיסקו דיג'ו

    נושא זה מעניין מאוד ורציתי לדעת אם פרוסודי תומך בשקעי רשת. אני מעוניין ליצור לקוח אינטרנט xmpp

    1.    @Jlcmux דיג'ו

      יכולת לראות זאת. http://code.google.com/p/xmppwebchat/

  10.   אינוקאזה דיג'ו

    היי, אין לך גרסה של ההדרכה עם תצורה שמיועדת רק לאינטרא-נט מקומי? אין דומיין או משהו כזה. בקושי כך שרק מחשב אחד עם Liñux הוא שרת ושאר המחשבים שמתחברים אליו

    זה רק כדי להיות מסוגל לשוחח בין המחשבים באינטרא-נט דרך pidgin.