SASL-SMTP Nutzer ohne eigenes Postfach

Guten Tag,

also wo fange ich am besten an?
Ich betreibe seit einiger Zeit einen kleinen Mailserver für mich selbst mit Postfix (SMTP) und Dovecot (IMAP).
Postfix liefert per lmtp an dovecot, der die Mails ins maildir einsortiert, wo ich sie dann mit IMAP lesen kann.
Die Zugangsdaten habe ich in einem passwd-file unter /etc/dovecot/users.
Zudem habe ich in Posfix die SASL Anmeldung per Dovecot konfiguriert, so dass ich mich dort mit den gleichen Benutzerdaten anmelden kann, wie ich sie für den IMAP-Dienst verwende.
Unterm Strich läuft also alles.

Nun würde ich allerdings gerne dem MTA auf meinem Notebook erlauben Mails an meinen Mailserver zu geben und dafür eine Benutzername/Passwort-Kombination einrichten, die nur für den SMTP Zugang funktioniert und für nichts anderes. Insbesondere soll der betreffende „Benutzer“ natürlich kein eigenes Postfach haben, also der dovecot-lmtp müsste den Benutzer als Nichtexistent o.ä. zurückweisen und selbstverständlich soll auch keine IMAP-Anmeldung möglich sein.

Mein erster spontaner Gedanke war, einen Benutzereintrag ins passwd-file einzufügen, bei dem es kein gültiges Homedir gibt, also z.B.:
test:{plain}test:65534:65534::/dev/zero::
Damit habe ich zumindest einen Teil meiner Anforderung erfüllt: Ich kann mich am Postfix anmelden und Mails versenden. Außerdem scheitert eine Anmeldung am dovecot IMAP service.
Allerdings ist diese Lösung alles andere als sauber, zumal sie (berechtigterweise) zahlreiche Fehlermeldungen über das nichtexistierende Home-Dir des Nutzers in den Logs produziert.

Gibt es eine „saubere” Lösung für das, was ich möchte? Also eine Methode um Dovecot zu sagen „dieser Username soll keine Mails empfangen oder abrufen, er existiert nur dann, wenn postfix danach fragt“.

Ich hoffe ich habe einigermaßen verständlich rübergebracht was ich möchte.

Gruß und Guten Rutsch
MM

  • 31. Dezember 2013

  • Matthias Fischer

  • 1 Antwort

  1. tobi sagt:

    On 31.12.2013 17:36, Matthias Fischer wrote:
    > Homedir gibt, also z.B.:
    > test:{plain}test:65534:65534::/dev/zero::
    > Damit habe ich zumindest einen Teil meiner Anforderung erfüllt: Ich kann mich am Postfix anmelden und Mails versenden. Außerdem scheitert eine Anmeldung am dovecot IMAP service.
    > Allerdings ist diese Lösung alles andere als sauber, zumal sie (berechtigterweise) zahlreiche Fehlermeldungen über das nichtexistierende Home-Dir des Nutzers in den Logs produziert.
    >
    >
    auchmal mit /dev/null als Home probiert? Gibt das auch die Logmeldungen
    bezüglich nicht-existentem Home?
    Ich habe meine User in einer DB drum weiss ich ned ob folgende Idee auch
    mit lokalen PW-Files klappt, aber ich würde bei mir folgendes probieren:
    Dem User würde ich trotzdem ein gültiges Home geben. Dann motzt Dovecot
    sicher ned 😉
    In der Usertabelle eine neue Spalte z.B. allow_login mit Wert 1 oder 0.
    Dann die passwd_query von Dovecot anpassen

    password_query = SELECT password FROM users WHERE userid = ‚%u‘ AND
    (allow_login = 1 OR (‚%s‘ != ‚pop3‘ AND ‚%s‘ != ‚imap‘))

    %s wird mit der „Methode“ des Zugriffs erweitert. Entweder hat der User
    eine 1 im allow_login oder die Zugriffsmethode ist weder pop3 noch imap.
    Habe sowas aber noch nie selber probiert, drum nur als Idee ohne
    Garantie 😉

    Gruss und ebenfalls guten Rutsch an alle

    tobi