Jabber Server mit Prosody: Unterschied zwischen den Versionen

Aus Hackerspace Bielefeld Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Um einen jabber Server mit Prosody zu installieren, muß man als erstes das Debian installieren. Ich habe zusätzlich zur Installation noch die Pakete vim und…“)
 
(Kategorisierung)
 
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{veraltet}}
Um einen jabber Server mit Prosody zu installieren, muß man als erstes das Debian installieren. Ich habe zusätzlich zur Installation noch die Pakete vim und ssh installiert.
Um einen jabber Server mit Prosody zu installieren, muß man als erstes das Debian installieren. Ich habe zusätzlich zur Installation noch die Pakete vim und ssh installiert.


Zeile 15: Zeile 17:
Globale Einstellungen:
Globale Einstellungen:


bosh_ports = {
bosh_ports = {
                {
  {
                    port = 5280;
  port = 5280;
                  path = "http-bind";
  path = "http-bind";
 
 
                    interface = "<IP Adresse des Prosody Servers";
  interface = "[IP Adresse des Prosody Servers]";
                }
  }
              }
}


Damit habe ich den HTTP Zugriff des Jabber Servers konfiguriert. Das muß normalerweise nicht gemacht werden. Zum reinen Betrieb des Jabebr Servers reicht ein XMPP CLient aus. Da ich aber neuen Chattern die Möglichkeit geben möchte "auf die schnelle" mal in die Lobby zu gelangen habe ich dafür den Candy Webclient installiert. Für diesen Webclient Zugriff brauche ich den BOSH Server.
Damit habe ich den HTTP Zugriff des Jabber Servers konfiguriert. Das muß normalerweise nicht gemacht werden. Zum reinen Betrieb des Jabebr Servers reicht ein XMPP CLient aus. Da ich aber neuen Chattern die Möglichkeit geben möchte "auf die schnelle" mal in die Lobby zu gelangen habe ich dafür den Candy Webclient installiert. Für diesen Webclient Zugriff brauche ich den BOSH Server.
Zeile 28: Zeile 30:
Für die User Registrierung ist der Eintrag
Für die User Registrierung ist der Eintrag


  allow_registration = false
allow_registration = false




Zeile 38: Zeile 40:
Eingefügt habe ich noch den Parameter
Eingefügt habe ich noch den Parameter


c2s_idle_timeout = 1800
c2s_idle_timeout = 1800


Damit die Clients nicht einfach aus dem chat fliegen. Das betrifft vorallem Mobile Clients, da das Betriebssystem Android oder iOS ja auch mal in den Standby Modus gehen.
Damit die Clients nicht einfach aus dem chat fliegen. Das betrifft vorallem Mobile Clients, da das Betriebssystem Android oder iOS ja auch mal in den Standby Modus gehen.


storage = "sql" -- Default is "internal"
storage = "sql" -- Default is "internal"
 
sql = { driver = "MySQL", database = "<Datenbank Name>", username = "<Datenbank User>", password = "<Datenbank Password>", host = "<Datenbank Server>" }


        ssl = {
sql = {
                key = "/etc/ssl/<Jabber Server Key>.key";
  driver = "MySQL",
                certificate = "/etc/ssl/<Jabber Server SSL Zertifikat>.crt";
  database = "[Datenbank Name]",
options = { "no_sslv2", "no_ticket", "no_compression", "cipher_server_preference", "single_dh_use", "single_ecdh_use", "no_sslv3" };
  username = "[Datenbank User]",
--Allow perfect forward secrecy;
  password = "[Datenbank Password]",
        }
  host = "[Datenbank Server]" }
ssl = {
  key = "/etc/ssl/[Jabber Server Key].key";
  certificate = "/etc/ssl/[Jabber Server SSL Zertifikat].crt";
options = { "no_sslv2", "no_ticket", "no_compression", "cipher_server_preference", "single_dh_use", "single_ecdh_use", "no_sslv3" };
--Allow perfect forward secrecy;
}


Zu der SSL Konfiguration ist zu sagen, daß ich erst Probleme hatte die Zertifikate im Jabber Server ans laufen zu bekommen.
Zu der SSL Konfiguration ist zu sagen, daß ich erst Probleme hatte die Zertifikate im Jabber Server ans laufen zu bekommen.
Zeile 58: Zeile 67:


Ich habe
Ich habe
 
VirtualHost "[Internet Domäne]"  
VirtualHost "<Internet Domäne>"
  --enabled = false -- Remove this line to enable this host
        --enabled = false -- Remove this line to enable this host
  -- Assign this host a certificate for TLS, otherwise it would use the one
 
  -- set in the global section (if any).
        -- Assign this host a certificate for TLS, otherwise it would use the one
  -- Note that old-style SSL on port 5223 only supports one certificate, and will always
        -- set in the global section (if any).
  -- use the global one.
        -- Note that old-style SSL on port 5223 only supports one certificate, and will always
        -- use the global one.


Damit wird der Virtualhost des Jabber Serves eingestellt. Es gibt dabei allerdings Unterschiede im Vergleich zu den Virtualhost Einstellungen eines Apache Webservers.
Damit wird der Virtualhost des Jabber Serves eingestellt. Es gibt dabei allerdings Unterschiede im Vergleich zu den Virtualhost Einstellungen eines Apache Webservers.


Component "conference.westchat.de" "muc"
Component "conference.westchat.de" "muc"


Damit wird eine Adresse für einen MUC (Multi User Chat) definiert. Im Grunde ein Chatraum oder auch #Channel wir im IRC.
Damit wird eine Adresse für einen MUC (Multi User Chat) definiert. Im Grunde ein Chatraum oder auch #Channel wir im IRC.
Zeile 78: Zeile 85:
Damit die XMPP Server und Clients sich finden sind extra DNS einstellungen notwendig. Etwa wie bei SIP Telefonie, oder auch Mail Exchange einstellgen:
Damit die XMPP Server und Clients sich finden sind extra DNS einstellungen notwendig. Etwa wie bei SIP Telefonie, oder auch Mail Exchange einstellgen:


_jabber._tcp.<Internet Domäne>.      IN SRV  0 0 5269  <FQDN>.
_jabber._tcp.[Internet Domäne].      IN SRV  0 0 5269  <FQDN>.
_xmpp-server._tcp.<Internet Domäne>.  IN SRV  0 0 5269  <FQDN>.
_xmpp-server._tcp.[Internet Domäne].  IN SRV  0 0 5269  <FQDN>.
_xmpp-client._tcp.<Internet Domäne>.  IN SRV  0 0 5222  <FQDN>.
_xmpp-client._tcp.[Internet Domäne].  IN SRV  0 0 5222  <FQDN>.


Die beiden Einstellungen Jabber und xmpp-server sind für die Server verbinden da. Die s2s (Server zu Server) Verbindungen laufen dabei über Port 5269.
Die beiden Einstellungen Jabber und xmpp-server sind für die Server verbinden da. Die s2s (Server zu Server) Verbindungen laufen dabei über Port 5269.
Zeile 87: Zeile 94:


Wenn diese DNS EInstellungen entsprechend gemacht wurden, dann muß man bei XMPP Client nur noch die JID ID Angeben. Die Server werden aufgrund der Einstellungen im DNS gefunden.
Wenn diese DNS EInstellungen entsprechend gemacht wurden, dann muß man bei XMPP Client nur noch die JID ID Angeben. Die Server werden aufgrund der Einstellungen im DNS gefunden.
[[Kategorie:projekt]]

Aktuelle Version vom 13. September 2023, 20:49 Uhr

Diese Seite ist veraltet


Um einen jabber Server mit Prosody zu installieren, muß man als erstes das Debian installieren. Ich habe zusätzlich zur Installation noch die Pakete vim und ssh installiert.

apt-get install vim ssh

Die Installation des Jabber Servers geschieht mit

apt-get install prosody lua-dbi-mysql:amd64

Der Datenbank Layer für Lua wird installiert, da ich die Userdaten des Prosody in einer MySQL Datenbank ablegen möchte. Das wird später in der Config Datei extra eingestellt.

Die Konfigurationsdateien befinden sich unter /etc/prosody. Die zentrale Konfig datei lautet prosody.cfg.lua.

In der prosody.cfg.lua habe ich folgende Einstellungen gemacht:

Globale Einstellungen:

bosh_ports = {
 {
  port = 5280;
  path = "http-bind";
  
  interface = "[IP Adresse des Prosody Servers]";
 }
}

