Prosody IM und lokale Benutzer - Networks PYMES

Allgemeiner Index der Reihe: Computernetzwerke für KMU: Einführung

Dieser Artikel ist eine Fortsetzung von:

Hallo Freunde und Freunde!

Wir fügen dem Kleingruppenserver weiterhin Netzwerkdienste hinzu, die auf der lokalen Benutzerauthentifizierung basieren. Enthusiasten Freie Software, speziell CentOS.

Die Arbeitsbedingungen der Gruppe änderten sich zum Besseren. Sie haben jetzt als Hauptquartier ein dreistöckiges Haus mit Keller und müssen einen Instant Messaging-Server und eine Dateiübertragung zwischen Arbeitsstationen implementieren, um die Schwierigkeit zu verringern, Treppen hoch und runter zu gehen oder viel zu laufen. ;-). Dafür schlagen sie vor, das Programm zu verwenden Prosodie.

Sie sind entschlossen, den Internet-Chat-Dienst nur für Enthusiasten zu veröffentlichen, und planen, ihren Instant Messaging-Server mit anderen kompatiblen XMPP-Servern im Netzwerk der Netzwerke zu verbinden. Dafür haben sie den Domainnamen gekauft desdelinux.Ventilator und bis jetzt wird die mit diesem Namen verknüpfte IP-Adresse von Ihrem Internetzugangsanbieter verwaltet.

Mit dem Chat über Prosody-Dienst können sie Sofortnachrichten austauschen, Dateien übertragen, Sprach- und Videokonferenzen abhalten und vieles mehr.

Was ist Prosody Instant Messenger?

Prosodie Es ist ein moderner Kommunikationsserver, der auf dem XMPP-Protokoll basiert. Es ist für eine einfache Installation und Konfiguration sowie eine effiziente Verwaltung der Systemressourcen ausgelegt. Prosody ist ein Open Source - Open Source Programm, das unter der zulässigen Lizenz erstellt wurde MIT / X11.

XMPP Es ist eine nichtkommerzielle Alternative, Instant Messaging-Dienste bereitzustellen. Es kann in einer Produktionsgeschäftsumgebung, in einem Familiennetzwerk, einem privaten Netzwerk von Nachbarn usw. implementiert werden. Es unterstützt eine breite Palette von Client-Software für Desktop- und mobile Plattformen. Über XMPP kann dieser Dienst für jedes Gerät bereitgestellt werden.

Zusätzlich können sie Enlazar Mehrere Installationen von Prosody und anderen Diensten, die mit dem XMPP-Protokoll kompatibel sind und ein Messaging-Netzwerk bilden, in dem wir die vollständige Kontrolle über den Nachrichten- und Dateiverkehr haben, der auf absolut sichere Weise stattfinden wird.

Prosodie und Authentifizierung gegen lokale Benutzer

Bei der Prosody IM Site Map Wir haben den Link zur Seite gefunden Authentifizierungsanbieter, der besagt, dass ab Version 0.8 von Prosody verschiedene Authentifizierungsanbieter durch unterstützt werden Plugins. Du kannst den ... benutzen Treiber integrierte Software, oder Sie können mit deren Authentifizierungs- und Speicheranbietern von Drittanbietern integrieren APIs.

Authentifizierungsanbieter, die wir möglicherweise beschäftigen

Name Beschreibung -------------- ---------------------------------- -----------------------
internal_plain   Standardauthentifizierung. Nur-Text-Passwörter werden mithilfe des integrierten Speichers gespeichert.

internal_hashed  Von einem internen Algorithmus codierte Passwörter werden mithilfe eines integrierten Speichers gespeichert.

Cyrus       Integration mit Cyrus SASL (LDAP, PAM, ...)

anonym    Authentifizierungsmechanismus mit SASL 'ANONYMOUS' mit zufälligem Benutzernamen, für den keine Authentifizierungsdaten erforderlich sind.

XMPP verwendet das Standardprotokoll für die einfache Authentifizierung auf sicherer Ebene zur Authentifizierung. SUmsetzung AAuthentifizierung und SEssen LGestern (SASL), um die Anmeldeinformationen der Clients zu überprüfen. Prosody enthält die Bibliothek SASL Standardmäßig werden Anmeldeinformationen anhand vorhandener Konten in seinem integrierten Speicher überprüft.

Seit Version 0.7 von Prosody wird ein externer Anbieter unterstützt Cyrus SALS Hiermit können die von externen Benutzern bereitgestellten Anmeldeinformationen anhand anderer Quellen überprüft werden, z. PAM, LDAP, SQL und andere. Es erlaubt auch die Verwendung von GSSAPI für Single Sign-On-Dienste - Single Sign-On-Dienste.

In diesem Artikel über Prosody verwenden wir den Authentifizierungsanbieter «, um eine Authentifizierung gegen lokale Benutzer über PAM zu erreichen.«Cyrus»Vom Paket bereitgestellt«cyrus sasl»Und das funktioniert integriert mit dem Daemon saslauthd.

