Exim und die ACL

mantiz

New Member
Hallo,

ich habe gerade einen neuen Server eingerichtet und es nach einigen HowTo's auch sofort geschafft virtuelle User per MySQL-DB zu verwenden, soweit alles schick.

Jetzt bin ich durch eine Fehlkonfiguration meinerseits, welche kurzzeitig zu einem OpenRelay führte, auf folgendes Problem aufmerksam geworden:

Wenn ich mich z.B. per telnet mit meinem Mailserver verbinde und dort folgendes eintippe:
Code:
helo <hostname>
mail from: <system-fremde-mail-addy>
rcpt to: <system-eigene-mail-addy>
dann erhalte ich eine "250 Accepted"-Meldung, was laut aktueller ACL auch korrekt ist, diese sieht bisher folgendermaßen aus:
Code:
acl_check_rcpt:
  accept  hosts = :
  deny    message       = Restricted characters in address
          domains       = +local_domains
          local_parts   = ^[.] : ^.*[@%!/|]
  deny    message       = Restricted characters in address
          domains       = !+local_domains
          local_parts   = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
  require verify        = sender
  accept  authenticated  = *
          sender_domains = +local_domains
  accept  domains        = +local_domains
          sender_domains = !+local_domains
          hosts          = !127.0.0.1
  accept  domains       = +local_domains
          endpass
          verify        = recipient
  accept  domains       = +relay_to_domains
          endpass
          verify        = recipient
  accept  hosts         = +relay_from_hosts
  deny    message       = relay not permitted

Anscheinend ist das wohl auch gängige Praxis, da ich mir ein paar Mailserver von Bekannten angesehen habe und dort wird das so auch akzeptiert.

Jetzt ist das aber z.B. bei GMX und WEB.DE so, dass man sofort eine Fehlermeldung erhält, dass man sich authentifizieren muss, wenn man "mail from: ..." probiert, ohne sich vorher authentifiziert zu haben.

Ist das mit Exim genau so möglich?

Ich weiß ja nicht, welcher MTA dort benutzt wird, aber bei meinen unzähligen Suchen habe ich irgendwo mal gelesen, dass WEB.DE exim benutzen soll, ka.

An sich ist das nicht ganz so wichtig, weil ein openrelay wohl laut einigen Tests nicht mehr vorliegt, allerdings kann man mit der aktuellen config über den Server lokalen Benutzer emails schreiben, ohne sich authentifizieren zu müssen, was nicht besonders schön ist.

Über Tips, Links und/oder Hinweise würde ich mich sehr freuen, danke schon einmal. :)
 
Hallo,

Das Stichwort dazu heisst SMTP Auth: Sprich man muss sich bevor man eine Mail verschicken kann mit einem gültigen Usernamen und Passwort an dem Server anmelden. Dies ist eigentlich gängige Praxis (früher gab es noch: Pop before SMTP) um Spam zu vermeiden.

Hier mal ein Link dazu:
3. SMTP-Auth unter Exim
 
Jetzt ist das aber z.B. bei GMX und WEB.DE so, dass man sofort eine Fehlermeldung erhält, dass man sich authentifizieren muss, wenn man "mail from: ..." probiert, ohne sich vorher authentifiziert zu haben.
Kann ich nicht bestätigen -- habe es gerade bei GMX getestet und nach dem MAIL FROM: kam ein freundliches "250 2.1.0 ok {mx114}".
Welchen GMX-Server hast Du denn verwendet? Sicher nicht einen der Server, die in den MX-Records eingetragen sind. Es gibt noch weitere SMTP-Server die speziell für das Relaying gedacht sind, bei denen muss man sich natürlich vorher authentifizieren ;)

Wenn Du ganz normal Mails auf Deinem Server empfangen willst, darf keine Authentifizierung für die Domains, die Du hostest notwendig sein (für alle anderen schon)!
 
Erstmal danke für die Antwort, allerdings habe ich das bereits drin.

Bei mir sieht das so aus:
Code:
begin authenticators

fixed_plain:
  driver = plaintext
  public_name = PLAIN
  server_condition = ${lookup mysql{MYSQL_Q_AUTHPWD1}{1}fail}
  server_set_id = $2

fixed_login:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = ${lookup mysql{MYSQL_Q_AUTHPWD2}{1}fail}
  server_set_id = $1
Wenn man eine Mail "nach außen" verschicken will, erhält man auch ein "550 relay not permitted", wenn man sich vorher nicht authentifiziert hat.
Allerdings ist die Authentifizierung für Mail "nach innen" nicht notwendig.

Irgendwie kann ich das auch verstehen, weil sonst andere Mailserver Probleme hätten Mails abzuliefern, welche mein Server entgegen nehmen müsste, weil die sich ja nicht authentifizieren können. :)

Aber irgendwie muss es ja möglich sein das zu ändern. :(

Nochmal kurz zur Klärung:

<[email protected]> -> <[email protected]>: Geht nicht, zum Glück :)
<[email protected]> -> <[email protected]>: Geht immer
<[email protected]> -> <[email protected]>: Geht, wenn authentifiziert
<[email protected]> -> <[email protected]>: Geht immer

Idealerweise möchte ich den ersten "Geht immer" nur für andere Mailserver zulassen und den zweiten "Geht immer" ebenfalls nur, wenn der Sender sich authentifiert hat.

@LinuxAdmin: Ich habe mail.gmx.net verwendet, da ich mir diesen irgendwann mal in meinem MUA notiert habe. Dort erhalte ich ein "550 5.1.8 Only registrated user are allowed to use this system".
 
Du willst dich über SMTP Auth (bereits genannt), ESMTP und den Submission Port (587/tcp) informieren.

Andere Frage: Wie wolltest du denn jemals E-Mails von anderen Benutzern empfangen, wenn sie keine E-Mails an deinem MTA einliefern dürfen?
 
Das ist gerade das Problem. :)

Ich beschäftige mich erst ein paar Tage intensiver damit.

Es ist mir schon klar, dass andere Mailserver ihre Mails irgendwie unauthentifiziert bei mir einliefern müssen, damit diese auch ankommen. :)

Ich werde mal mit den Begriffen weiter suchen, danke schonmal, hoffentlich wird's mir dann klarer. :)
 
OK, hab' mich jetzt ein wenig eingelesen, nur nochmal zum Verständnis:

Es ist völlig normal, dass man z.B. als Spammer einen Mailserver verwenden kann, mit dem unauthorisiert Spams an dessen lokale Domains schicken kann?

Irgendwie ist das klar, weil sonst andere Mailserver ihre Mails nicht zustellen könnten, aber ist das wirklich so leicht und man kann nichts dagegen machen?

Was ich noch gefunden habe, wäre Greylisting, würdet ihr dazu raten? Ist das recht problemlos? Oder gibt es diesbzgl. schlechte Erfahrungen?
 
Es ist völlig normal, dass man z.B. als Spammer einen Mailserver verwenden kann, mit dem unauthorisiert Spams an dessen lokale Domains schicken kann?
Ja.

Irgendwie ist das klar, weil sonst andere Mailserver ihre Mails nicht zustellen könnten, aber ist das wirklich so leicht und man kann nichts dagegen machen?
Die üblichen Antispam-Maßnahmen eben. Prüfung des einliefernden Clients gegen diverse RBLs/DNSBLs, Greylisting (hast du ja selbst schon genannt), Prüfung der Konformität mit (E)SMTP, Content Inspection der eingelieferten Mails...

Was ich noch gefunden habe, wäre Greylisting, würdet ihr dazu raten?
Ja.
 
Back
Top