exim - relaying prohibited

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

exim - relaying prohibited

Beitrag von hupfdule » 02.10.2003 21:19:18

Hallo,

ich habe seit geraumer Zeit exim mit smtp-auth für gmx betrieben. Das hat auch sehr schön funktioniert. Nun habe ich einen eigenen mailserver (als Ersatz für GMX), der ebenfalls mit exim läuft.

Allerdings klappt SMTP-Auth da nicht so wie ich will, obwohl ich eigentlich keinen Unterschied zu meiner vorigen Konfiguration erkenne. Deswegen vermutete ich ein Konfiguratinsproblem auf meinem remote-mailserver. Allerdings können andere Leute wunderbar über diesen versenden. Ich habe dann mal sylpheed eingerichtet um das ganze zu testen. Ergebnis:

Sylpheed sendet korrekt, mails kommen an.
Wenn ich sylpheed zum Versenden "sendmail -t" aufrufen lasse, bekomme ich die Fehlermeldung im Betreff .

Das sieht für mich sehr stark nach einem Konfigurationsproblem in exim auf meiner lokalen Maschine aus. Allerdings kann ich an mailadressen, die auf dem selben server liegen wie mein remote-mailserver (der server ist mherrn.de, also wenn ich z.B. an test@mherrn.de sende), korrekt senden. Ich bekomme dort nicht diese Fehlermeldung.

Die Fehlermedlung lautet:

Code: Alles auswählen

2003-10-02 21:13:31 1A58tH-0001dh-00 <= name@mherrn.de U=marco P=local S=316
2003-10-02 21:13:31 1A58tH-0001dh-00 ** herrn@gmx.net R=smarthost T=remote_smtp: SMTP error from remote mailer after RCPT TO:<herrn@gmx.net>: host mail.mherrn.de [213.133.110.15]: 550 relaying to <herrn@gmx.net> prohibited by administrator
2003-10-02 21:13:31 1A58tH-0001dm-00 <= <> R=1A58tH-0001dh-00 U=mail P=local S=1248
2003-10-02 21:13:31 1A58tH-0001dh-00 Error message sent to name@mherrn.de
2003-10-02 21:13:31 1A58tH-0001dh-00 Completed
2003-10-02 21:13:32 1A58tH-0001dm-00 => name@mherrn.de R=smarthost T=remote_smtp H=mail.mherrn.de [213.133.110.15]
2003-10-02 21:13:32 1A58tH-0001dm-00 Completed
Klingt für mich noch immer danach, dass ich ein Konfigurationsproblem auf mherrn.de (also dem remote-server) habe. Aber dann könnte ich über sylpheed die mails ja auch nicht versenden.

Hier noch meine lokale exim.conf mit den meisten Kommentaren entfernt. Kann mir hier vlt. jemand helfen? Ich habe keine Ahnung wo ich jetzt noch suchen soll.

Code: Alles auswählen

######################################################################
#                    MAIN CONFIGURATION SETTINGS                     #
######################################################################

no_queue_list_requires_admin


qualify_domain = darkstar.localdomain.fake


# qualify_recipient =

local_domains = localhost:darkstar.localdomain.fake


local_domains_include_host = true
local_domains_include_host_literals = true

#relay_domains = 


#relay_domains_include_local_mx = true


never_users = root


host_lookup = *


# headers_check_syntax


#rbl_domains = rbl.mail-abuse.org/reject : dialups.mail-abuse.org/warn


host_accept_relay = 127.0.0.1 : ::::1


host_auth_accept_relay = *


# percent_hack_domains=*


trusted_users = mail


smtp_verify = false


gecos_pattern = ^([^,:]*)
gecos_name = $1


smtp_accept_queue_per_connection = 100


freeze_tell_mailmaster = true


