# postfix + smtp_auth mit sasl

## Poppenpopper

Hallo Leute,

für meinen Rechner auf dem Postfix läuft habe ich nun, um auch externen Nutzern das Mailversenden zu erlauben, SMTP-Authenfizierung einrichten wollen. 

Gesagt getan, ich habe

```
# Enable SMTP AUTH with SASL

smtpd_sasl_auth_enable = yes

                                                                                 

# optional: no anonymous login

smtpd_sasl_security_options = noanonymous

                                                                                 

smtpd_sasl_local_domain = $myhostname

                                                                                 

# workaround for some old clients

broken_sasl_auth_clients = yes
```

an meine /etc/postfix/main.cf angehängt. 

In der /etc/sasl2/smtpd.conf steht nur:

```
pwcheck_method:saslauthd
```

und vom saslauthd werden laut ausgabe mit saslauthd -v diese Mechanismen zur Authentifizierung unterstützt:

```
authentication mechanisms: getpwent pam rimap shadow
```

Ich möchte "nur", dass die entsprechenden Nutzer gegen die /etc/passwd geprüft werden und falls erfolgreich, senden dürfen.

Wenn nun ein Versendevorgang per Email-Client gestartet wird, erhalte ich in der /var/log/messages nur folgende Fehlermeldungen:

```
Feb 17 13:06:25 hostname postfix/smtpd[20729]: warning: SASL authentication failure: Password verification failed

Feb 17 13:06:25 hostname postfix/smtpd[20729]: warning: p508AA575.dip.t-dialin.net[80.138.165.117]: SASL PLAIN authentication failed
```

Allerdings sollte das Passwort (müsste ja das normale Nutzerpasswort des Users sein) stimmen. Hat jemand eine Anregung für mich, wie ich weiter vorgehen könnte?

Grüße aus Böblingen

Lars

----------

## ruth

hi,

endlich mal wieder eine interessante frage - danke dir dafür...  :Wink: 

also:

versuch mal folgendes:

main.cf

```

# sasl

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain = 

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = permit_sasl_authenticated 

      permit_mynetworks 

      reject_unauth_destination

```

in /etc/sasl2/smtpd.conf:

```

pwcheck_method: saslauthd

mech_list: plain login

```

dass du den saslauthd gestartet haben musst ist klar, oder?

kommando:

```

/etc/init.d/saslauthd start

```

solltest du damit nicht weiterkommen / noch fragen haben, bitteschön..  :Wink: 

ach ja, eine einfache möglichkeit zu testen, ob dein postfix zumindest ansatzweise richtig konfiguriert ist bietet ein einfaches telnet auf deinen SMPT-Port; sollte so in etwa aussehen:

```

S: 220 mail.example.com ESMTP Postfix

C: EHLO example.com

S: 250-mail.example.com

S: 250-PIPELINING

S: 250-SIZE 10240000

S: 250-VRFY

S: 250-ETRN

S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI

S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI

S: 250-XVERP

S: 250 8BITMIME

C: quit

S: 221 Bye

```

auf die gleiche art und weise kannst du die fkt prüfen:

```

[root@example.com]# printf 'username\0username\0password' | mmencode

```

oder

```

[root@example.com]# perl -MMIME::Base64 -e 'print encode_base64("username\0username\0password");'

```

produziert ein BASE64 encodedes credential;

danach telnet, usw - folgendes sollte ersscheinen:

```

S: 220 mail.example.com ESMTP Postfix (1.1.7)

C: EHLO example.com

S: 250-mail.example.com

S: 250-PIPELINING

S: 250-SIZE 10240000

S: 250-VRFY

S: 250-ETRN

S: 250-AUTH DIGEST-MD5 CRAM-MD5 GSSAPI PLAIN LOGIN

S: 250-AUTH=DIGEST-MD5 CRAM-MD5 GSSAPI PLAIN LOGIN

S: 250-XVERP

S: 250 8BITMIME

C: AUTH PLAIN dGVzdAB0ZXN0AHRlc3RwYXNz

S: 235 Authentication successful

C: QUIT

S: 221 Bye

```

danach testen mit clients...

herzlichen gruss

rootshell

----------

## Poppenpopper

Hi rootshell,

danke für die Antwort. Die Config hat nachdem ich noch ein paar Sachen geändert hatte gestimmt.  Jetzt bin ich aber gerade mal auf die Idee zu kommen zu checken, ob die /etc/sasl2/smtpd.conf auch richtig abgearbeitet wird... tja die lag im falschen verzeichnis... da kann man versuchen soviel einzustellen, wie man will  :Wink: 

