ubuntuusers.de

Mailserver Postfix SASL authentucation failed

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

DannySol

Anmeldungsdatum:
6. Dezember 2017

Beiträge: Zähle...

Guten morgen ! Undzwar habe ich folgendes Problem.... Momentan versuche ich einen lokalen Mailserver für das Firmen Netzwerk aufzustellen, mithilfe von Postfix und Dovecot auf einem Ubuntu 16 Server. Eigentlich ist alles bereits Konfiguriert und ich kann mich mit einem Mailclienten auf dem Server anmelden.

Beim versuch eine mail abzuschicken wird mir im Syslog jedoch folgende Meldung angezeigt ....

Dec 15 08:53:31 DannySol postfix/smtps/smtpd[26474]: warning: SASL authentication failure: Password verification failed
Dec 15 08:53:31 DannySol postfix/smtps/smtpd[26474]: warning: DannySol.dvg[127.0.0.1]: SASL PLAIN authentication failed: authentication failure
Dec 15 08:53:31 DannySol postfix/smtps/smtpd[26474]: warning: DannySol.dvg[127.0.0.1]: SASL LOGIN authentication failed: authentication failure

... und die Mail wird (logischerweise) nicht abgeschickt. Kann mir jemand helfen und einen Tipp geben was ich falsch gemacht habe oder woran es liegen könnte ?

Meine postconf sieht folgendermaßen aus....

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
home_mailbox = Maildir/
inet_interfaces = all
inet_protocols = all
mailbox_command =
mailbox_size_limit = 0
mydestination = DannySol.dvg
myhostname = DannySol.dvg
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_use_tls = no
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_tls_loglevel = 4
smtpd_use_tls = no
transport_maps = hash:/etc/postfix/transport

JensHol

Anmeldungsdatum:
31. Oktober 2017

Beiträge: 324

Beim Client in den Mail Einstellungen bei smtp konfiguriert, dass eine Anmeldung erforderlich ist für smtp? Mit Nutzer und kennwort?

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

Als Client wird Thunderbird genutzt, falls das eventuell wichtig ist 😀

Also unter "connection security" wurde TLS deaktiviert. Und unter dem Punkt "authentication method" ist "password, transmitted insecurely" ausgewählt. Weitere möglichkeiten wären :

  • no authentication

  • encrypted password

  • Kerberos / GSSAPI

  • NTLM * OAuth2

Nutzername ist angegeben, und das Passwort stimmt auch.

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

Eigentlich ist alles bereits Konfiguriert und ich kann mich mit einem Mailclienten auf dem Server anmelden.

Beim versuch eine mail abzuschicken wird mir im Syslog jedoch folgende Meldung angezeigt ....

Also funktioniert IMAP/PO3, aber nicht SMTP?

Wie sieht die Konfiguration von SASL und die master.cf aus?

DannySol schrieb:

Also unter "connection security" wurde TLS deaktiviert.

Welcher Port?

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

Also funktioniert IMAP/PO3, aber nicht SMTP?

Wie genau kann ich das auf der Shell-Ebene überprüfen ?

Wie sieht die Konfiguration von SASL und die master.cf aus?

Gibt es für diese beiden config Dateien einen ähnlichen Befehl wie "postconf" ?

Welcher Port?

Port 25

Sorry für vielleicht sehr naive Fragen, bin noch relativ neu in der ganzen Sache 😀

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

Also funktioniert IMAP/PO3, aber nicht SMTP?

Wie genau kann ich das auf der Shell-Ebene überprüfen ?

Im Terminal zB mit netcat -v example.com Port, mit openssl s_client -connect example.com:port fuer TLS und fuer STARTTLS noch ein -starttls smpt/imap anhanegen, siehe Manpages. Aber es reicht eigentlich fuer die Beantwortung der Frage, was nun mit Thunderbird funktioniert.

Wie sieht die Konfiguration von SASL und die master.cf aus?

Gibt es für diese beiden config Dateien einen ähnlichen Befehl wie "postconf" ?

Fuer letzteres ja, siehe Manpage von postconf: postconf -M. Fuer SASL: Dort wo du es konfiguriert hast, also wohl dovecot.