received_header_text = "Received: \
         ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
         {${if def:sender_ident {from ${sender_ident} }}\
         ${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
         by ${primary_hostname} \
         ${if def:received_protocol {with ${received_protocol}}} \
         (Exim ${version_number} #${compile_number} (Debian))\n\t\
         id ${message_id}\
         ${if def:received_for {\n\tfor <$received_for>}}"


#accept_8bitmime = true

# local_interfaces = 127.0.0.1

#queue_list_requires_admin = false


end


######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################


local_delivery:
  driver = appendfile
  group = mail
  mode = 0660
  mode_fail_narrower = false
  envelope_to_add = true
  return_path_add = true
  directory = /var/spool/mail/${local_part}/
  maildir_format


address_pipe:
  driver = pipe
  path = /usr/bin:/bin:/usr/local/bin
  return_output


address_file:
  driver = appendfile
  envelope_to_add = true
  return_path_add = true


address_directory:
  driver = appendfile
  no_from_hack
  prefix = ""
  suffix = ""
  maildir_format

address_reply:
  driver = autoreply


procmail_pipe:
  driver = pipe
  command = "/usr/bin/procmail"
  return_path_add
  delivery_date_add
  envelope_to_add
# check_string = "From "
# escape_string = ">From "
  suffix = ""


remote_smtp:
  driver = smtp
 authenticate_hosts = mail.gmx.net:mail.sout.de

end


######################################################################
#                      DIRECTORS CONFIGURATION                       #
#             Specifies how local addresses are handled              #
######################################################################
#                          ORDER DOES MATTER                         #
#   A local address is passed to each in turn until it is accepted.  #
######################################################################


real_local:
  prefix = real-
  driver = localuser
  transport = local_delivery


system_aliases:
  driver = aliasfile
  file_transport = address_file
  pipe_transport = address_pipe
  file = /etc/aliases
  search_type = lsearch
# user = list
# Uncomment the above line if you are running smartlist


userforward:
  driver = forwardfile
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  no_verify
  check_ancestor
  check_local_user
  file = .forward
  modemask = 002
  filter

# This director runs procmail for users who have a .procmailrc file

procmail:
  driver = localuser
  transport = procmail_pipe
  require_files = ${local_part}:+${home}:+${home}/.procmailrc:+/usr/bin/procmail
  no_verify
    
# This director matches local user mailboxes.

localuser:
  driver = localuser
  transport = local_delivery

end


######################################################################
#                      ROUTERS CONFIGURATION                         #
#            Specifies how remote addresses are handled              #
######################################################################
#                          ORDER DOES MATTER                         #
#  A remote address is passed to each in turn until it is accepted.  #
######################################################################

smarthost:
  driver = domainlist
  transport = remote_smtp
  route_list= "* mail.sout.de bydns_a"

end


######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################


# Domain               Error       Retries
# ------               -----       -------

*                      *           F,2h,15m; G,16h,2h,1.5; F,4d,8h

end


######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

*@darkstar.localdomain.fake    ${lookup{$1}lsearch{/etc/email-addresses}\
                                                {$value}fail} frFs

end

######################################################################
#                   AUTHENTICATION CONFIGURATION                     #
######################################################################


plain:
   driver = plaintext
   public_name = PLAIN
   client_send = "^name@mherrn.de^Passwort"

login:
   driver = plaintext
   public_name = LOGIN
   client_send = ": name@mherrn.de : Passwort"

# End of Exim configuration file


Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 03.10.2003 19:53:52

also versteh dich nicht ganz, bin mir daher nicht sicher ob dir meine antwort weiterhilft aber vielleicht ja doch, in der exim.conf finde ich keinen fehler.

da aber deine mails im /var/spool/exim/input bleiben wie es aussieht, könnte es seien das die authendifizierung beim mail server net klapt und das wiederum könnte damit zusammenhängen das gmx vor der authedifizierung peer smtp eine authendifizierung peer pop verlangt, kann es seien das du vorm versenden der mails, deine postfächer peer fetchmail z.B. vergisst abzurufen ?

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 03.10.2003 22:30:12

HelsAett hat geschrieben:also versteh dich nicht ganz
Irgendwie hab ich das erwartet ;-)
da aber deine mails im /var/spool/exim/input bleiben wie es aussieht, könnte es seien das die authendifizierung beim mail server net klapt
Ja, das sehe ich auch so. Anders könnte die Fehlermeldung

Code: Alles auswählen

relaying to <herrn@gmx.net> prohibited by administrator 
denke ich auch nicht zustande kommen.
das wiederum könnte damit zusammenhängen das gmx vor der authedifizierung peer smtp eine authendifizierung peer pop verlangt
An der Stelle hast du mich falsch verstanden. Nicht GMX ist das Problem. Das hat funktioniert und funktioniert immer noch (wenn ich die exim.conf wieder auf GMX umstelle). Probleme macht der mailserver auf mherrn.de. Nur diesen benutze ich momentan. Auf ihn ist auch die oben gepostete exim.conf konfiguriert. Der lehnt meine mails ab, wenn diese nicht an Adressen auf diesem Server adressiert sind.
Deswegen würde ich es ja für einen Konfigurationsfehler auf diesem Server, also auf mherrn.de, halten.
Allerdings habe nur ich das Problem, nicht andere Leute die den selben Server benutzen. Und das Problem tritt nur auf, wenn ich die mails auf meinem lokalen Rechner über exim versende. Wenn ich einen anderen SMTP-Server (bei meinem Test den in sylpheed integrierten) verwende, werden die mails akzeptiert.

Habe ich mich jetzt etwas klarer ausgedrückt? Fällt mir halt schon schwer das zu beschreiben, ist recht kompliziert.

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 03.10.2003 23:38:16

Code: Alles auswählen

remote_smtp:
  driver = smtp
 authenticate_hosts = mail.gmx.net:mail.sout.de 
versuch es mal so:

Code: Alles auswählen

authenticate_hosts = mail.gmx.de:auth.mail.sout.de
Der lehnt meine mails ab, wenn diese nicht an Adressen auf diesem Server adressiert sind.
Deswegen würde ich es ja für einen Konfigurationsfehler auf diesem Server,
mal nee dummer frage. hast du die aliases in /etc/email-addresses eingetragen.

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 04.10.2003 10:48:19

HelsAett hat geschrieben:

Code: Alles auswählen

remote_smtp:
  driver = smtp
 authenticate_hosts = mail.gmx.net:mail.sout.de 
versuch es mal so:

Code: Alles auswählen

authenticate_hosts = mail.gmx.de:auth.mail.sout.de
Hmm, was könnte das bringen? Das ist doch nur ein anderer Name für den Rechner, oder?
Der lehnt meine mails ab, wenn diese nicht an Adressen auf diesem Server adressiert sind.
Deswegen würde ich es ja für einen Konfigurationsfehler auf diesem Server,
mal nee dummer frage. hast du die aliases in /etc/email-addresses eingetragen.[/quote]

internic
Beiträge: 14
Registriert: 03.10.2003 11:32:29

Beitrag von internic » 04.10.2003 12:24:22

Hallo,

so wie ich das sehe musst du noch die server side authentication
in der exim.conf am remote-server konfigurieren.

das beispiel aus der exim.conf:

Code: Alles auswählen

serverplain:
   driver = plaintext
   public_name = PLAIN
   server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim/passwd}{$value}{*:*}}}}}{1}{0}}"
   server_set_id = $1