Damit habe ich den HTTP Zugriff des Jabber Servers konfiguriert. Das muß normalerweise nicht gemacht werden. Zum reinen Betrieb des Jabebr Servers reicht ein XMPP CLient aus. Da ich aber neuen Chattern die Möglichkeit geben möchte "auf die schnelle" mal in die Lobby zu gelangen habe ich dafür den Candy Webclient installiert. Für diesen Webclient Zugriff brauche ich den BOSH Server.

Für die User Registrierung ist der Eintrag

allow_registration = false


zuständig. Standard ist false, sodass sich keine neuen User per Jabber Client registrieren können.

durch andauernde Massen registrierungen mussten wir wir wieder auf false stellen

Eingefügt habe ich noch den Parameter

c2s_idle_timeout = 1800

Damit die Clients nicht einfach aus dem chat fliegen. Das betrifft vorallem Mobile Clients, da das Betriebssystem Android oder iOS ja auch mal in den Standby Modus gehen.

storage = "sql" -- Default is "internal"
sql = { 
 driver = "MySQL", 
 database = "[Datenbank Name]",
 username = "[Datenbank User]",
 password = "[Datenbank Password]",
 host = "[Datenbank Server]" }

ssl = {
 key = "/etc/ssl/[Jabber Server Key].key";
 certificate = "/etc/ssl/[Jabber Server SSL Zertifikat].crt";

options = { "no_sslv2", "no_ticket", "no_compression", "cipher_server_preference", "single_dh_use", "single_ecdh_use", "no_sslv3" };

--Allow perfect forward secrecy;
}

Zu der SSL Konfiguration ist zu sagen, daß ich erst Probleme hatte die Zertifikate im Jabber Server ans laufen zu bekommen. Durch Zufall habe ich im Internet einen EIntrag gefunden, worin geschrieben stand, daß man ein SAM/UCC Zertifikat für den Jabber Server benötigt, da jabber sowohl den DN Namen im Zertifikat abfrage wie auch 1 Alternate Name. Bei "normalen" Webserver SSL Zertifikaten wird aber kein Alternate Name gesetzt. Also müsste man etwas mehr bezahlen und ein entsprechendes Zertifikat zu bekommen. Die Alternative heisst hier Startssl.com, da man dort auch XMPP SAN Zertifikate bekommen kann. Für umsonst. Allerdings dann nur für 1 Jahr.

Ich habe

VirtualHost "[Internet Domäne]" 
 --enabled = false -- Remove this line to enable this host
 -- Assign this host a certificate for TLS, otherwise it would use the one
 -- set in the global section (if any).
 -- Note that old-style SSL on port 5223 only supports one certificate, and will always
 -- use the global one.

Damit wird der Virtualhost des Jabber Serves eingestellt. Es gibt dabei allerdings Unterschiede im Vergleich zu den Virtualhost Einstellungen eines Apache Webservers.

Component "conference.westchat.de" "muc"

Damit wird eine Adresse für einen MUC (Multi User Chat) definiert. Im Grunde ein Chatraum oder auch #Channel wir im IRC.

Darin können dann die Räume wie z.b. lobby@conference.westchat.de erstellt werden. DNS Einstellungen der Zone

Damit die XMPP Server und Clients sich finden sind extra DNS einstellungen notwendig. Etwa wie bei SIP Telefonie, oder auch Mail Exchange einstellgen:

_jabber._tcp.[Internet Domäne]. IN SRV 0 0 5269 <FQDN>. _xmpp-server._tcp.[Internet Domäne]. IN SRV 0 0 5269 <FQDN>. _xmpp-client._tcp.[Internet Domäne]. IN SRV 0 0 5222 <FQDN>.

Die beiden Einstellungen Jabber und xmpp-server sind für die Server verbinden da. Die s2s (Server zu Server) Verbindungen laufen dabei über Port 5269.

Die Client Verbindung läuft über Port 5222 sowohl verschlüsselt, wie auch unverschlüsselt.

Wenn diese DNS EInstellungen entsprechend gemacht wurden, dann muß man bei XMPP Client nur noch die JID ID Angeben. Die Server werden aufgrund der Einstellungen im DNS gefunden.