cyrus-sasl und saslauthd

[root @ linuxbox ~] # yum installiere cyrus-sasl

Der saslauthd-Daemon ist bereits installiert

[root @ linuxbox ~] # getsebool -a | grep saslauthd
saslauthd_read_shadow -> aus

[root @ linuxbox ~] # setsebool saslauthd_read_shadow on
[root @ linuxbox ~] # getsebool -a | grep saslauthd
saslauthd_read_shadow -> on

[root @ linuxbox ~] # systemctl status saslauthd
● saslauthd.service - SASL-Authentifizierungsdämon. Geladen: geladen (/usr/lib/systemd/system/saslauthd.service; deaktiviert; Hersteller-Voreinstellung: deaktiviert) Aktiv: inaktiv (tot)

[root @ linuxbox ~] # systemctl enable saslauthd
Symlink von /etc/systemd/system/multi-user.target.wants/saslauthd.service zu /usr/lib/systemd/system/saslauthd.service erstellt.

[root @ linuxbox ~] # systemctl start saslauthd
[root @ linuxbox ~] # systemctl status saslauthd
● saslauthd.service - SASL-Authentifizierungsdämon. Geladen: geladen (/usr/lib/systemd/system/saslauthd.service; aktiviert; Hersteller-Voreinstellung: deaktiviert) Aktiv: aktiv (läuft) seit Sa 2017-04-29 10:31:20 EDT; Vor 2s Prozess: 1678 ExecStart = / usr / sbin / saslauthd -m $ SOCKETDIR -a $ MECH $ FLAGS (Code = beendet, Status = 0 / SUCCESS) Haupt-PID: 1679 (saslauthd) CGroup: /system.slice/saslauthd. service 1679─1680 / usr / sbin / saslauthd -m / run / saslauthd -a pam ├─1681 / usr / sbin / saslauthd -m / run / saslauthd -a pam ├─1682 / usr / sbin / saslauthd -m / run / saslauthd -a pam 1683─XNUMX / usr / sbin / saslauthd -m / run / saslauthd -a pam └─XNUMX / usr / sbin / saslauthd -m / run / saslauthd -a pam

Prosodie und Lua-Cyrussasl

[root @ linuxbox ~] # yum install prososody
---- Gelöste Abhängigkeiten ========================================== == ================================== Package Architecture Version Repository Size ========= == ============================================== ================== Installation: prosody x86_64 0.9.12-1.el7 Epel-Repo 249 k Installation für Abhängigkeiten: lua-expat x86_64 1.3.0- 4.el7 Epel -Repo 32 k lua-Dateisystem x86_64 1.6.2-2.el7 Epel-Repo 28 k lua-sec x86_64 0.5-4.el7 Epel-Repo 31 k lua-Socket x86_64 3.0-0.10.rc1.el7 Epel -Repo 176k Transaktion Zusammenfassung ======================================== ============================ 1 Paket installieren (+4 abhängige Pakete) --- -

[root @ linuxbox ~] # getsebool -a | grep Prosodie
prosody_bind_http_port -> aus
[root @ linuxbox ~] # setsebool prosody_bind_http_port on
[root @ linuxbox ~] # getsebool -a | grep Prosodie
prosody_bind_http_port -> on

[root @ linuxbox ~] # systemctl aktiviert die Prosodie
Symlink von /etc/systemd/system/multi-user.target.wants/prosody.service zu /usr/lib/systemd/system/prosody.service erstellt. [root @ linuxbox ~] # systemctl status prosody ● prosody.service - Prosody XMPP (Jabber) -Server Geladen: geladen (/usr/lib/systemd/system/prosody.service; aktiviert; Herstellervoreinstellung: deaktiviert) Aktiv: inaktiv (tot) )

[root @ linuxbox ~] # systemctl Prosodie starten
[root @ linuxbox ~] # systemctl status prosody
● prosody.service - Prosody XMPP (Jabber) -Server Geladen: geladen (/usr/lib/systemd/system/prosody.service; aktiviert; Hersteller-Voreinstellung: deaktiviert) Aktiv: aktiv (läuft) seit Sa 2017-04-29 10:35:07 EDT; Vor 2s Prozess: 1753 ExecStart = / usr / bin / prosodyctl start (Code = beendet, Status = 0 / SUCCESS) Haupt-PID: 1756 (lua) CGroup: /system.slice/prosody.service └─1756 lua / usr / lib64 /prosody/../../bin/prosody