Welcher Port?

Port 25

Bitte verwende dafuer submission/587, wofuer du nur lokale Mails, mit Auth und STARTTLS akzeptierst. Und die Auth auf 25 und 465 abdrehen.

Bevor du da selbst Mailserver aufsetzt, befasse dich bitte ausfuehrlich mit den verwendeten Protokollen, der Dokumentation und teste das in abgeschotteten Netzwerken, bevor du das auf das Internet loslaesst. Mit deinem Unwissen gefaehrdest du nicht nur dein eigenes Netzwerk.

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

Bevor du da selbst Mailserver aufsetzt, befasse dich bitte ausfuehrlich mit den verwendeten Protokollen, der Dokumentation und teste das in abgeschotteten Netzwerken, bevor du das auf das Internet loslaesst. Mit deinem Unwissen gefaehrdest du nicht nur dein eigenes Netzwerk.

Na klar, deswegen das ganze auch nur lokal ! ☺

1
netcat -v example.com

Zeigt mir folgendes an :

 dknuf@dannysol:~$ netcat -v DannySol.dvg 25
 Connection to DannySol.dvg 25 port [tcp/smtp] succeeded!
 220 DannySol.dvg ESMTP Postfix (Ubuntu)

Also scheint IMAP ja zu funktionieren richtig ?

Meine master.cf sieht folgendermaßen aus :

smtp       inet  n       -       n       -       -       smtpd -vv
smtp       inet  n       -       y       -       1       postscreen
smtpd      pass  -       -       y       -       -       smtpd -o syslog_name=postfix/smtps -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
pickup     unix  n       -       y       60      1       pickup
cleanup    unix  n       -       y       -       0       cleanup
qmgr       unix  n       -       n       300     1       qmgr
tlsmgr     unix  -       -       y       1000?   1       tlsmgr
rewrite    unix  -       -       y       -       -       trivial-rewrite
bounce     unix  -       -       y       -       0       bounce
defer      unix  -       -       y       -       0       bounce
trace      unix  -       -       y       -       0       bounce
verify     unix  -       -       y       -       1       verify
flush      unix  n       -       y       1000?   0       flush
proxymap   unix  -       -       n       -       -       proxymap
proxywrite unix  -       -       n       -       1       proxymap
smtp       unix  -       -       y       -       -       smtp
relay      unix  -       -       y       -       -       smtp
showq      unix  n       -       y       -       -       showq
error      unix  -       -       y       -       -       error
retry      unix  -       -       y       -       -       error
discard    unix  -       -       y       -       -       discard
local      unix  -       n       n       -       -       local
virtual    unix  -       n       n       -       -       virtual
lmtp       unix  -       -       y       -       -       lmtp
anvil      unix  -       -       y       -       1       anvil
scache     unix  -       -       y       -       1       scache
maildrop   unix  -       n       n       -       -       pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp       unix  -       n       n       -       -       pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail     unix  -       n       n       -       -       pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp      unix  -       n       n       -       -       pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n       n       -       2       pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman    unix  -       n       n       -       -       pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}

Und die SASL-Konfiguration so :

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
        unix_listener /var/spool/postfix/private/auth {
        mode = 0666
        #user = postfix
        #group = postix
        }

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

Bevor du da selbst Mailserver aufsetzt, befasse dich bitte ausfuehrlich mit den verwendeten Protokollen, der Dokumentation und teste das in abgeschotteten Netzwerken, bevor du das auf das Internet loslaesst. Mit deinem Unwissen gefaehrdest du nicht nur dein eigenes Netzwerk.

Na klar, deswegen das ganze auch nur lokal ! ☺

1
netcat -v example.com

Zeigt mir folgendes an :

 dknuf@dannysol:~$ netcat -v DannySol.dvg 25
 Connection to DannySol.dvg 25 port [tcp/smtp] succeeded!
 220 DannySol.dvg ESMTP Postfix (Ubuntu)

Also scheint IMAP ja zu funktionieren richtig ?

Port 25 ist SMTP. Wie gesagt: Bitte befasse dich mal mit den Grundlagen, sonst wird das hier zur Farce.

