liveconfig + mailman

  • Hi!


    Ich habe mailman mehr oder minder auf einem Gentoo Server für liveconfig automatisiert:
    Damit wird der Server soweit eingerichtet, dass er für alle Postfix relaydomains auch Mailinglisten verwalten kann.


    1. mailman installieren, einrichten und konfigurieren
    mailman installiert sich unter Gentoo(~amd64) unter /usr/lib64/mailman/ und die Konfiguration/Mailinglisten unter /var/lib/mailman/
    cd /usr/lib64/mailman
    bin/newlist mailman
    bin/genaliases


    /etc/mailman/mm_cfg.py


    Bei Gentoo werden die mailman Scripte unter /usr/lib64/mailman abgelegt und sind nicht direkt per Kommando Zeile zu erreichen. Deswegen habe ich mir zwei kleine Wrapper geschrieben:


    /usr/local/bin/newlist

    Bash
    #!/bin/bash
    cd /usr/lib64/mailman
    bin/newlist "$@"


    /usr/local/bin/rmlist

    Bash
    #!/bin/bash
    cd /usr/lib64/mailman
    bin/rmlist "$@"


    Leider gehört die Datei /etc/postfix/relay_domains, die ich für mailman missbrauche, dem Benutzer [noparse]root:postfix[/noparse] (Gentoo, Suse, ...) und der Benutzer mailman hat keinen Zugriff darauf, das Hinzufügen des Benutzers mailman zur Gruppe postfix tuts leider nicht, da mailman mit Gruppenrechten gestartet wird.*
    Also musste ich mir was basteln damit diese Datei automatisch auch für den mailman verfügbar gemacht wird. Das Zaubertool ist incron, damit kann man auf Dateiänderungen warten und dann Aktionen ausführen.
    Also incron installieren und dann als root per incrontab -e die incrontab bearbeiten und die folgende Zeile einfügen:

    Code
    /etc/postfix/virtual_domains IN_MODIFY /usr/local/bin/postfix2mailman


    Das passende Skript dazu


    /usr/local/bin/postfix2mailman

    Bash
    #!/bin/bash
    cp -a /etc/postfix/virtual_domains /etc/mailman/virtual_domains
    chown mailman:mailman /etc/mailman/virtual_domains


    # Dann noch die Berechtigungen anpassen:
    chown 755 /usr/local/bin/newlist /usr/local/bin/rmlist /usr/local/bin/postfix2mailman


    2. Postfix anpassen
    Für Postfix brauchen wir Änderungen an der main.cf, deswegen darf liveconfig diese nun nicht mehr überschreiben


    Dafür in die custom.lua postfix.NOUPDATE = true einfügen und den liveconfig neustarten.


    in der /etc/postfix/main.cf ändern wir


    Die Änderungen an der master.cf die oft in anderen Anleitungen benannt werden brauchen wir nicht, diese Wrapper Skripte werden von den mailman Entwicklern nicht empfohlen.


    3. Apache konfigurieren
    Nun zum Webinterface, bei mir unter Gentoo läuft der default Apache Server nicht mit suexec. Das ist hier perfekt, da ansonsten das mailman Webinterface nicht benutzbar ist, eventuell nur mit Handständen (mailman selbst kompilieren mit anderer GID) .


    Die folgende Konfiguration ist Gentoo Spezifisch (<ifDefine MAILMAN> und </ifDefine> sollten bei allen anderen Distributionen wohl raus)
    /etc/apache/modules.d/50_mailman.conf


    Generell kann man nun die Webseite meinhostname.de/mailman aufrufen.


    Um nun für Kunden das bereitstellen zu können muss man pro Kunde die Datei
    /var/www/<kundenname>/.httpd.conf anpasssen


    /var/www/<kundenname>/.httpd.conf

    Code
    ProxyPass /mailman http://meinhostname.de/mailman
    ProxyPassReverse /mailman http://meinhostname.de/mailman
    
    
    ProxyPass /pipermail http://meinhostname.de/pipermail
    ProxyPassReverse /pipermail http://meinhostname.de/pipermail
    
    
    ProxyPass /mailman-icons http://meinhostname.de/mailman-icons
    ProxyPassReverse /mailman-icons http://meinhostname.de/mailman-icons


    Dann den Apache neustarten.


    4. Benutzung
    Kommandozeile:
    Liste anlegen:
    [noparse]newlist meinetollemailinglist@meineiegenedomain.de[/noparse]


    Liste löschen:
    rmlist meinetollemailinglist


    Archiv löschen:
    rmlist -a meinetollemailinglist


    Webinterface:
    [noparse]Die Mailingliste ist nun auch per http://beispiel.de/mailman zu erreichen, http://www.beispiel.de, list.beispiel.de und http://www.list.beispiel.de (letztere müssen als Subdomains angelegt sein) sollten auch funktionieren, allerdings funktioniert das Anlegen dann nicht und Listen als bla@beispiel.de sind z.B. http://www.beispiel.de dann versteckt, da mailman intern den kompletten hostnamen verwendet um die zugehörigen Mailinglisten zu erkennen.[/noparse]


    5. Hinweise
    Ich habe meine Konfiguration leider erst aufgeschrieben nachdem ich sie komplett funktional hatte, deswegen kann es sein, dass ich etwas übersehen habe, also bitte einfach schreiben falls Probleme auftauchen, dann schaue ich mir das nochmal an und passe die Anleitung an.


    Probleme mit Postfix beim Senden an eine Mailingliste kommen meistens daher dass die Dateien /var/lib/mailman/data/aliases und /var/lib/mailman/data/virtual_mailman dem falschen Besitzer gehören.


    [size=-2]* Tatsächlich konnte ich nicht ganz genau nachvollziehen, warum der mailman vom postfix als mailman ausgeführt nicht die gleichen Rechte hat wie su - mailman "/usr/lib64/bin/mailman ...." letzteres funktioniert, dann darf mailman die Datei /etc/postfic/relay_domains lesen. Vielleicht hat jemand einen Tipp dazu. Ohne incron wäre das schon schicker.[/size]

  • Bin gerade selbst darüber gestolpert! Wenn suexec aktiviert ist funktioniert das Ganze nicht, da dann der Benutzer nicht auf die Mailman Verzeichnisse zugreifen, warum genau das bei einem Proxy Zugriff zum tragen kommt weiß ich nicht, aber suexec läßt sich deaktivieren, in dem man in dem Vertrag CGI verbietet.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!