und dann auch in der /etc/exim/passwd den benutzer name@mherrn.de mit passwort eintragen (auf dem remote-rechner)

Benutzeravatar
HelsAett
Beiträge: 749
Registriert: 18.03.2003 18:25:00

Beitrag von HelsAett » 04.10.2003 15:20:36

authenticate_hosts = mail.gmx.de:auth.mail.sout.de
man beachte das zweite "auth" der soll doch beide server verwenden, ich weiss net ob ein : zwischen den servern ausreicht, ich kenne das so mit den eintrag auth vor den mail servern die den ersten im eintrag folgen

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 05.10.2003 13:39:24

Also, ich habe jetzt bei 'authenticate_hosts' nur noch mherrn.de drin. GMX ist dort raus. Daran kann es also nicht liegen.
internic hat geschrieben:
so wie ich das sehe musst du noch die server side authentication
in der exim.conf am remote-server konfigurieren.
und dann auch in der /etc/exim/passwd den benutzer name@mherrn.de mit passwort eintragen (auf dem remote-rechner)
Das ist alles schon getan. Und funktioniert. Wenn ich mit anderen SMTP-Servern sende (z.B. mit sylpheed) kommen die mails korrekt an und werden akzeptiert. Deswegen vermute ich einen Fehler in meiner lokalen exim.conf. Aber wirklich wissen tu ich es nicht. Denn die Fehlermeldung deutet ja schon auf ein Problem auf dem entfernten Rechner hin.