Meine master.cf sieht folgendermaßen aus :

smtp       inet  n       -       n       -       -       smtpd -vv
smtp       inet  n       -       y       -       1       postscreen

Zwei Eintraege fuer smtp? Ich wuerde postscreen ausserdem mal weglassen, bevor nicht alles andere funktioniert.

smtpd      pass  -       -       y       -       -       smtpd -o syslog_name=postfix/smtps -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING

Welcher Port ist denn smtpd? Aendere das bitte auf submission, uns streiche smtpd_sasl_auth_enable=yes aus der main.cf, dann gilt es nur fuer submission. Stell das dann auch so auf den clients ein. Weiters, wuerde ich noch zumindest das dazugeben:

  -o smtpd_enforce_tls=yes                                                                                                                                                                                                                                                               
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

Und die SASL-Konfiguration so :

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user = 
    #group = 
  }

  # Postfix smtp-auth
        unix_listener /var/spool/postfix/private/auth {
        mode = 0666
        #user = postfix
        #group = postix
        }

Da fehlt zumindest eine abschliessende Klammer }. Beim unix_listener wuerde ich noch den mode auf 0660 setzten, sowie den Nutzer und die Gruppe auf postfix.

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

Sooo, den Port habe ich geändert auf 587:

root@DannySol:~# netcat -v DannySol.dvg 587
Connection to DannySol.dvg 587 port [tcp/submission] succeeded!
220 DannySol.dvg ESMTP Postfix (Ubuntu)

Der zweite SMTP Eintrag, sowie postscreen sind auch entfernt.

smtpd_sasl_auth_enable=yes

Ist auch aus der Mainconfig auskommentiert, und die SASL-config ist auch angepasst worden.

Die Mails gehen jedoch immernoch nicht raus, und Syslog zeigt mir die selbe Fehlermeldung an wie zuvor....

Dec 15 11:13:41 DannySol postfix/smtps/smtpd[27147]: connect from DannySol.dvg[127.0.0.1]
Dec 15 11:13:42 DannySol postfix/smtps/smtpd[27147]: warning: SASL authentication failure: Password verification failed
Dec 15 11:13:42 DannySol postfix/smtps/smtpd[27147]: warning: DannySol.dvg[127.0.0.1]: SASL PLAIN authentication failed: authentication failure
Dec 15 11:13:42 DannySol postfix/smtps/smtpd[27147]: warning: DannySol.dvg[127.0.0.1]: SASL LOGIN authentication failed: authentication failure

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

Die Mails gehen jedoch immernoch nicht raus, und Syslog zeigt mir die selbe Fehlermeldung an wie zuvor....

Wir haben daran auch nichts geaendert. Aber es ist immer noch unklar, ob nun die Authentfizierung ueber IMAP/POP3 nun funktioniert oder nicht.

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

root@dannySol:~# telnet DannySol.dvg 143
Trying 127.0.0.1...
Connected to DannySol.dvg.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.

Stimmt dass so ?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

root@dannySol:~# telnet DannySol.dvg 143
Trying 127.0.0.1...
Connected to DannySol.dvg.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.

Stimmt dass so ?

Auth wird angeboten, ja. Aber probier sie mal aus.

EDIT: Und ich wuerde Auth nur fuer TLS/STARTTLS erlauben.

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

root@DannySol:~# telnet DannySol.dvg 143
Trying 127.0.0.1...
Connected to DannySol.dvg.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
a login dknuf *****
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
b select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1511359315] UIDs valid
* OK [UIDNEXT 29] Predicted next UID
* OK [HIGHESTMODSEQ 52] Highest
b OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
c list ""*
* LIST (\HasNoChildren \Sent) "." Sent
* LIST (\HasNoChildren \Trash) "." Trash
* LIST (\HasNoChildren \Drafts) "." Drafts
* LIST (\HasNoChildren) "." Templates
* LIST (\HasNoChildren) "." INBOX
c OK List completed (0.000 + 0.000 secs).
1 SELECT INBOX  
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1511359315] UIDs valid
* OK [UIDNEXT 29] Predicted next UID
* OK [HIGHESTMODSEQ 52] Highest
1 OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
d lsub ""*
* LSUB (\Trash) "." Trash
* LSUB (\Sent) "." Sent
* LSUB (\Drafts) "." Drafts
d OK Lsub completed (0.000 + 0.000 secs).
e logout
* BYE Logging out
e OK Logout completed.

