Markus Heberling Coding == Relaxing

30May/1217

SOGo, GOSa, Postfix, Amavis, Dovecot auf Ubuntu Server 12.04

Ich habe kürzlich mein Mailsystem auf LDAP umgestellt und dann auch gleich noch SOGo installiert um CalDAV und CardDAV zu haben. Hauptsächlich zur Nachvollziehbarkeit für mich selbst sind hier die Schritte, die ich auf einem frisch installierten Ubuntu 12.04 durchgeführt habe. Vielleicht hilft es ja auch jemand anderem. Ich hoffe es ist alles komplett. Wenn das mal jemand nachgemacht hat, würde ich mich über einen Kommentar freuen. Auch für Verbesserungsvorschläge der Konfiguration wäre ich dankbar.

Alle Shell eingaben sind als root durchzuführen, wenn nicht anders angegeben. Als hostname verwende ich hier mail.example.com. Die LDAP Base ist dc=example,dc=com.

Zunächst habe ich erstmal etckeeper installiert, da ich meine Konfiguratinsdateien gerne unter Versionsverwaltung habe:

GOsa wird zur Verwaltung des LDAP Systems genutzt.

Ich bevorzuge das rfc2307bis Schema für LDAP-Gruppen. Wer das nis Schema benutzen möchte, kann den nächsten Schritt weglassen.

 

Hier geht es für alle weiter. Es werden die von GOsa benötigten Schemata zum LDAP hinzugefügt:

Auf http://mail.example.com/gosa den Anweisungen folgen. Je nachdem ob man die rfc2307bis Gruppen im LDAP aktiviert hat, oder nicht muss die entsprechende Einstellung im GOsa Setup gewählt werden.

Nachdem man die generierte GOsa Konfiguration gespeichert hat, muss zunächst ein neues System in GOsa angelegt werden:

In diesem System kann nun ein neuer Mailserver angelegt werden:

Hierbei ist es wichtig, dass unter dem Punkt "Domänen, für die Mail angenommen wird" der Hostname des Servers eingetragen wird. In diesem Fall also mail.example.com.

Als nächstes werden postfix, dovecot und amavisd-new installiert. pyzor und razor verbessern die SPAM-Erkennungsrate, können aber weggelassen werden, wenn man das möchte. clamav-unofficial-sigs sind SPAM-Signaturen für clamav. mutt ist optional, aber hilfreich beim testen. phpldapadmin ist auch optimal, aber wenn man mal schnell in der LDAP-Datenbank rumeditieren will, ist es ganz hilfreich.

Das auth_username_format wird geändert, damit man sich mit der uid anmelden kann. Ausserdem muss die system Konfiguartion durch die ldap Konfiguration ersetzt werden.

In /var/lib/vmail/mail werden die Postfächer der Benutzer gespeichert. Unter /var/lib/vmail/home werden sieve scripts gespeichert.

Die Auth-Listener von Dovecot müssen die richtigen Berechtigungen haben:

Dovecot LDAP Konfiguration:

Mailaddressen zu alias auflösen:

LDAP-Gruppen auflösen:

LDAP Abfrage um die Domains herauszufinden, für die wir Mail akzeptieren:

LDAP Abfrage um den Mailboxnamen zu einer Mailaddresse herauszufinden:

Die LDAP Abfragen dem Postfix bekannt machen und Dovecot als Delivery und SASL Autentifizeirung konfigurieren:

Dovecot als delivery agent dem Postfix bekannt machen:

Virenscanner und SPAM-Checker im amavis aktivieren:

Sieve support konfigurieren:

SOGo nutzt den Port 2000 für Sieve:

SOGo benötigt für einige Regeln imapflags:

An dieser stelle sollte das Mail-System funktionieren.

Zunächst muss das SOGo repository in apt eingebunden werden. Ich habe den nightly build von SOGo 2.0 genommen, die Konfiguration sollte aber auch für SOGo 1.x passen.

/etc/apt/sources.list.d/sogo.list:

Apache kann automatisch konfiguriert werden. Für mysql sollte ein Passwort gesetzt werden. phpmyadmin ist optional, aber hilfreich wenn man mal in der Datenbank rumfuhrwerken will. Ich werde spöter phpmyadmin dazu benutzen die SOGo Datenbank anzulegen, aber das kann man natürich auch über die shell machen.

Es müssen noch ein paar module für den apache aktiviert werden:

SOGo legt seine config im home directory des sogo Benutzers an. Das liegt allerdings nicht unter /etc und wird daher nicht vom etckeeper verwaltet. Das ist doof. Deshalb verschiebe ich das home directory nach /etc/sogo:

Jetzt wird auch die SOGo Datenbank angelegt. Ich habe phpmyadmin dazu benutzt:


Und hier ist meine SOGo Konfigurationsdatei.:

Die Apache Konfiguration für SOGo muss noch angepasst werden. Den Teil mit der Erstellung von SSL Zertifikaten habe ich hier mal rausgelassen.

Jetzt muss noch SOGo gestartet und der Apache neu gestartet werden:

Ich hoffe mal, dass ich alle relevanten Einstellungen beschrieben habe. Kommentare gerne in den Kommentaren. 🙂