[root @ linuxbox ~] # tail /var/log/prosody/prosody.log
29. April 10:35:06 Allgemeine Informationen Hallo und willkommen bei Prosody Version 0.9.12 29. April 10:35:06 Allgemeine Informationen Prosody verwendet das ausgewählte Backend für die Verbindungsabwicklung 29. April 10:35:06 Portmanager-Informationen Aktivierter Dienst 's2s' am [::]: 5269, [*]: 5269 29. April 10:35:06 portmanager info Aktivierter Dienst 'c2s' am [::]: 5222, [*]: 5222 29. April 10:35:06 portmanager info Aktiviert Dienst 'Legacy_ssl' an keinen Ports 29. April 10:35:06 mod_posix info Prosody wird sich gerade von der Konsole lösen und die weitere Konsolenausgabe deaktivieren. 29. April 10:35:06 mod_posix info Erfolgreich auf PID 1756 daemonisiert

[root @ linuxbox ~] # yum install lua-cyrussasl

Wir erstellen den virtuellen Host «Chat.desdelinux.fan“ von „example.com“, das Prosody installiert

[root @ linuxbox ~] # cp /etc/prosody/conf.d/example.com.cfg.lua \
/etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # nano /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua
- Abschnitt für VirtualHost-Chat

VirtualHost „chat.desdelinux.Lüfter"

- Weisen Sie diesem Host ein Zertifikat für TLS zu, andernfalls wird das im globalen Abschnitt festgelegte Zertifikat verwendet (falls vorhanden). - Beachten Sie, dass SSL im alten Stil an Port 5223 nur ein Zertifikat unterstützt und immer das globale Zertifikat verwendet.
        SSL = {
                 key = "/etc/pki/prosody/chat.key";
                certificate = "/etc/pki/prosody/chat.crt";
        }

------ Komponenten ------ -- Sie können Komponenten angeben, um Hosts hinzuzufügen, die spezielle Dienste bereitstellen, z. B. Mehrbenutzerkonferenzen und Transporte. - Weitere Informationen zu Komponenten finden Sie unter http://prosody.im/doc/components. --- Richten Sie einen MUC-Raumserver (Multi-User-Chat) auf Conference.chat ein.desdelinux.Lüfter:
Komponente „conference.chat.desdelinux.fan" "muc"
name = "Enthusiasts" - IST DER NAME DES ZU ERKLÄRENDEN KONFERENZRAUMS - WANN WERDEN SIE SICH ZUM ZIMMER BEITRETEN?
Restrict_room_creation = true

- Einrichten eines SOCKS5-Bytestream-Proxys für Server-Proxy-Dateiübertragungen: - Komponente "proxy.chat" "proxy65" --- Einrichten einer externen Komponente (Standardkomponentenport ist 5347) - - Externe Komponenten ermöglichen das Hinzufügen verschiedener Dienste, z als Gateways / - Transporte zu anderen Netzwerken wie ICQ, MSN und Yahoo. Weitere Informationen finden Sie unter: http://prosody.im/doc/components#adding_an_external_component - --Component "gateway.chat" - component_secret = "password"

Authentifizierung = "Cyrus"
cyrus_service_name = "xmpp"
cyrus_require_provisioning = falsch
cyrus_application_name = "Prosodie"
cyrus_server_fqdn = "chat.desdelinux.Lüfter"

Wir passen die Gruppe an, die die Datei /etc/prosody/conf.d/chat besitzt.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # ls -l /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
-rw-r -----. 1 Wurzel Wurzel 1361 29. April 10:45 /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

[root @ linuxbox ~] # chown root: prosody /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
[root @ linuxbox ~] # ls -l /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua 
-rw-r-----. 1 Wurzelprosodie 1361 29. April 10:45 /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua

Wir überprüfen die Konfiguration

[root @ linuxbox ~] # luac -p /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua
[root @ linuxbox ~] #

SSL-Zertifikate für sichere Verbindungen

Um eine Verbindung zum Prosody-Server herzustellen - sowohl über das lokale Netzwerk als auch über das Internet - und sicherzustellen, dass die Anmeldeinformationen sicher verschlüsselt übertragen werden, müssen die SSL-Zertifikate generiert werden. Sicherheits-Socket-Schicht in der Konfigurationsdatei des virtuellen Hosts deklariert /etc/prosody/conf.d/chat.desdelinux.fan.cfg.lua:

[root @ linuxbox ~] # cd / etc / prosody / certs /

[root @ linuxbox certs] # ​​openssl req -new -x509 -days 365 -nodes \
-out "chat.crt" -newkey rsa: 2048 -keyout "chat.key"
Generieren eines privaten 2048-Bit-RSA-Schlüssels .....+++ ..........+++ Schreiben eines neuen privaten Schlüssels in „chat.key“ ----- Sie werden gleich dazu aufgefordert Geben Sie Informationen ein, die in Ihre Zertifikatsanfrage einbezogen werden. Was Sie gleich eingeben, ist ein sogenannter Distinguished Name oder DN. Es gibt eine ganze Reihe von Feldern, aber Sie können einige leer lassen. Für einige Felder gibt es einen Standardwert. Wenn Sie „.“ eingeben, bleibt das Feld leer. ----- Ländername (2-Buchstaben-Code) [XX]:CU-Staats- oder Provinzname (vollständiger Name) []:Kuba-Ortsname (z. B. Stadt) [Standardstadt]:Havanna-Organisationsname (z. B. Unternehmen) [ Standardunternehmen Ltd.]:DesdeLinux.Fan-Name der Organisationseinheit (z. B. Abschnitt) []:Allgemeiner Name der Enthusiasten (z. B. Ihr Name oder der Hostname Ihres Servers) []:chat.desdelinux.fan E-Mail-Adresse []:buzz@desdelinux.Ventilator

