Nach Upgrade auf Leap 16.0 scheitert die Authentifizierung der mail-user

Hinweis: In dem Thema Nach Upgrade auf Leap 16.0 scheitert die Authentifizierung der mail-user gibt es 6 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo Foristen,


    ich habe meinen Server von Leap 15.4 über 15.5 und 15.6 auf 16.0 aktualisiert.

    Seitdem funktioniert der interne Mailtransport nicht mehr.

    fetchmail > postfix > dovecot oder behelfsweise sendmail >postfix > dovecot


    Den Zugriff der IMAP-Clients auf dovecot konnte ich bereits reparieren (Unterschiede in den config-files 2.3 vs 2.4). Die user können alle Mails in der gewohnten Form sehen. Es werden aber keine neuen Mails von draußen durchgereicht.


    Die Mails werden hier intern schon immer über den user-namen, wie in der passwd angegeben, adressiert - nicht über username@domain.


    In einem ersten Schritt habe ich sendmail > postfix getestet:

    Code
    echo Testmail | /usr/sbin/sendmail \ bananenkiste
    echo Testmail | /usr/sbin/sendmail \ bananenkiste@meinserver.de


    Die Antwort im Log sieht IN BEIDEN FÄLLEN so aus:


    Aus bananenkiste wird bananenkiste@meinserver.de


    Damit scheitert die Authentifizierung über passwd.


    Weiß jemand Rat?


    Vielen Dank für Tipps.


    Gruß,

    Bananenkiste

  • bananenkiste

    Hat den Titel des Themas von „Nach Upgrade auf Leap 16.0 scheitert die Authentifizierung der user“ zu „Nach Upgrade auf Leap 16.0 scheitert die Authentifizierung der mail-user“ geändert.
  • Ja ist ärgerlich - Dovecot in Leap 16 funktioniert restriktiver. Auch da hat sich leider grundlegend etwas geändert.

    Gibt es bei dir in /etc einen Ordner /dovecot/conf.d/ mit einer Konfigurationsdatei dovecot.conf oder 10-auth.conf ?

    Bei mir nicht!

    Aber für deine Einrichtung könnte so ein Ordner vorhanden sein.

    Wenn ja, dann suche mal nach untenstehender Sektion darin

    Code
    userdb {
      driver = passwd
      # Das Hinzufügen von 'args' kann helfen, 
      # aber oft ist das globale Stripping sauberer:
    }
    
    # Erzwingt, dass nur der Teil vor dem @ für den Lookup verwendet wird
    auth_username_format = %n

    und gebe dort wie oben auth_username_format = %n ein. Vorher natürlich die betreffende Konfigurationsdatei sichern.

    Es sollte dann wieder nur "bananenkiste" bei dir berücksichtigt werden.

    Ob dann allerdings alles zur Zufriedenheit läuft, klärt nur ein Versuch.

    Für den Inhalt des Beitrages 324036 haftet ausdrücklich der jeweilige Autor: Hidalgo

  • und gebe dort wie oben auth_username_format = %n ein.

    Du beschreibst hier die alte Syntax (dovecot < 2.4).


    So sieht das in der neuen Syntax aus:

    Code
    auth_username_format = %{user | username | lower }

    Zudem schaust Du auf die falsche Stelle. Dovecot kann einen übergebenen user authentifizieren sofern er als blanker username übergeben wird. Die IMAP-Clients können sich ja anmelden.


    Mein Problem besteht zwischen fetchmail bzw. sendmail > postfix > dovecot.


    Fetchmail leitet ein mail an user "bananenkiste" weiter. Postfix macht daraus dann (neuerdings) "bananenkiste@meinserver.de". Und dadurch fällt dann dovecot auf den Bauch.

  • Nachschlag:

    Postfix Configuration Parameters


    Postfix hängt den "@xxx.yz"-String an und man darf das nicht abschalten. Das muss schon vor meiner Aktualisierung so gewesen sein.

    Ich muss offenbar dovecot dazu bringen, doch user@domain zu validieren.


    Wie geht das?

  • Dann verstehe ich etwas Grundsätzliches wohl nicht.

    Postfix soll die Umbennung so lassen, also bleibt doch nur für die dovecot config (aktuell):


    %{user | username | lower}

    1. user: Nimmt den vollen Namen (z. B. BananenKiste@meinserver.de).
    2. | username: Schneidet die Domain ab (BananenKiste).
    3. | lower: Wandelt in Kleinschreibung um (bananenkiste).

    und damit landet genau das bei Dovecot an, was in der System-Passwortdatei steht.

    Mangels eigenem System bin ich jetzt allerdings 'raus - recherchieren kann jeder selbst.

    Für den Inhalt des Beitrages 324040 haftet ausdrücklich der jeweilige Autor: Hidalgo

  • Problem gelöst.

    Code
    auth_username_format = xyz

    Diese Variable bestimmt nicht, wie die Validierung erfolgen soll, sondern gibt an, was zur Validierung übergeben wird. Dovecot selbst schaut dann, dass es mit den Angaben klar kommt.


    Daher ist das hier richtig:


    Code
    auth_username_format = %{user | lower }


    Das hatte ich falsch verstanden.


    Jetzt muss ich nur noch die Konfigurationsdateien aufräumen. Aber 16.0 läuft jetzt!


    Danke für die Beteiligung.


    Gruß,


    die Bananenkiste