Installieren Sie einen XMPP (Jabber) Server mit Prosody [Aktualisiert]


Viele von uns benutzen Gtalk o Facebook Chat ohne zu wissen, dass das Protokoll, mit dem wir kommunizieren, kein anderes ist als XMPP (Erweiterbares Messaging- und Präsenzprotokoll) das ist auch offen.

En GNU / Linux Wir haben mehrere Anwendungen, um unseren eigenen Server einzurichten XMPP o quasseln wie es auch bekannt ist, sind einige bei der Konfiguration komplizierter als andere. Zum Beispiel haben wir Ejabberd, das ist ganz einfach und leicht, aber wenn wir viel mehr optimieren wollen, haben wir Prosodie.

Dann verlasse ich dich ein Artikel veröffentlicht in GUTL von einem unserer Benutzer (Hugo) und wo er uns zeigt, wie wir unseren eigenen Server konfigurieren XMPP mit Prosodie.

Einführung

Bei der Installation eines XMPP-Servers (Jabber) für interne Nachrichten in einem lokalen Netzwerk wählen viele Jabber, Ejabberd oder Openfire. Obwohl diese Anwendungen funktionsfähig sind, können sie eine Menge Ressourcen erfordern.

Wenn Sie ein kleines oder mittleres Netzwerk haben und nur einen einfachen Instant Messaging-Dienst möchten, gibt es glücklicherweise eine leichtgewichtige Serveralternative namens Prosody, die, obwohl sie in LUA programmiert ist, einer interpretierten Sprache, laut ihren Entwicklern sehr gut funktioniert, danke zu luajit.

In diesem kurzen Tutorial wird erklärt, wie Prosodie auf Debian Stable installiert und konfiguriert wird.

Vorbereitungen und Installation

Prosody-Pakete befinden sich im Debian-Repository, aber die Entwickler dieser Software haben ein Repository für Debian und Derivate vorbereitet, das aktuelle Pakete und zusätzliche Module enthält, die wir wie folgt verwenden können:

echo "deb http://packages.prosody.im/debian Stable Main" | sudo tee -a /etc/apt/sources.list wget http://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - sudo aptitude update

Sobald das Repository hinzugefügt wurde, können wir mit der Installation der Prosodie fortfahren (zusätzlich werden zu verwendende Module hinzugefügt sasl bei Bedarf als Authentifizierungsmechanismus, der die Integration von Prosodie in ermöglicht pam, LDAPUsw.).

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

Anschließend generieren wir selbstsignierte Zertifikate für unsere Domain:

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

Der Assistent fragt uns nach einer Reihe von Daten, von denen der wirklich wichtige „Common Name (z. B. Server) ist FQDN oder IHR Name) “, wo wir unsere Domain platzieren müssen, da wir sie im Abschnitt verwenden werden VirtualHost Konfigurationsdatei.

Außerdem haben wir auf dem Server, auf dem wir Prosody installieren, konfiguriert iptables Bei Standard-Verweigerungsrichtlinien müssen wir die erforderlichen Ports für unser Netzwerk öffnen, zum Beispiel:

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, 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 --state NEW -j ACCEPT

Konfiguration

Als Nächstes ändern wir einige Zeilen der Konfigurationsdatei, für die wir sie bearbeiten müssen /etc/prosody/prosody.cfg.lua so sieht es also aus:

ports = {5222, 5269} ssl_ports = {5223} admins = {"juan@mydomain.cu", "pedro@mydomain.cu"} use_libevent = true; - Die Standardoption basiert auf der Funktion select (). Stattdessen verwendet libevent epoll (), das effizienter und skalierbarer ist. modules_enabled = {"Dienstplan"; "saslauth"; "tls"; "Dialback"; "Scheibe"; "Privat"; "vcard"; "Privatsphäre"; "Kompression"; "Legacyauth"; "Ausführung"; "Betriebszeit"; "Zeit"; "Klingeln"; "Pep"; "registrieren"; - Deaktivieren Sie dieses Modul nicht, es ermöglicht nicht nur die Registrierung, sondern auch das Ändern von "Ad-hoc" -Kennwörtern. "admin_adhoc"; "posix"; "bosh"; - Fügen Sie diese Zeile hinzu, wenn Sie Jabber über http} aktivieren möchten. allow_registration = false; - aus Sicherheitsgründen deaktiviert - Wechseln Sie zu true, wenn Sie die Erstellung von Konten auf dem Client selbst aktivieren möchten. ssl = {key = "/etc/prosody/certs/localhost.key"; certificate = "/etc/prosody/certs/localhost.cert"; } storage = "intern"; - Der Standardspeicher ist eine XML-Datei. Optional können wir die Speichermethode "SQL" verwenden. Dies ermöglicht die Verwendung von SQLite, MySQL oder PostgreSQL als Backend (obwohl bestimmte Parameter hinzugefügt werden müssen). Authentication = "internal_hashed"; - Wir können "internal_plain" verwenden, wenn der Client SCRAM-SHA-1 nicht unterstützt. - Wenn wir die sasl-Methode verwenden möchten, um später LDAP zu verwenden, müssen wir "cyrus" log = {error = "/ var / log / prosody verwenden / prosody. err "; 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"; certificate = "/etc/prosody/certs/mydomain.cu.crt"; }}

Sobald die Konfigurationsdatei geändert wurde, starten wir den Dienst neu:

Sudo Service Prosodie subtrahieren

Nun werden wir die Konten erstellen. In diesem Fall müssen, wie in der Konfigurationsdatei, die Registrierung von den Clients deaktiviert werden, die Konten manuell auf dem Server erstellt werden. Die Authentifizierungsmethode, die wir in der Konfiguration auswählen (internal_hashed), bewirkt, dass die Kennwörter nicht klar, sondern mit dem Mechanismus gespeichert werden SCRAM-SHA-1. Wenn der von uns beabsichtigte Messaging-Client diesen Mechanismus nicht unterstützt, kann in der Konfiguration die Methode "internal_plain" verwendet werden.

Zuerst erstellen wir die Konten der Administratoren des Dienstes, die wir in der Konfiguration deklarieren (ihre Deklaration bedeutet nicht, dass sie automatisch erstellt werden):

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

Wir können denselben Befehl für jedes andere Konto verwenden, das wir erstellen möchten.

Schließlich überprüfen wir, ob der Dienst ausgeführt wird:

Sudo Prosodyctl Status

Wir sollten eine Nachricht wie die folgende erhalten:

Prosody läuft mit PID 1310

Client-Konfiguration

Die Konfiguration hängt vom Client ab, aber im Allgemeinen sind die Details einfach. Zum Beispiel für Pidgin:

Registerkarte "Basic"

Benutzername: John
Domain: mydomain.cu
Berufung: PC-Juan

Registerkarte "Erweitert"

Verbindungssicherheit: Verwenden Sie nach Möglichkeit eine Verschlüsselung
Verbindungsport: 5222
Verbinden zum Server: myserver.mydomain.cu

Aufzeichnungen

Weitere Informationen finden Sie (einschließlich der Verwendung von Cyrus SASL mit LDAP und wie man Einträge erstellt aus DNS) in dieser Artikel aus dem Debian Wiki.

Ein Benutzer kommentiert über DesdeLinux das, um den Dienst, den Sie ausführen mussten, wirklich zu stoppen pkill lua5.1


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   KZKG ^ Gaara sagte

    Ich mag es ... mal sehen, ob ich OpenFire ein für alle Mal für ejabberd oder diese Prosodie 🙂 ändere

    1.    lebhaft sagte

      Genau dafür mache ich schon die Tests in VirtualBox .. denn wenn wir auf dich warten, mein Sohn .. ¬¬

      1.    KZKG ^ Gaara sagte

        ^ - ^ U ... hehe ...
        Jetzt sende ich ein Ticket an den Hosting-Anbieter und frage nach dem DNS-Eintrag, den wir zum Entfernen des "Jabbers" benötigen .______

        1.    lebhaft sagte

          Okay. Jabber, IRC, Facebook, Gtalk, ich weiß nicht wie oder wo, aber verbinde mich ..

  2.   Ernst Infant sagte

    Wie ist die Integration der Prosody in LDAP? und der BD?

  3.   rots87 sagte

    ein paar bilder für weniger sachkundige wären nicht schlecht ^. ^

  4.   Dhunter sagte

    Zu Hause habe ich Prosodie, ich habe es zum Testen installiert und es hat mir wegen seiner Einfachheit gefallen. Ein Detail beim Stoppen des Servers Ich muss ein pkill lua5.1 machen, um es wirklich zu stoppen.

  5.   auroszx sagte

    Wow, das ist interessant. Gibt es eine Möglichkeit, wie andere Benutzer über eine GUI Benutzer erstellen können (möglicherweise Web)? Wie würden Sie eine Domain dazu bringen, sie zu nutzen? 😛

    1.    Dhunter sagte

      Sie aktivieren die Registrierung in der Konfiguration und von demselben Client-Jabber aus werden sie registriert, indem Sie die Option zum Erstellen eines Kontos auf dem Server aktivieren.

      allow_registration = wahr;

  6.   Ferran sagte

    Ich suche nach Prosodie-Paketen in Slackware, ein exzellentes Tutorial. Prost

  7.   Arturo Molina sagte

    Wie kann ich überprüfen, ob ein Benutzer sich authentifizieren konnte? oder wie kann ich wissen, ob ein Benutzer mit dem Server verbunden ist?

  8.   @ Jlcmux sagte

    Es ist mir gelungen 😀 Ich konnte es richtig installieren und konfigurieren. Installieren Sie den Server auf einem PC und der Client ist ein anderer PC. aber ich habe ein Problem. Damit der Client weiß, dass mein Server mit der Domain (medellinlibre.org) LOCAL ist. Ich muss der Hosts-Datei IPDELSERVIDOR medellinlibre.org hinzufügen. Wenn nicht, wird aus offensichtlichen Gründen keine Verbindung hergestellt. Meine Frage ist, ob es nicht möglich ist, dass alle PCs im Netzwerk standardmäßig wissen, dass sich diese Domäne unter einer bestimmten IP-Adresse im LAN befindet.

    1.    ltd sagte

      gleicher Zweifel! Wusstest du am Ende? Ich fange mit Prosodie an ...

    2.    Dhunter sagte

      Ganz einfach: Geben Sie im Pidgin die IP-Adresse des Servers in den erweiterten Optionen an. Die andere Option besteht darin, eine DNS in Ihrem LAN bereitzustellen.

  9.   Francisco cisco~~POS=HEADCOMP sagte

    Dieses Thema ist sehr interessant und ich wollte wissen, ob Prosody Websockets unterstützt. Ich bin daran interessiert, einen xmpp-Webclient zu erstellen

    1.    @ Jlcmux sagte

      Sie konnten das sehen. http://code.google.com/p/xmppwebchat/

  10.   Inukaze sagte

    Hallo, haben Sie keine Version des Tutorials mit einer Konfiguration, die nur für ein inländisches Intranet vorgesehen ist? Keine Domain oder ähnliches. kaum so, dass nur 1 Computer mit Liñux ein Server ist und die anderen Computer, die eine Verbindung herstellen

    Es ist nur möglich, über Pidgin zwischen den Computern im Intranet zu chatten.