Wir ändern die globalen Konfigurationsoptionen

Nur wir werden bearbeiten die folgenden Optionen in der Datei /etc/prosody/prosody.cfg.lua:

[root @ linuxbox certs] # ​​cp /etc/prosody/prosody.cfg.lua \ /etc/prosody/prosody.cfg.lua.original [root @ linuxbox ~] # nano /etc/prosody/prosody.cfg. lua
- Prosody-Beispielkonfigurationsdatei - - Informationen zum Konfigurieren von Prosody finden Sie auf unserer - Website unter http://prosody.im/doc/configure - - Tipp: Sie können überprüfen, ob die Syntax dieser Datei korrekt ist - wenn Sie fertig sind durch Ausführen von: luac -p prosody.cfg.lua - Wenn es Fehler gibt, werden Sie wissen, was und wo - sie sind, sonst wird es ruhig bleiben. - - Sie müssen diese Datei nur noch umbenennen, um die Endung .dist zu entfernen, und die Lücken ausfüllen. Viel Glück und viel Spaß beim Geschwätz! ---------- Serverweite Einstellungen ---------- - Die Einstellungen in diesem Abschnitt gelten für den gesamten Server und sind die Standardeinstellungen - für alle virtuellen Hosts - Dies ist eine (von Standard, leer) Liste der Konten, die Administratoren sind - für den Server. Beachten Sie, dass Sie die Konten separat erstellen müssen - (Informationen finden Sie unter http://prosody.im/doc/creating_accounts) - Beispiel: admins = {"user1@example.com", "user2@example.net"}
admins = { "buzz@chat.desdelinux.fan", "trancos@chat.desdelinux.Lüfter" }

- Aktivieren Sie die Verwendung von libevent für eine bessere Leistung unter hoher Last. - Weitere Informationen finden Sie unter: http://prosody.im/doc/libevent --use_libevent = true; - Dies ist die Liste der Module, die Prosody beim Start lädt. - Es sucht nach mod_modulename.lua im Plugins-Ordner, stellen Sie also sicher, dass es auch existiert. - Dokumentation zu Modulen finden Sie unter: http://prosody.im/doc/modules modules_enabled = {- Allgemein erforderlicher "Dienstplan"; - Ermöglichen Sie Benutzern einen Dienstplan. Empfohlen;) "saslauth"; - Authentifizierung für Clients und Server. Empfohlen, wenn Sie sich anmelden möchten. "tls"; - Unterstützung für sicheres TLS auf c2s / s2s-Verbindungen "dialback" hinzufügen; - s2s Dialback-Unterstützung "Festplatte"; - Serviceerkennung - Nicht wesentlich, aber empfohlen "privat"; - Privater XML-Speicher (für Raumlesezeichen usw.) "vcard"; - Benutzern erlauben, vCards festzulegen - Diese werden standardmäßig kommentiert, da sie sich auf die Leistung auswirken - "Datenschutz"; - Unterstützt Datenschutzlisten - "Komprimierung"; - Stream-Komprimierung (Hinweis: Erfordert das installierte lua-zlib-RPM-Paket) - Schön, "Version" zu haben; - Antworten auf Serverversionsanforderungen "Verfügbarkeit"; - Geben Sie an, wie lange der Server "Zeit" ausgeführt hat. - Lassen Sie andere die Zeit hier auf diesem Server "Ping" wissen; - Antworten auf XMPP-Pings mit Pongs "pep"; - Ermöglicht Benutzern das Veröffentlichen ihrer Stimmung, Aktivität, Musikwiedergabe und mehr "Registrieren"; - Benutzer können sich mit einem Client auf diesem Server registrieren und Kennwörter ändern. - Admin-Schnittstellen "admin_adhoc"; - Ermöglicht die Verwaltung über einen XMPP-Client, der Ad-hoc-Befehle unterstützt - "admin_telnet"; - Öffnet die Telnet-Konsolenschnittstelle am Localhost-Port 5582 - HTTP-Module
        "bosh"; - Aktivieren Sie BOSH-Clients, auch bekannt als "Jabber over HTTP".
        - "http_files"; - Statische Dateien aus einem Verzeichnis über HTTP bereitstellen - Andere spezifische Funktionen "posix"; - POSIX-Funktionalität, sendet Server an Hintergrund, aktiviert Syslog usw. - "Gruppen"; - Shared Roster Support - "Announce"; - Ankündigung an alle Online-Benutzer senden - "Willkommen"; - Begrüßen Sie Benutzer, die Konten registrieren - "Überwachungsregistrierungen"; - Alarmadministratoren von Registrierungen - "motd"; - Senden Sie eine Nachricht an Benutzer, wenn sie sich anmelden - "Legacyauth"; - Legacy-Authentifizierung. Wird nur von einigen alten Kunden und Bots verwendet. };

