[Postfixbuch-users] SASL2 für lokale User

Patrick Ben Koetter p at state-of-mind.de
Di Nov 15 21:38:17 CET 2005


* Alexander Gran <alex at zodiac.dnsalias.org>:
> Am Dienstag, 15. November 2005 12:58 schrieb Patrick Ben Koetter:
> > Die sasldb nimmt Benutzerdaten (Usernamen, Passwort, Domain) auf. Diese
> > Daten werden bei einer Authentifizierung zum Vergleich mit den, vom Client
> > gesendeten Daten herangezogen. Stimmen die Daten überein, darf der Client
> > mit einer unbekannten IP (nicht in $mynetworks) trotzdem senden.
> 
> Jo. Das waäre SMTP Auth, wenn ich da richtig sehe.

Ja. Deshalb hat mich Dein Subject in die Irre geführt...

> > Dies steht aber in keinem Zusammenhang damit, ob auf dem Server ein Account
> > xyz existiert und ob Postfix diesen Empfänger kennt und weiß in welche
> > Mailbox Mails für xyz zuzustellen sind.
> 
> Hmm, ok.
> 
> > Schick nochmal ein "postconf -n", damit wir das eigentliche Problem lösen
> > können.

Kommentare am Ende der Mail...

> Hier von dem Server wo es nicht tut:
> www:~ # postconf -n
> alias_maps = hash:/etc/aliases
> biff = no
> broken_sasl_auth_clients = yes
> canonical_maps = hash:/etc/postfix/canonical
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> daemon_directory = /usr/lib/postfix
> debug_peer_level = 5
> debug_peer_list = 80.137.226.152
> defer_transports =
> disable_dns_lookups = no
> html_directory = /usr/share/doc/packages/postfix/html
> inet_interfaces = all
> inet_protocols = all
> mail_owner = postfix
> mail_spool_directory = /var/mail
> mailbox_command =
> mailbox_size_limit = 52428800
> mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
> mailq_path = /usr/bin/mailq
> manpage_directory = /usr/share/man
> masquerade_classes = envelope_sender, header_sender, header_recipient
> masquerade_exceptions = root
> message_size_limit = 52428800
> mydestination = $myhostname, localhost.$mydomain, $mydomain
> mydomain = moduleworks.com
> myhostname = www.moduleworks.com
> mynetworks_style = host
> newaliases_path = /usr/bin/newaliases
> queue_directory = /var/spool/postfix
> readme_directory = /usr/share/doc/packages/postfix/README_FILES
> relay_domains =
> relocated_maps = hash:/etc/postfix/relocated
> sample_directory = /usr/share/doc/packages/postfix/samples
> sender_canonical_maps = hash:/etc/postfix/sender_canonical
> sendmail_path = /usr/sbin/sendmail
> setgid_group = maildrop
> smtp_use_tls = no
> smtpd_helo_required = no
> smtpd_helo_restrictions =
> smtpd_recipient_restrictions = 
> permit_sasl_authenticated,permit_mynetworks,check_relay_domains
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_security_options = noanonymous
> smtpd_tls_CAfile = /etc/postfix/cacert.pem
> smtpd_tls_cert_file = /etc/postfix/newcert.pem
> smtpd_tls_key_file = /etc/postfix/newreq.pem
> smtpd_tls_received_header = yes
> smtpd_tls_session_cache_timeout = 3600s
> smtpd_use_tls = yes
> strict_rfc821_envelopes = no
> tls_random_source = dev:/dev/urandom
> transport_maps = hash:/etc/postfix/transport
> unknown_local_recipient_reject_code = 450


Also, Deine Domain ist moduleworks.com. Dein Postfix nimmt mails für diese
Domain (und andere hosts in der Domain) an - das ist in $mydestination
konfiguriert.

Um herauszufinden, welche Empfänger für $mydestination gültig sind, wertet
Postfix den $local_recipients_map Parameter aus. Angaben zu diesem Parameter
sind in Deinem "postconf -n" Kommando nicht enthalten. Das ist okay, es sagt
uns, dass der Parameter nicht "n"eu ist, sondern auf "d"efault gesetzt ist:

$ /usr/sbin/postconf -d local_recipient_maps
local_recipient_maps = proxy:unix:passwd.byname $alias_maps

Der default-Wert für local_recipient_maps verweist also auf die Tabellen
/etc/passwd und $alias_maps. Letzterer Wert ist, wenn man den Parameter-Verweis
auflöst, die Tabelle /etc/aliases.

In der passwd sind account-Namen und in der aliases passende Alias-Namen, die
auf accounts in der passwd oder Skripte verweisen.

Wenn Du z.B. einen User alex angelegt hast und dem jetzt den Alias alex.g
zuweisen willst, dann musst Du einen entsprechenden Eintrag in der
/etc/aliases vornehmen und sie anschließend mit dem newaliases-Kommando oder
mit "postalias /etc/aliases" in eine indizierte DB umwandeln, damit Postfix
sie schnell lesen und auswerten kann.

Wenn Du sicherstellen willst, dass der alias-Name alex.g auch wirklich
funktioniert, also z.B. auf den user alex verweist, dann kannst Du das ohne
Postfix testen.

Hier ein Beispiel, das testet ob der alias-Eintrag patrick.koetter auf den
User p verweist:

$ /usr/sbin/postalias -q patrick.koetter /etc/postfix/aliases
p at state-of-mind.de

Wenn Du sichergestellt hast, dass der Alias-Eintrag existiert und
funktioniert, dann sende Dir noch einmal eine Mail. Sollte die immer noch
nicht angenommen werden, dann zeig verbose log-Einträge.

p at rick


-- 
Das »Postfix«-Buch
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>



Mehr Informationen über die Mailingliste Postfixbuch-users