ubuntuusers.de

Postfix, SASL und MySQL -> "Relay Access denied"

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

DerDenker

Anmeldungsdatum:
15. April 2008

Beiträge: 106

Schon voller Vorfreude wollte ich eine Mail mit Postfix absenden, bis mein Mailprogramm mir die Mail mit dem Fehler

 554 5.7.1 <***>: Relay access denied 

zurückgab. In /var/log/mail.log steht zum Ereignis folgendes:

Mar 31 20:51:49 localhost postfix/smtpd[2467]: NOQUEUE: reject: RCPT from ****[**.***.***.**]: 554 5.7.1 <***>: Relay access denied; from=<info@***.eu> to=<***@***.de> proto=SMTP helo=<PaulPC>

Die Mail habe ich ohne nachträgliche Authentifizierung gesandt (heißt im Mailprogramm "Postausgangsserver erfordert Authentifizierung").

Meine Postfix main.cf ist hier zu finden.

Wie bekomme ich nun SMTP zum laufen? POP3 funktioniert soweit problemlos.

Gruß

DerDenker

bodensee

Anmeldungsdatum:
4. November 2006

Beiträge: 1971

Hast Du eine feste IP Adresse?

Ansonsten fehlt der Eintrag für relayhost 😉

Lies Dir dazu mal das Thema Postfix durch, speziell die Absätze wo es um Smarthost-Provider geht.

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

Eine feste IP habe ich, den relayhost-Eintrag habe ich leergelassen, da myhostname und relayhost nicht identisch sein dürfen. Den Artikel lese ich mir aber durch, Danke dafür ☺

bodensee

Anmeldungsdatum:
4. November 2006

Beiträge: 1971

Eine richtige feste IP Adresse oder wie bei arcor business eine dynamische Adresse, die immer wieder gleich vergeben wird und es keine Zwangstrennung am Router gibt?

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

Eine richtig feste. 😛

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

DerDenker schrieb:

Die Mail habe ich ohne nachträgliche Authentifizierung gesandt (heißt im Mailprogramm "Postausgangsserver erfordert Authentifizierung").

Und wahrscheinlich befindet sich dein Rechner, auf dem der E-Mail Client läuft, nicht in $mynetworks oder? Dann musst du dich schon an deinem Postfix authentisieren, wenn du an Ziele versenden willst, für die dein Postfix nicht zuständig ist.

Gruß

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

xabbuh schrieb:

DerDenker schrieb:

Die Mail habe ich ohne nachträgliche Authentifizierung gesandt (heißt im Mailprogramm "Postausgangsserver erfordert Authentifizierung").

Und wahrscheinlich befindet sich dein Rechner, auf dem der E-Mail Client läuft, nicht in $mynetworks oder? Dann musst du dich schon an deinem Postfix authentisieren, wenn du an Ziele versenden willst, für die dein Postfix nicht zuständig ist.

Das ist korrekt. Also soll ich einen Versuch mit Authorisierung starten?

EDIT: Das funktioniert erst gar nicht, da er meine Daten als falsch anpreist. ☹

EDIT²: Anscheinend bekommt der die Daten (mit dem MySQL-Befehl Encrypt(); verschlüsselt) nicht richtig übermittelt. Aufbau: email, password

/etc/pam.d/smtp

auth    required   pam_mysql.so user=mail_admin passwd=*** host=127.0.0.1
        db=mail table=users usercolumn=email passwdcolumn=password crypt=1 md5=1
account sufficient pam_mysql.so user=mail_admin passwd=*** host=127.0.0.1
        db=mail table=users usercolumn=email passwdcolumn=password crypt=1 md5=1

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: ***
sql_database: mail
sql_select: select password from users where email = '%u'

Der SASL-Daemon läuft soweit auch und die Logdateien sagen nur "SASL LOGIN authentication failed: authentication failure". Saslfinger sagt:

Cannot find the smtp_sasl_password_maps parameter in main.cf.
Client-side SMTP AUTH cannot work without this parameter!

Leider weiß ich nicht, wie ich das Problem beheben soll, da ja die Daten aus der MySQL-Datenbank 'mail' kommen.

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

DerDenker schrieb:

/etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: ***
sql_database: mail
sql_select: select password from users where email = '%u'

hier liegt schon mal ein Fehler. Wenn du ein Plugin für auxprop konfigurierst, musst du auch auxprop als pwcheck_method eintragen. Du hast dort nach saslauthd stehen, was wiederum MySQL nicht unterstützt.

Der SASL-Daemon läuft soweit auch und die Logdateien sagen nur "SASL LOGIN authentication failed: authentication failure". Saslfinger sagt:

Cannot find the smtp_sasl_password_maps parameter in main.cf.
Client-side SMTP AUTH cannot work without this parameter!

smtp_sasl_auth_enable kannst du deaktivieren, wenn du SASL nur serverseitig in Postfix nutzen willst. Soll sich Postfix dagegen auch als Client authentisieren, musst du auch noch die Passwörter über smtp_sasl_password_maps bekanntmachen.

Gruß

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

So, entgegen all meiner Erwartungen klappt jetzt die Authentifizierung am Postausgang. Nun kommt aber wieder mein "Haupt-"Fehler:

Apr  2 10:20:23 localhost postfix/smtpd[2767]: NOQUEUE: reject: RCPT from ***[**.***.**.**]: 554 5.7.1 <***@***.de>: Relay access denied; from=<info@***.de> to=<***@***.de> proto=SMTP helo=<PaulPC>

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

poste bitte mal die Ausgabe von postconf -n und den vollständigen Logauszug (vom connect bis zum disconnect) für diese E-Mail.

Gruß

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

xabbuh schrieb:

poste bitte mal die Ausgabe von postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command =
mailbox_size_limit = 0
message_size_limit = 30720000
mydestination = mail.blinux.eu, localhost, localhost.localdomain
myhostname = mail.blinux.eu
mynetworks = 127.0.0.0/8, 192.168.1.0/24
myorigin = /etc/mailname
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_connection_cache_on_demand = no
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_path = smtpd
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_domains =
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_gid_maps = static:5000
virtual_mailbox_base = /home/vmail
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_transport = dovecot
virtual_uid_maps = static:5000

und den vollständigen Logauszug (vom connect bis zum disconnect) für diese E-Mail.

Apr  2 10:34:16 localhost postfix/smtpd[2485]: connect from ***[**.***.**.**]
Apr  2 10:34:18 localhost postfix/smtpd[2485]: NOQUEUE: reject: RCPT from ***[**.***.**.**]: 554 5.7.1 <***@***.de>: Relay access denied; from=<info@***.eu> to=<***@***.de> proto=ESMTP helo=<PaulPC>
Apr  2 10:34:18 localhost postfix/smtpd[2485]: disconnect from ***[**.***.**.**]

EDIT: Dovecot ließt die Nutzer aus MySQL, SASL aus /etc/[...]/sasl_passwd

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Du hast lediglich clientseitig SASL aktiviert (smtp_sasl_auth_enable). Serverseitig (smtpd_sasl_auth_enable) ist das noch nicht der Fall.

Gruß

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

Warum auch immer geht SASL bei mir nicht richtig.

Deswegen benutze ich jetzt Dovecot als SASL-Schnittstelle (Anleitung findet man hier).

Gruß

DerDenker

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

DerDenker schrieb:

Warum auch immer geht SASL bei mir nicht richtig.

Das Problem hätten wir schon gelöst bekommen. ☺

Aber:

Deswegen benutze ich jetzt Dovecot als SASL-Schnittstelle (Anleitung findet man hier).

Wenn du eh Dovecot als IMAP- bzw. POP3-Server nutzt, ist die Dovecot SASL-Implementierung sowieso erste Wahl, da du dir somit gar nicht erst die Cyrus SASL-Bibliotheken installieren musst.

Gruß

DerDenker

(Themenstarter)

Anmeldungsdatum:
15. April 2008

Beiträge: 106

xabbuh schrieb:

Wenn du eh Dovecot als IMAP- bzw. POP3-Server nutzt, ist die Dovecot SASL-Implementierung sowieso erste Wahl, da du dir somit gar nicht erst die Cyrus SASL-Bibliotheken installieren musst.

Der erste Mailserver ist immer eine Hürde 😛

Antworten |