bosh_ports = {{port = 5280; path = "http-bind"; interface = "127.0.0.1"; }}

bosh_max_inactivity = 60
- Verwenden Sie diese Option, wenn Sie HTTPS-> HTTP auf der Serverseite als Proxy verwenden
Betrachten Sie_bosh_secure = true
- Ermöglichen Sie den Zugriff von Skripten auf jeder Site ohne Proxy (erfordert einen modernen Browser)
cross_domain_bosh = wahr

- Diese Module werden automatisch geladen. Wenn Sie sie jedoch deaktivieren möchten, kommentieren Sie sie hier aus: modules_disabled = {- "offline"; - Offline-Nachrichten speichern - "c2s"; - Client-Verbindungen behandeln - "s2s"; - Server-zu-Server-Verbindungen bearbeiten}; - Deaktivieren Sie die Kontoerstellung aus Sicherheitsgründen standardmäßig. - Weitere Informationen finden Sie unter http://prosody.im/doc/creating_accounts allow_registration = false. - Dies sind die SSL / TLS-bezogenen Einstellungen. Wenn Sie nicht möchten - SSL / TLS verwenden möchten, können Sie dieses ssl = {key = "/etc/pki/prosody/localhost.key" kommentieren oder entfernen. certificate = "/etc/pki/prosody/localhost.crt"; } - Clients zwingen, verschlüsselte Verbindungen zu verwenden? Diese Option verhindert, dass Clients sich authentifizieren, es sei denn, sie verwenden Verschlüsselung.

c2s_require_encryption = wahr

- Zertifikatauthentifizierung für Server-zu-Server-Verbindungen erzwingen? - Dies bietet ideale Sicherheit, erfordert jedoch Server, mit denen Sie kommunizieren - um die Verschlüsselung zu unterstützen UND gültige, vertrauenswürdige Zertifikate vorzulegen. - HINWEIS: Ihre Version von LuaSec muss die Zertifikatsüberprüfung unterstützen! - Weitere Informationen finden Sie unter http://prosody.im/doc/s2s#security s2s_secure_auth = false. - Viele Server unterstützen keine Verschlüsselung oder haben ungültige oder selbstsignierte Zertifikate. Hier können Sie Domänen auflisten, für deren Authentifizierung keine Zertifikate erforderlich sind. Sie werden mit DNS authentifiziert. --s2s_insecure_domains = {"gmail.com"} - Auch wenn Sie s2s_secure_auth deaktiviert lassen, können Sie für einige Domains gültige Zertifikate anfordern, indem Sie hier eine Liste angeben. --s2s_secure_domains = {"jabber.org"} - Wählen Sie das zu verwendende Authentifizierungs-Backend aus. Die "internen" Anbieter - Verwenden Sie den konfigurierten Datenspeicher von Prosody, um die Authentifizierungsdaten zu speichern. - Damit Prosody Clients sichere Authentifizierungsmechanismen anbieten kann, speichert der Standardanbieter Kennwörter im Klartext. Wenn Sie Ihrem Server nicht vertrauen, finden Sie Informationen zur Verwendung des Hash-Backends unter http://prosody.im/doc/modules/mod_auth_internal_hashed.

- authentication = "internal_plain"
Authentifizierung = "Cyrus"
cyrus_service_name = "xmpp"
cyrus_require_provisioning = falsch