Die sollte eigentlich in /usr/lib/sasl2 liegen, naja im symlink hat abhilfe geschafft.  :Smile: 

Jetzt habe ich aber immer noch das Problem, dass der saslauthd zwar bei systemstart gestartet wird, sich aber nicht stoppen lässt... ist das bei Dir auch so?

Gruß

Lars

----------

## ruth

hi,

nein, bei mir lässt er sich starten / stoppen wie er soll...

hmmm, die verwendete config-datei lässt sich (allgemein) bei dämonen

entweder an der commandline ändern oder zur kompilierzeit einstellen...

bei mir isses halt die /etc/sasl2/smtpd.conf

[bei dir _mag_ das anders sein...  :Wink: ]

gruss

rootshell

----------

## wkonline

Hi,

um diesen Thread nochmal aufzufrischen  :Wink: 

Ich habe auch ein Problem mit Postfix und smtp-auth.

Ich habe diverse Anleitungen durchforstet und diese ausprobiert. Nichts hat geklappt.

Nun bin ich auf dieses Thread gestoßen, habe die Einstellungen wie beschrieben vorgenommen, aber es tut sich leider immer noch nichts...

Im einzelnen schlägt die Authentifizierung fehl und im Log ist folgender Fehler zu sehen:

```
Mar 19 22:27:30 london postfix/smtpd[10819]: connect from pid.local.name[192.168.1.1]

Mar 19 22:27:30 london postfix/smtpd[10819]: 384DA1607A6: client=pid.local.name[192.168.1.1]

Mar 19 22:27:30 london postfix/smtpd[10819]: 384DA1607A6: reject: RCPT from pid.local.name[192.168.1.1]: 554 <pid@local.name>: Relay access denied; from=<sshuser@local2.name> to=<pid@local.name> proto=ESMTP helo=<localhost>

Mar 19 22:27:31 london postfix/smtpd[10819]: disconnect from pid.local.name[192.168.1.1]
```

Und was mich noch wundert: bei einer Telnetverbindung (wie oben beschrieben) erhalte ich bei den 2 Auth-Zeilen folgendes:

```
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5

250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5

```

Im Beispiel oben stand aber noch etwas hinter dem CRAM-MD5. Ist hier vielleicht der Fehler?

Vielleicht weiss ja jemand eine Antwort!

Gruß,

wkonline

----------

## wkonline

Hi,

habe da noch eine Sache in den Logfiles gefunden:

```
Mar 20 20:51:53 london postfix/smtpd[9300]: warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory

Mar 20 20:51:53 london postfix/smtpd[9300]: warning: SASL authentication failure: Password verification failed

```

Also meiner Meinung nach ist saslauthd gestartet. Nur leider kann Postfix nicht mit ihm kommunizieren.

Hat jemand soetwas schonmal gehabt?

Gruß,

wkonline

----------

## lolli78

hallo,

vielleicht hilft allen, die englisch können, folgendes weiter: https://forums.gentoo.org/viewtopic.php?t=56633

lorenz.

----------

## Poppenpopper

ist vielleicht der pfad zu irgendeiner config datei falsch angegeben?

gruß

Lars

----------

## wkonline

Hi,

ich habe meinen Fehler gefunden. Ich habe saslauthdb mit einem völlig schwachsinnigen Parameter gestartet. Mit einem 

```
/usr/bin/saslauthd -a pam
```

geht es wunderbar  :Very Happy: 

Postfix läuft nun also einfandfrei.

Hab zwar noch ein paar Fragen zum Thema virtuelle Domains, aber ich glaube, das ist in diesem Thread etwas OT. Ausserdem muss google erstmal herhalten  :Wink: 

Gruß,

wkonline

----------

## Poppenpopper

da gibts ja dann auch folgendes Howto für:

http://www.gentoo.de/doc/de/virt-mail-howto.xml

Grüße aus Böblingen

Lars

----------

## wkonline

Hmmm,

nun kann ich zwar über Client mittels SMTP-Auth versenden, aber ich kann lokal (Kommandozeile, Webmail, etc.) nichts mehr versenden, da meldet er nun immer ein Relaying Denied.

Woran kann das denn nun schon wieder liegen?

Gruß,

Stephan

----------

## Poppenpopper

wie sieht deine main.cf aus?

Gruß

Lars

----------

