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

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
prosody [24.12.2015 21:09] – [Konfiguration] x1lentprosody [25.12.2015 11:13] (aktuell) – [Konfiguration] x1lent
Zeile 2: Zeile 2:
  
   * Installation auf ffpi-services   * Installation auf ffpi-services
-  * Wird unter xmpp.ffpi oder xmpp.pinneberg.freifunk.net erreichbar sein+  * Ist unter xmpp.ffpi oder xmpp.pinneberg.freifunk.net erreichbar 
  
 ===== 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önlich 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 Speicherbedarfs von ejabberd.
  
 ===== Installation ===== ===== Installation =====
Zeile 24: Zeile 24:
 <code> <code>
 apt-get update apt-get update
-apt-get install prosody lua-sec+apt-get install prosody lua-sec lua-dbi-mysql lua-event lua-zlib
 </code> </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 anstelle 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 und dieser Account weiterhin auf beiden Hosts (xmpp.ffpi und xmpp.pinneberg.freifunk.netregistriert werden muss benutzen wir mod_register_web in einer modifizierten Version.
- +
-<file lua /usr/lib/prosody/modules/mod_register.lua> +
- +
-    [...] +
-    local blacklisted_ips = module:get_option("registration_blacklist") or {}; +
-    local whitelist_ip_starts_with = module:get_option("registration_whitelist_starts_with"); +
-    local register_hosts = module:get_option("registration_hosts"); +
-    --IP Check for FFPI -- +
-    function checkIP(ipadress,whitelist_start) +
-    for i, ipstart in ipairs(whitelist_start) do +
-    if string.sub(ipadress,1,string.len(ipstart))==ipstart then +
-    return true +
-    end +
-        end +
-        return false +
-    end +
-      +
-    [...] +
-      +
-    elseif blacklisted_ips[session.ip] or (whitelist_only and not whitelisted_ips[session.ip]then +
-        module:log("debug", "Check for WhiteList Strart"+
-        if (whitelist_only and not checkIP(session.ip,whitelist_ip_starts_with) then +
-            session.send(st.error_reply(stanza, "cancel", "not-acceptable", "You are not allowed to register an account.")); +
-    return true; +
-        end +
-    [...] +
-      +
-    else +
-    -- TODO unable to write file, file may be locked, etc, what's the correct error? +
-        local error_reply = st.error_reply(stanza, "wait", "internal-server-error", "Failed to write data to disk."); +
-      +
-        for i, reg_host in ipairs(register_hosts) do +
-    module:log("debug","host test: %s",reg_host) +
-    if usermanager_create_user(username, password, reg_host) then +
-        if next(data) and not account_details:set(username, data) then +
-            usermanager_delete_user(username, reg_host); +
-    session.send(error_reply); +
-    return true; +
-        end +
-        session.send(st.reply(stanza)); -- user created! +
-        module:log("info", "User account created: %s@%s", username, reg_host); +
-        module:fire_event("user-registered",+
-                    username = username, reg_host = reg_host, source = "mod_register", +
-    session = session }); +
-            else +
-        session.send(error_reply); +
-    end +
-       end +
-    [...+
-</file>+
  
 +<code>
 +cd /usr/lib/prosody/modules/
 +apt-get install git
 +git clone https://github.com/freifunk-pinneberg/mod_register_web.git
 +</code>
 ===== Konfiguration ===== ===== Konfiguration =====
  
Zeile 90: Zeile 45:
 openssl dhparam -out /etc/prosody/certs/dh_4096.pem 4096 openssl dhparam -out /etc/prosody/certs/dh_4096.pem 4096
 </code> </code>
-Dies kann einige Zeit dauern. In der zwischenzeit erstellen wir einen Mysqluser + DB für prosody:+Dies kann einige Zeit dauern. In der Zwischenzeit erstellen wir daher einen User und eine Datenbank für prosody:
  
 <code> <code>
Zeile 99: Zeile 54:
 </code> </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 Konfiguration von Prosody. Die Namen der Domainzertifikate sowie die Domain müssen natürlich entsprechend ausgefüllt werden.
  
 <file lua /etc/prosody/prosody.cfg.lua> <file lua /etc/prosody/prosody.cfg.lua>
Zeile 151: Zeile 106:
         -- These are commented by default as they have a performance impact         -- These are commented by default as they have a performance impact
                 --"privacy"; -- Support privacy lists                 --"privacy"; -- Support privacy lists
-                --"compression"; -- Stream compression (requires the lua-zlib package installed)+                "compression"; -- Stream compression (requires the lua-zlib package installed)
    
         -- Nice to have         -- Nice to have
Zeile 363: Zeile 318:
 ===== Abschluss ===== ===== Abschluss =====
  
-Anschließend Prosody einmal neustarten+Abschließend Prosody einmal neustarten
  
   service prosody restart   service prosody restart
  
  
prosody.1450987769.txt.gz · Zuletzt geändert: 24.12.2015 21:09 von x1lent