!!!SOGo Groupware

Dokumentation einer Test-Konfiguration von SOGo als E-Mail-/Kalender-/Adressbuch-Server

Die Installation erfolgt auf Debian 9.x ("Stretch").

Ich nutze die SOGo-Pakete von SOGo.nu, weil die Version 3.2.6, die in Debian Stretch paketiert ist, 
beim Teilen von Kalendern und Adressbüchern mit anderen Nutzern keinen funktionierenden Dialog für 
die Vergabe von Zugriffsrechten besitzt.

Folgende Software-Komponenten müssen installiert und konfiguriert werden:

* LDAP-Server
* PostgreSQL-Datenbank
* Postfix SMTP-Server für den E-Mail-Transport
* Dovecot IMAP-Server für E-Mail Postfächer
* der SOGo-Server
* Apache-Webserver

!!~OpenLDAP

{{{

    aptitude install slapd ldap-utils ldapvi

}}}

Das Passwort für den LDAP-Admin ist in diesem Schritt egal.

Den LDAP-Server ans das localhost-Interface binden. Dazu in der Datei {{/etc/default/slapd}} die Zeile {{SLAPD_SERVICES}} wie folgt anpassen:

{{{

    SLAPD_SERVICES="ldap://127.0.0.1:389/ ldapi:///"

}}}

Den LDAP-Server neu starten und mit {{netstat}} die Änderung kontrollieren.

{{{

    systemctl restart slapd.service
    netstat -tlpn

}}}

Meine eigene Domain konfiguriere ich im LDAP mit dem Kommando 

{{{

    dpkg-reconfigure slapd

}}}

Folgende Antworten habe ich bei der Paketkonfiguration gegeben:

;~OpenLDAP-Server-Konfiguration auslassen?:{{Nein}}
;DNS-Domainname:Meine E-Mail-Domain, also zum Beispiel {{example.com}}
;Name der Organisation:Meine Organisation, zum Beispiel {{Linuxclub e.V.}}
;Administrator-Passwort:Ein gutes Passwort für den LDAP-Admin, zum Beispiel {{Besonders-geheimes-LDAP-Passwort}}
;Passwort bestätigen:{{Besonders-geheimes-LDAP-Passwort}}    
;Zu verwendendes Datenbank-Backend:{{MDB}}
;Soll die Datenbank entfernt werden, wenn slapd vollständig gelöscht wird?:{{Nein}}
;Alte Datenbank verschieben?:{{Ja}}

Zum Schluss erweitere ich das LDAP-Schema um die Erweiterungen des Mail-Programm {{qmail}}

{{{

   ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/qmail.ldif

}}}

Die Datei qmail.ldif wird vom Debian-Projekt nicht mitgeliefert. Ihr findet eine passende Version als Anlage zu dieser Wiki-Seite.

Ich benutze {{ldapvi}} zur Administation des LDAP.

Der Aufruf von {{ldapvi}} zum Bearbeiten des LDAP-Verzeichnis:

{{{

    ldapvi -D cn=admin,dc=example,dc=com -d

}}}

Nach Eingabe des Passworts zu {{cn=admin,dc=example,dc=com}} bekommt man im {{vi}} das Folgende angezeigt:

{{{

   0 dc=example,dc=com
   objectClass: top
   objectClass: dcObject
   objectClass: organization
   o: Linuxclub e.V.
   dc: example

   1 cn=admin,dc=example,dc=com
   objectClass: simpleSecurityObject
   objectClass: organizationalRole
   cn: admin
   description: LDAP administrator
   userPassword: {SSHA}mvlu89+Yq1LBiCRl05t2hNpEH55RK2M8

}}}

Ich ergänze den Knoten {{ou=users}} und meinen ersten User-Eintrag, indem ich den Inhalt wie folgt ergänze:

{{{

   0 dc=example,dc=com
   objectClass: top
   objectClass: dcObject
   objectClass: organization
   o: Linuxclub e.V.
   dc: example

   1 cn=admin,dc=example,dc=com
   objectClass: simpleSecurityObject
   objectClass: organizationalRole
   cn: admin
   description: LDAP administrator
   userPassword: {SSHA}mvlu89+Yq1LBiCRl05t2hNpEH55RK2M8

   add ou=users,dc=example,dc=com
   ou: users
   objectClass: organizationalUnit
   objectClass: top

   add uid=maxi,ou=users,dc=example,dc=com
   uid: maxi
   cn: Max Muster
   givenName: Max
   sn: Muster
   mail: max.muster@example.com
   objectClass: inetOrgPerson
   objectClass: organizationalPerson
   objectClass: person
   objectClass: qmailUser
   objectClass: top
   mailAlternateAddress: maxi@example.com
   userPassword: {ssha}4WRzS4hnn3oqd2m1mvwSMPQLB4Lff5ulxPB8ZQ==

}}}

Beim Speichern fragt {{ldapvi}} nach, ob die beiden neuen Objekte im LDAP angelegt werden sollen.

!!~PostgreSQL

!!Postfix

!!Dovecot

!!SOGo

!!Apache2