Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


prosody

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
prosody [05.12.2015 21:44] – angelegt havelockprosody [24.12.2015 20:52] x1lent
Zeile 1: Zeile 1:
-Prosody+====== Prosody ======
  
-    Installation auf ffpi-services +  * Installation auf ffpi-services 
-    Wird unter xmpp.ffpi oder xmpp.pinneberg.freifunk.net erreichbar sein+  Wird unter xmpp.ffpi oder xmpp.pinneberg.freifunk.net erreichbar sein
  
-Warum Prosody?+===== Warum Prosody? =====
  
 Sicher fragt man sich warum wir kein ejabberd nutzen. Dies ist schlicht und ergreifend eigenen Präferenz. Ich persöhnlich störe mich daran bei ejabberd die Cipher-Suites für den verschlüsselten Austausch mit anderen Servern nicht manuell einstellen zu können. Weiterhin lässt sich ejabberd meiner Meinung schlechter warten, da es mit erlang geschrieben wurde. Prosody im Kontrast wurde mit lua geschrieben. Alleine schon die Packages die für den Betrieb benötigt werden sind kleiner und weniger von der Anzahl her. Weiterhin verbraucht Prosody nur 1/3 des Speicherbedarf von ejabberd. Sicher fragt man sich warum wir kein ejabberd nutzen. Dies ist schlicht und ergreifend eigenen Präferenz. Ich persöhnlich störe mich daran bei ejabberd die Cipher-Suites für den verschlüsselten Austausch mit anderen Servern nicht manuell einstellen zu können. Weiterhin lässt sich ejabberd meiner Meinung schlechter warten, da es mit erlang geschrieben wurde. Prosody im Kontrast wurde mit lua geschrieben. Alleine schon die Packages die für den Betrieb benötigt werden sind kleiner und weniger von der Anzahl her. Weiterhin verbraucht Prosody nur 1/3 des Speicherbedarf von ejabberd.
-Installation+ 
 +===== Installation =====
  
 Vorausgesetzt wird ein Debian Jessie 8.1 System. Vorausgesetzt wird ein Debian Jessie 8.1 System.
Zeile 13: Zeile 14:
 Als erstes muss die Paketquelle von Prosody hinzugefügt werden: Als erstes muss die Paketquelle von Prosody hinzugefügt werden:
  
 +<code>
 echo "deb http://packages.prosody.im/debian jessie main" > /etc/apt/sources.list.d/prosody.sources.list echo "deb http://packages.prosody.im/debian jessie main" > /etc/apt/sources.list.d/prosody.sources.list
 wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add - wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -
 apt-get update apt-get update
 +</code>
  
 Nachdem dies erledigt wurde wird prosody an sich installiert: Nachdem dies erledigt wurde wird prosody an sich installiert:
  
 +<code>
 apt-get update apt-get update
 apt-get install prosody lua-sec apt-get install prosody lua-sec
 +</code>
  
 Sollte die Version von lua-sec aus dem offiziellen Package Repos < 5.0 sein solltet ihr anstatt von lua-sec lua-sec-prosody installieren, dies trifft zum Beispiel auf Debian Wheezy zu. Sollte die Version von lua-sec aus dem offiziellen Package Repos < 5.0 sein solltet ihr anstatt von lua-sec lua-sec-prosody installieren, dies trifft zum Beispiel auf Debian Wheezy zu.
-Modifikation+ 
 +===== Modifikation =====
  
 Da es nur Clients aus dem FFPI Netz erlaubt werden soll einen Account beim XMPP Server zu erstellen muss die mod_register.lua modifiziert werden, da prosody das nicht von Haus aus unterstützt. Weiterhin wollen wir, dass der XMPP Server bei der Registration für mehrere VirtualHosts einen Account erstellt. Da es nur Clients aus dem FFPI Netz erlaubt werden soll einen Account beim XMPP Server zu erstellen muss die mod_register.lua modifiziert werden, da prosody das nicht von Haus aus unterstützt. Weiterhin wollen wir, dass der XMPP Server bei der Registration für mehrere VirtualHosts einen Account erstellt.
  