internic
Beiträge: 14
Registriert: 03.10.2003 11:32:29

Beitrag von internic » 05.10.2003 14:29:59

Aus der exim doc spec.txt
authenticate_hosts
................. It provides a list of servers to which, provided they announce
authentication support, Exim will attempt to authenticate as a client when it connects.
Dein Server mail.sout.de kündigt aber keinen authentication support an-->
telnet mail.sout.de
220 pendragon.sout.de ESMTP Exim 3.35
EHLO tst
250-pendragon.sout.de Hello ...
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
Da sollte dann noch stehen
250-AUTH PLAIN

Deine jetzige AUTHENTICATION CONFIGURATION auf dem mail.sout.de

Code: Alles auswählen

plain: 
   driver = plaintext 
   public_name = PLAIN 
   client_send = "^name@mherrn.de^Passwort" 

sollte also erweitert werden zu

Code: Alles auswählen

plain: 
   driver = plaintext 
   public_name = PLAIN 
   client_send = "^name@mherrn.de^Passwort" 
   server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim/passwd}{$value}{*:*}}}}}{1}{0}}"
   server_set_id = $1

sodass SMTP-AUTH auf dem mail.sout.de aktiviert ist

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 05.10.2003 20:14:54

internic hat geschrieben: Dein Server mail.sout.de kündigt aber keinen authentication support an
Aha, da kommen wir der Sache näher. Nur was ist notwendig, damit dieser server es ankündigt? Ich dachte, das tut er immer, sobald irgendeine Konfiguration für solche Authentifizierung besteht.
sollte also erweitert werden zu

Code: Alles auswählen

plain: 
   driver = plaintext 
   public_name = PLAIN 
   client_send = "^name@mherrn.de^Passwort" 
   server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup{$1}lsearch{/etc/exim/passwd}{$value}{*:*}}}}}{1}{0}}"
   server_set_id = $1

sodass SMTP-AUTH auf dem mail.sout.de aktiviert ist
Eine Condition ist dort vorhanden. Funktioniert ja auch mit anderen SMTP-Servern. Ist das relevant für das Ankündigen der Authentifizierung?

internic
Beiträge: 14
Registriert: 03.10.2003 11:32:29

Beitrag von internic » 06.10.2003 10:03:34

OK,

es sieht danach aus, dass dein "lokales" exim die version ohne TLS-Unterstützung ist,

während das exim auf mail.sout.de (mit TLS) so konfiguriert ist, dass das AUTH-Kommando nur
nach STARTTLS akzeptiert wird:

Code: Alles auswählen

telnet mail.sout.de smtp

220 pendragon.sout.de ESMTP Exim 3.35
EHLO tst
250-pendragon.sout.de Hello ...
250-SIZE 20971520
250-PIPELINING
250-STARTTLS
250 HELP
AUTH
503 STARTTLS required before AUTH
Das erklärt auch, warum es mit sylpheed funktioniert

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 06.10.2003 17:27:36

internic hat geschrieben:es sieht danach aus, dass dein "lokales" exim die version ohne TLS-Unterstützung ist,
*gegen die Stirn schlag* Genau das ist es! Hätt ich ja mal auch selbst drauf kommen können. Wieso finde ich aber eigentlich exim-tls nicht mehr in testing und unstable? Dort wird es nur durch das Paket exim4-base ersetzt. Wird in Debian jetzt ein genereller Wechsel hin zu exim4 angeregt?
während das exim auf mail.sout.de (mit TLS) so konfiguriert ist, dass das AUTH-Kommando nur
nach STARTTLS akzeptiert wird:
Ja, das ist extra so konfiguriert. Nur hab ich es offenbar vergessen, dass bei meiner lokalen Installation auch noch zu beachten.

Danke für deine Hilfe.

Antworten