- Wählen Sie das zu verwendende Speicher-Backend aus. Standardmäßig verwendet Prosody flache Dateien - in seinem konfigurierten Datenverzeichnis, unterstützt aber auch mehr Backends - über Module. Ein "SQL" -Backend ist standardmäßig enthalten, erfordert jedoch zusätzliche Abhängigkeiten. Weitere Informationen finden Sie unter http://prosody.im/doc/storage. --storage = "sql" - Die Standardeinstellung ist "intern" (Hinweis: "sql" muss installiert sein - lua-dbi RPM-Paket) - Für das "sql" -Backend können Sie * eines * der folgenden Elemente auskommentieren, um Folgendes zu konfigurieren: - sql = {driver = "SQLite3", database = "prosody.sqlite"} - Standard. 'Datenbank' ist der Dateiname. --sql = {driver = "MySQL", database = "prosody", username = "prosody", password = "secret", host = "localhost"} --sql = {driver = "PostgreSQL", database = "prosody" ", username =" prosody ", password =" secret ", host =" localhost "} - Protokollierungskonfiguration - Erweiterte Protokollierung finden Sie unter http://prosody.im/doc/logging log = {- Protokollieren Sie alle Informationen der Ebene" info ". und höher (dh alle außer "Debug" -Nachrichten) - an /var/log/prosody/prosody.log und Fehler auch an /var/log/prosody/prosody.err
    debug = "/var/log/prosody/prosody.log"; - Ändern Sie 'info' in 'debug' für die ausführliche Protokollierung
    error = "/var/log/prosody/prosody.err"; - Fehler auch in Datei protokollieren - error = "* syslog"; - Fehler auch in syslog protokollieren - log = "* console"; - An der Konsole anmelden, nützlich zum Debuggen mit daemonize = false} - POSIX-Konfiguration, siehe auch http://prosody.im/doc/modules/mod_posix pidfile = "/run/prosody/prosody.pid"; --daemonize = false - Standard ist "true" ------ Zusätzliche Konfigurationsdateien ------ - Aus organisatorischen Gründen ziehen Sie es möglicherweise vor, VirtualHost- und - Komponentendefinitionen in ihren eigenen Konfigurationsdateien hinzuzufügen. Diese Zeile enthält - alle Konfigurationsdateien in /etc/prosody/conf.d/ Include "conf.d / *. Cfg.lua"

Änderungen in der Dnsmasq-Konfiguration in Linuxbox

/Etc/dnsmasq.conf Datei

Fügen Sie einfach den Wert hinzu cname=chat.desdelinux.fan,linuxbox.desdelinux.Ventilator:

[root @ linuxbox ~] # nano /etc/dnsmasq.conf
----- # -------------------------------------------- --------- # RECORDSCNAMEMTXXT # --------- ------------------------------------------- # Diese Art der Registrierung erfordert eine Eintrag # in der Datei /etc/hosts # Beispiel: 192.168.10.5 Linuxbox.desdelinux.fan linuxbox # cname=ALIAS,REAL_NAME cname=mail.desdelinux.fan,linuxbox.desdelinux.Ventilator
cname=chat.desdelinux.fan,linuxbox.desdelinux.Ventilator
----

[root @ linuxbox ~] # service dnsmasq restart
[root @ linuxbox ~] # service dnsmasq status [root @ linuxbox ~] # host chat
Plaudern.desdelinux.fan ist ein Alias ​​für Linuxbox.desdelinux.Lüfter. Linuxbox.desdelinux.fan hat die Adresse 192.168.10.5 Linuxbox.desdelinux.Fan-Mail wird von 1 Mail bearbeitet.desdelinux.Lüfter.

/Etc/resolv.conf Datei

[root @ linuxbox ~] # nano /etc/resolv.conf 
search desdelinux.fan nameserver 127.0.0.1 # Für externe oder # Nicht-Domänen-DNS-Anfragen desdelinux.fan # local=/desdelinux.fan/ Nameserver 172.16.10.30

Änderungen im externen DNS beim ISP

Wir widmen den gesamten Artikel «Autoritärer DNS-Server NSD + Shorewall - KMU-Netzwerke»Zur Frage, wie die SRV-Einträge in Bezug auf XMPP deklariert werden, damit der Instant Messaging-Dienst ins Internet gehen kann und der Prosody-Server sich mit den übrigen kompatiblen XMPP-Servern im Web zusammenschließen kann.

Wir starten Prosody neu

[root @ linuxbox ~] # Neustart der Service-Prosodie
Umleitung zu / bin / systemctl Starten Sie prosody.service neu
[root @ linuxbox ~] # Service-Prosodiestatus
Umleiten zu / bin / systemctl status prosody.service ● prosody.service - Prosody XMPP (Jabber) -Server Geladen: geladen (/usr/lib/systemd/system/prosody.service; aktiviert; Herstellervoreinstellung: deaktiviert) Aktiv: aktiv (läuft) seit So 2017-05-07 12:07:54 EDT; Vor 8s Prozess: 1388 ExecStop = / usr / bin / prosodyctl stop (Code = beendet, Status = 0 / SUCCESS) Prozess: 1390 ExecStart = / usr / bin / prosodyctl start (Code = beendet, Status = 0 / SUCCESS) Haupt-PID : 1393 (lua) CGroup: /system.slice/prosody.service 1393─64 lua /usr/libXNUMX/prosody/../../bin/prosody

[root @ linuxbox ~] # tail -f /var/log/prosody/prosody.log
  • Es ist sehr sinnvoll, eine neue Konsole mit dem vorherigen Befehl zu öffnen und die Ausgabe des Prosody-Debugs zu beobachten, während der Dienst neu gestartet wird.

Wir konfigurieren Cyrus SASL

[root @ linuxbox ~] # nano /etc/sasl2/prosody.conf
pwcheck_method: saslauthd mech_list: PLAIN