Der Test lief ohne Fehler durch.

root@DannySol:~# doveadm auth -Flush/lookup/test authentication data
usage: doveadm [-Dv] [-f <formatter>] auth <command> [<args>]
  cache        flush
  login        [-a <auth-login socket path>] [-m <auth-master socket path>] [-x <auth info>] [-M <master user>] <user> [<password>]
  lookup       [-a <userdb socket path>] [-x <auth info>] [-f field] <user> [...]
  test         [-a <auth socket path>] [-x <auth info>] [-M <master user>] <user> [<password>]

Mir ist klar dass der Befehl "doveadm auth" einige Authentifizierungen testet, aber was genau spuckt er mir da aus ?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

DannySol schrieb:

root@DannySol:~# telnet DannySol.dvg 143
Trying 127.0.0.1...
Connected to DannySol.dvg.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
a login dknuf *****
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SPECIAL-USE] Logged in
b select inbox
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1511359315] UIDs valid
* OK [UIDNEXT 29] Predicted next UID
* OK [HIGHESTMODSEQ 52] Highest
b OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
c list ""*
* LIST (\HasNoChildren \Sent) "." Sent
* LIST (\HasNoChildren \Trash) "." Trash
* LIST (\HasNoChildren \Drafts) "." Drafts
* LIST (\HasNoChildren) "." Templates
* LIST (\HasNoChildren) "." INBOX
c OK List completed (0.000 + 0.000 secs).
1 SELECT INBOX  
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1511359315] UIDs valid
* OK [UIDNEXT 29] Predicted next UID
* OK [HIGHESTMODSEQ 52] Highest
1 OK [READ-WRITE] Select completed (0.000 + 0.000 secs).
d lsub ""*
* LSUB (\Trash) "." Trash
* LSUB (\Sent) "." Sent
* LSUB (\Drafts) "." Drafts
d OK Lsub completed (0.000 + 0.000 secs).
e logout
* BYE Logging out
e OK Logout completed.

Der Test lief ohne Fehler durch.

Ok, das klappt. Kannst du das gleiche noch fuer postfix probieren? http://www.postfix.org/SASL_README.html#server_test

root@DannySol:~# doveadm auth -Flush/lookup/test authentication data
usage: doveadm [-Dv] [-f <formatter>] auth <command> [<args>]
  cache        flush
  login        [-a <auth-login socket path>] [-m <auth-master socket path>] [-x <auth info>] [-M <master user>] <user> [<password>]
  lookup       [-a <userdb socket path>] [-x <auth info>] [-f field] <user> [...]
  test         [-a <auth socket path>] [-x <auth info>] [-M <master user>] <user> [<password>]

Mir ist klar dass der Befehl "doveadm auth" einige Authentifizierungen testet, aber was genau spuckt er mir da aus ?

Einen Fehler, weil er sich mit deinen Parameter nicht auskennt. Aber wenn du es eh schon mit telnet getestet hast, ist das wurscht.

DannySol

(Themenstarter)

Anmeldungsdatum:
6. Dezember 2017

Beiträge: 23

Sorry da ist mir ein Fehler unterlaufen ! Ich habe überlesen dass ich den "Dovecot-Test" von einem anderen Computer ausführen soll. Dann schaut das ganze schon nicht mehr so rosig aus.... :

dknuf@senefelder1404:~$ telnet 192.168.2.138 143
Trying 192.168.2.138...
Connected to 192.168.2.138.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LOGINDISABLED] Dovecot ready.
a login dknuf *****
* BAD [ALERT] Plaintext authentication not allowed without SSL/TLS, but your client did it anyway. If anyone was listening, the password was exposed.
a NO [PRIVACYREQUIRED] Plaintext authentication disallowed on non-secure (SSL/TLS) connections.
* BYE Disconnected for inactivity.
Connection closed by foreign host.
Antworten |