Comments (17) Trackbacks (1)
  1. root@xxx:~# ldapmodify -Y EXTERNAL -H ldapi:///
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    dn: olcDatabase={1}hdb,cn=config
    add: olcDbIndex
    olcDbIndex: uid eq
    olcDbIndex: mail eq
    olcDbIndex: cn eq
    olcDbIndex: gosaMailAlternateAddress eq
    olcDbIndex: gosaMailAlternateAddress eq
    olcDbIndex: postfixMyDestinations eq
    modifying entry “olcDatabase={1}hdb,cn=config”
    ldap_modify: Type or value exists (20)
    additional info: olcDbIndex: value #3 provided more than once

    root@xxx:~# # Können Sie uns mitteilen ob die letzte Meldung
    ldap_modify: Type or value exists (20)
    additional info: olcDbIndex: value #3 provided more than once
    auf ein Problem hindeutet? Wir haben alles genau nach der Beschreibung gemacht!

  2. Da scheint ein olcDbIndex: gosaMailAlternateAddress eq zuviel zu sein. Ich habe es im Post geändert.

  3. Kann es sein, dass in den ganzen DIFF’s die XML bestanteile () fehlen?

  4. Should read “a2enmod substitute” instead of “a2enmod substitude” !

  5. hallo markus,

    in einigen der diffs wurden die & als & ersetzt.

    weiters habe ich eine frage, ich hab das soweit konfiguriert, sogo funktioniert. kann mails senden sowie empfangen, auch via android-mail-client kann ich mails senden und empfangen.

    nur outlook zickt ziemlich rum, ich kann mich nicht mit dem imap-server verbinden. habe gelesen, dass outlook die auth-methode digest-md5 braucht, aktiviere ich diese dann geht garnix mehr.
    wo muss ich das denn noch anpassen?

    freundliche grüße

  6. Hab Apache auf Ubuntu 12.04 damit nicht zum Laufen gekriegt.
    Mir fehlen da wohl einige spitze Klammern.

  7. Hi
    thanks for the tutorial.

    hi i get an error on

    query_filter = (&(objectclass=gosaMailAccount)(|(mail=%s)(gosaMailAlternateAddress=%s)))

    postmap -vq “test@test.com” ldap:/etc/postfix/ldap-virtual_mailbox_maps.cf
    .
    .
    .
    postmap: warning: dict_ldap_lookup: Search error -7: Bad search filter

    thanks for help!

    • sry that i spamed! i have it! its cause & is escaped in this html preview with &amp.

      thx for this nice tutorial u can delete this 🙂

  8. btw i think it is a problem with the &amp param!

    Searching with filter (&(objectclass=gosaMailAccount)(|(mail=test@test.com)(gosaMailAlternateAddress=test@test.com)))

  9. Hey, danke, dass du meinen Spam gelöscht hast 🙂 Noch einmal vielen Dank für das nette Tutorial!
    Auch wenn ich so blind war, das &amp einfach zu kopieren 🙂 obwohl es nur ein & ist.
    Ich habe aber noch einen weitere Anmerkung:
    Ich habe das System noch um einen Posix-login in Gosa erweitert: Hier der Hinweis ->
    Wenn ihr diesen einstellt wird das Mail-system keine Mails mehr entgegen nehmen, da ihr eine falsche gid / uid erhaltet. Der Dovecot wollte bei mir den aktivierten posix account mit der id 1001 benutzen!
    Dieser kann aber nicht vom Dovecot mit dem User vmail und der id 800 verwendet werden. Dadurch scheitert der Helo mit einem Fehler:

    improper command pipelining after EHLO command ….

    im dovecot log steht dann aber :

    imap(XXXXX): Error: userXXXX: Initialization failed: Initializing mail storage from mail_location setting failed: stat(/var/lib/vmail/mail/XXXX) failed: Permission denied (euid=1001() egid=1001() missing +x perm: /var/lib/vmail/mail, dir owned by 800:800 mode=0700)

    Um das zu umgehen habe ich den User im gosa auch die uid / gid 800 gegeben.
    Für Hinweise bin ich dankbar!

    btw mein ldap läuft mitlerweile gegen posix redmine dovecot und postfix!

    Vielen Dank noch einmal !

    Ich

  10. Hi,
    Ich bekomme beim Einloggen in gosa immer einen Fehler, woran kann das liegen?

    Schwerer Fehler
    Fehler beim Verbinden mit dem LDAP-Server: Could not bind to cn=admin,dc=no-ip,dc=org (während der Arbeit auf LDAP-Server ‘ldap://localhost:389’)

    Danke für eine Antwort

  11. Vielen Dank für diese großartige detaillierte und vollständige Konfigurationsanleitung!

  12. Bei mir läuft soweit alles (postfix dovecot sieve sogo) mit sql Authentifizierung. Ich habe nur ein Problem: Weder im Webinterface noch über den Sync kann ich Kontaktfotos hinzufügen. Die Registerkarte Photos beim neuen Kontakt ist einfach leer (bis auf Save und Cancel). Hat noch wer dieses Problem? Sogo version 2.3.0

  13. Hi !
    I am installing GOSA LDAP
    on Ubuntu 16

    I have a problem with mySQL support

    Checking for MySQL support Error

    Help !!


Leave a comment