[root @ linuxbox ~] # service saslauthd restart
Umleitung zu / bin / systemctl Starten Sie saslauthd.service neu
[root @ linuxbox ~] # service saslauthd status

-- Wenn...
[root @ linuxbox ~] # Neustart der Service-Prosodie

PAM-Konfiguration

[root @ linuxbox ~] # nano /etc/pam.d/xmpp
auth include password-auth account include password-auth

PAM-Authentifizierungsprüfungen

  • Um dies zu überprüfen, müssen wir den folgenden Befehl genau wie unten angegeben ausführen, da es sich um die Ausführung eines Befehls handelt als "Prosodie" -Nutzer und nicht als "Root" -Nutzer:
[root @ linuxbox ~] # sudo -u prosody testsaslauthd -s xmpp -u Schritte -p Schritte
0: OK "Erfolg".

[root @ linuxbox ~] # sudo -u prosody testsaslauthd -s xmpp -u legolas -p legolas
0: OK "Erfolg".

[root @ linuxbox ~] # sudo -u prosody testsaslauthd -s xmpp -u legolas -p Lengolas
0: NEIN "Authentifizierung fehlgeschlagen"

Der Authentifizierungsprozess für lokale Benutzer funktioniert ordnungsgemäß.

Wir ändern die FirewallD

Verwenden des grafischen Dienstprogramms «Firewalls«, Für die Gegend«Öffentlichkeit»Wir aktivieren die Dienste:

  • xmpp-bosch
  • xmpp-Client
  • xmpp-server
  • xmpp-lokal

Ähnliches gilt für das Gebiet «extern»Wir aktivieren die Dienste:

  • xmpp-Client
  • xmpp-server

Und wir öffnen die Häfen TCP 5222 und 5269.

Schließlich Wir nehmen Änderungen an vor Ausführungszeit a Dauerhaft y Laden Sie die FirewallD neu.

XMPP Psi Client

Um eine Verbindung mit dem neu installierten Prosody Instant Messaging-Server herzustellen, können Sie zwischen den verschiedenen vorhandenen Clients wählen:

  • Empathie
  • Gajim
  • Kadu
  • Hunde
  • psi plus
  • Pidgin
  • Telepathie
  • Chat

Die Liste geht weiter. Wir haben uns für das entschieden Psi +. Um es zu installieren, verwenden wir den bevorzugten Befehl dafür oder tun dies über die für diese Aufgabe verfügbaren Grafikwerkzeuge. Nach der Installation führen wir es aus und am Ende des Artikels geben wir eine Reihe von Bildern, von denen wir hoffen, dass sie für Sie nützlich sind.

Zusammenfassung

  • Wir können einen auf Prosody basierenden Instant Messaging-Dienst für lokale Benutzer des Systems installieren und auf die Erstellung interner Prosody-Benutzer oder anderer Arten der Speicherung von Authentifizierungsdaten verzichten.
  • Die Authentifizierungsdaten werden verschlüsselt vom Client zum Server und dessen Antworten auch an den Client übertragen.
  • Wir können mehr als einen Dienst basierend auf der lokalen Authentifizierung über PAM auf einem einzelnen Server installieren.
  • Soweit der Server Linuxbox.desdelinux.Ventilator bietet dem KMU-Netzwerk die folgenden Dienste an:
    • Auflösung von Domainnamen oder DNS.
    • Dynamische Zuweisung von IP- oder DCHP-Adressen
    • Network Time Service oder NTP
    • Sicherungen über SSH von UNIX / Linux-Clients oder über WinSCP für Microsoft Windows-Clients.
    • Instant Messaging-Dienst - Chat. Auch im Internet erhältlich.
    • Dateifreigabedienst über den Chat selbst. Auch im Internet erhältlich
    • Telefonkonferenzdienst, den Sie in Prosody konfigurieren können.

Und alle bisherigen Dienste mit einigen grafischen Tools für die Konfiguration der Firewall - FirewallD und für die Benutzer- und Gruppenverwaltung des Systems, die wirklich einfach zu verwenden sind, wenn wir über die Grundkenntnisse verfügen, was wir tun möchten.

Wichtig

Seien Sie sicher zu besuchen die folgende URL, um vollständige Informationen zu erhalten auf PRosodie: http: //prosody.im.