-/usr/lib/prosody/modules/mod_register.lua+<file lua /usr/lib/prosody/modules/mod_register.lua>
  
     [...]     [...]
Zeile 75: Zeile 81:
        end        end
     [...]     [...]
 +</file>
  
-Konfiguration+===== Konfiguration =====
  
-Als erstes wird der DH-Schlüssel für FS (Forward Secrecy) generiert: 
  
 +Als erstes wird der DH-Schlüssel für FS (Forward Secrecy) generiert:
 +<code>
 openssl dhparam -out /etc/prosody/certs/dh_4096.pem 4096 openssl dhparam -out /etc/prosody/certs/dh_4096.pem 4096
 +</code>
 +Dies kann einige Zeit dauern. In der zwischenzeit erstellen wir einen Mysqluser + DB für prosody:
  
-Dies kann einige Zeit dauernAlso in der Zwischenzeit einen Kaffee machen.+<code> 
 +mysql -u root -p 
 +mysql> create database prosody; 
 +mysql> grant usage on *.* to prosody@localhost identified by 'extremelySECRET'; 
 +mysql> grant all privileges on prosody.* to prosody@localhost; 
 +<code>
  
 Nun geht es an die eigentliche Anpassung von Prosody. Die Namen der Domainzertifikate sowie die Domain müssen natürlich entsprechend ausgefüllt werden. Nun geht es an die eigentliche Anpassung von Prosody. Die Namen der Domainzertifikate sowie die Domain müssen natürlich entsprechend ausgefüllt werden.
  
-/etc/prosody/prosody.cfg.lua+<file lua /etc/prosody/prosody.cfg.lua>
  
     -- Prosody XMPP Server Configuration     -- Prosody XMPP Server Configuration
Zeile 289: Zeile 304:
     --Component "gateway.example.com"     --Component "gateway.example.com"
     --        component_secret = "password"     --        component_secret = "password"
 +</file>
  
 Bei der Auswahl der Ciphers wurde ein besonderes Augenmerk auf die Sicherheit der Übertragung gelegt. Leider lässt sich eine eine ausschließe Verwendung von FS-Ciphers nicht umsetzen, da viele Server kein FS Support haben. Um aber trotzdem mit diesen Servern kommunizieren zu können wurde AES-128/256 im GCM (Galois-Counter-Mode) aktiviert. Bei der Auswahl der Ciphers wurde ein besonderes Augenmerk auf die Sicherheit der Übertragung gelegt. Leider lässt sich eine eine ausschließe Verwendung von FS-Ciphers nicht umsetzen, da viele Server kein FS Support haben. Um aber trotzdem mit diesen Servern kommunizieren zu können wurde AES-128/256 im GCM (Galois-Counter-Mode) aktiviert.
-DNS-Konfiguration+ 
 +===== DNS-Konfiguration ===== 
  
 Jetzt müssen noch die richtigen DNS Einträge für den Server gesetzt werden. Jetzt müssen noch die richtigen DNS Einträge für den Server gesetzt werden.
  
-ffpi.zone+<file conf ffpi.zone>
  
     ; _service._proto.name TTL class SRV priority weight port target     ; _service._proto.name TTL class SRV priority weight port target
     _xmpp-client._tcp.ffpi. 86400 IN SRV 5 0 5222 srv02.ffpi.     _xmpp-client._tcp.ffpi. 86400 IN SRV 5 0 5222 srv02.ffpi.
     _xmpp-server._tcp.ffpi. 86400 IN SRV 5 0 5269 srv02.ffpi.     _xmpp-server._tcp.ffpi. 86400 IN SRV 5 0 5269 srv02.ffpi.
 +</file>
  
-Abschluss+===== Abschluss =====
  
 Anschließend Prosody einmal neustarten Anschließend Prosody einmal neustarten
  
-service prosody restart+  service prosody restart
  
  
prosody.txt · Zuletzt geändert: 25.12.2015 11:13 von x1lent