Bis zur nächsten Rate!


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.   Rechnung sagte

    Wie interessant all Ihre Beiträge sind, vielen Dank für alle.

  2.   IWO sagte

    Herzlichen Glückwunsch Federico zu einem weiteren tollen Artikel.
    Hier gibt uns der Autor das "Howto Know" zur Implementierung des Chat-Dienstes über Prosody, das das XMPP-Protokoll in einem Netzwerk verwendet, um Sofortnachrichten auszutauschen, Dateien zu übertragen, Konferenzen mit Sprache und Video abzuhalten und sich gegen lokale zu authentifizieren Benutzer über sichere Verbindungen.
    Darüber hinaus erleichtert der Autor, wie in der gesamten PYMES-Reihe üblich, die Integration des zu konfigurierenden Dienstes mit den übrigen Diensten und / oder Parametern, die bereits in einem Netzwerk in Betrieb sind:
    1- Die Änderungen, die wir am DNS-Dienst vornehmen müssen, um den Chat-Dienst einzuschließen, und alles funktioniert korrekt.
    2- Die Konfiguration (und Überprüfung) des PAM zur lokalen Authentifizierung des Chat-Dienstes.
    3- Was müssen wir in der Firewall für das lokale Netzwerk und das "Netzwerk der Netzwerke" tun, um den Chat-Dienst zuzulassen, und dies mit einem angemessenen Sicherheitsniveau.
    4- Und schließlich die Überprüfung des Chats von einem XMPP-Client.
    Nichts, um den Beitrag in einem TIPS-Verzeichnis zu speichern, wenn dieser Dienst implementiert werden muss.

  3.   federico sagte

    Ich hoffe, sie sind irgendwie nützlich für Sie. Danke für den Kommentar

  4.   federico sagte

    Freund IWO, Sie haben den wahren Kern des Artikels verstanden. Fügen Sie einfach hinzu, dass wir Dienste für ein UNIX / Linux-Netzwerk implementieren, auch wenn alle Clients Microsoft Windows sind. Viele Leser haben dieses kleine Detail vielleicht noch nicht bemerkt. 😉

  5.   Sternzeichen Karburus sagte

    Sehr guter Beitrag Freund Fico. Sie wissen, dass ich all Ihren Artikeln gefolgt bin, und in diesen letzten 4 habe ich viele Fragen gelernt, die ich nicht kannte, weil mir der Schleier von Active Directory und Domänencontroller ins Gesicht gelegt wurde. Ich wurde praktisch mit dem NT 4 und seinen PDCs und BDCs geboren. Mir war nicht bewusst, dass ich die Authentifizierung über ein Netzwerk auf einem einzelnen Computer mit Centos oder einem anderen Linux vereinfachen könnte. Jetzt lerne ich eine neue Philosophie, die meiner Meinung nach so alt ist wie der Ursprung der Geschichte der Netzwerke. Obwohl Sie mir wenig darüber erzählen, was Sie veröffentlichen werden 😉 Ich denke, Sie werden mit LDAP und dann mit dem auf Samba 4 basierenden Active Directory fortfahren? Vielen Dank für Ihr Engagement für freie Software. Ich werde auf deine nächsten Artikel warten, Fico.

  6.   Eduard Klaus sagte

    Tiger, toller Artikel !!!!!

    Kollege, es gibt ein kleines Detail: Im DNS-Teil geben Sie die gesamte Domain an desdelinux.fan auf IP 172.16.10.10, Sie haben diesen Server in Debian implementiert (den DNS-Server), jetzt ist dieser Chat-Server in CentOS, also hat er logischerweise eine andere IP-Adresse, für die Sie den gesamten Datenverkehr in der Firewall umleiten mussten Geben Sie diese IP an, auf der sich der Instant-Messaging-Dienst befinden würde, da sie zu diesem Zeitpunkt auf denselben DNS-Server verweist und nicht über den Messaging-Dienst verfügt.

    Ansonsten alles prächtig, eine große Umarmung.

  7.   federico sagte

    Danke Eduardo für den Kommentar. Sie haben den Absatz gut gelesen:

    Auf die gleiche Weise aktivieren wir für den "externen" Bereich die Dienste:

    xmpp-client
    xmpp-server

    Und wir öffnen die TCP-Ports 5222 und 5269.

    Ich erlaube die Ausgabe des XMPP-Protokolls über die ens34-Schnittstelle. Denken Sie an den folgenden Beitrag, auch aus dem Squid-Artikel. 😉

  8.   federico sagte

    Zodiac Freund: Sie lassen mich meine Überraschungen im Voraus erklären. Nein, LDAP läuft jetzt nicht. Es ist der Kern eines Mailservers, der auf Postfix, Dovecot, Squirrelmail und mit PAM-Authentifizierung basiert und der letzte dieser Mini-Serie ist. Mehr na. ;-). Dann, wenn der Rest kommt, bis wir zu Samba 4 AD-DC kommen. Tschüss!.

  9.   Eduard Klaus sagte

    Ja, mein Freund, wenn ich es lese, aber ich sehe das PREROUTING auf dem anderen Server nirgendwo, schau es dir an.

  10.   federico sagte

    Eduardo: Mach die Installation. Verbinden Sie einen Laptop mit einer Subnetz-IP 172.16.10.0/24. Installieren Sie einen Chat-Client darauf und stellen Sie eine Verbindung zu Prosody her. Also habe ich es gemacht und es hat so funktioniert. 😉
    Die FirewallD ist die für CentOS, die auf ihre eigene Weise PREROUTING wird.