[Postfixbuch-users] RelayedOpenRelay

Patrick Ben Koetter p at state-of-mind.de
So Aug 14 01:06:12 CEST 2011


* Andreas Meyer <postfixbuch-users at listen.jpberlin.de>:
> > Im Ernst: Das passiert wenn eine Mail an remote (non-local) Empfänger geht und
> > der Absender nicht als lokaler (originating) Sender identifiziert werden kann.
> > 
> > Eine derartige Konstellation entsteht, wenn jemand Dein Mailsystem mißbrauchen
> > kann und es somit ein Open Relay {RelayedOpenRelay} ist.
> > 
> > Sie entsteht aber auch - und das wird bei Dir wohl zutreffen - wenn Dein
> > Mailclient nicht über eine @mynetworks IP sendet oder keiner $policy_bank
> > zugeordnet wird die das ORIGINATING Flag setzt.
> > 
> > Statische IP
> > Wenn Du von einer statischen IP aus sendest, dann füge diese zu @mynetworks
> > hinzu.
> > 
> > Dynamische IP
> > Wenn Du SASL authentifiziert sendest rate ich Dir lokale Sender von remote
> > Sendern durch den Port auf den Mail submitted bzw. transferiert wird zu
> > trennen. Lokale submitten auf Port 587 und remote MTAs kommen wie gehabt auf
> > Port 25 rein.
> 
> Aber sende ich von meiner privaten Kiste aus wie auch die Kunden nicht
> immer remote? local wären eigentlich nur die, die das Webinterface zum
> mailen benutzen.

Ich gebe Dir recht, der Begriff "lokal" trägt hier nicht weit. Vielleicht
kriege ich das mit einer Umschreibung verständlicher in den Griff:

  "Ein Sender, der das System legitim nutzt, um eine Nachricht in den Umlauf
  zu bringen."

Wichtig sind dabei "legitim" und "in den Umlauf (...) bringen", denn es
bedeutet:

- Der Sender konnte sich legitieren indem er/sein Client über die IP oder über
  seine SASL-Identität erkannt (authentifiziert) und zum Senden berechtigt
  (autorisiert) wurde 

- Die Nachricht betritt hier den Transportweg. Aus Sicht aller nachgelagerten,
  mailverarbeitenden Instanzen ist der Mailserver, der die Nachricht zum
  Versand vom Client (MUA) annahm der "originator" - ihm "entspringt" die
  Nachricht.

Beides kann amavis nicht wissen. Amavis weiß nicht, dass der sendende Client
sich per SMTP AUTH bei Postfix authentifiziert hatte (und header sind Schall
und Rauch) und er kann den sendenden Client bei dynamischen IPs nicht einer
legitimen Gruppe (IP ist in @mynetworks) zuordnen.

Wir helfen amavis (und schützen es vor Mißbrauch) indem wir eine spezielle
$policy_bank schaffen, die nur angesprochen wird wenn wir sicherstellen
können, dass der Sender mit der dynamischen IP legitim sendet.

Das erreichen wir indem wir Mails über den submission-Port RFC-gerecht nutzen
und sendenden Clients zwingend (!) SMTP AUTH abfordern. Wer diese Hürde
schafft, hat sich erfolgreich legitimiert - er gehört zu uns, ist 'local'.

Von diesem Port aus routen wir Nachrichten an die spezielle $policy_bank in
amavis und dort sagen wir amavis, das alles was da reinkommt ORIGINATING ist.

Ist ORIGINATING gesetzt, bedeutet das für amavis folgendes:

- Legitimität
  Diese Nachricht stammt von einem legitimen Sender.

- Senderichtung
  Diese Nachricht geht von mir weg (Sender) zu einem Anderen (Recipient) hin.

Diese Bedingungen sind Voraussetzung für folgende, mögliche Aktionen:

DKIM-Signaturen
Sind Legitimität und Senderichtung gegeben, wird amavis DKIM-Signaturen
anbringen, wenn DKIM-Signaturen für die Domain des Senders konfiguriert wurde.
(Die Nachricht ist ausgehend ...)

Sender-Notifikationen
Um Backscatter und andere Formen der Zwangsbeglückung für Fremde zu vermeiden
("Sie haben ein Virus gesendet ...") notifiziert amavis nur lokale (lies:
systemgehörige) Sender und Empfänger. "Nur lokal" wird über den Parameter
$warn_offsite (default: 0) geregelt. Legitimer Sender wird über @mynetworks
oder ORIGINATING festgelegt und zum System gehörende Empfänger, also lokale
Empfänger legt @local_domains_maps fest.

Status-Header
amavis kann sich selbst, das Ergebnis von Virenscans, DKIM-Verifizierung und
Resultate von SpamAssassin in Header einfügen. Das tut es nur für lokale
Empfänger. Wer in @local_domains_maps steht, ist lokal.


In dem Sinne also:

- Pack das Webinterface in @mynetworks
- Laß die Clients von Kunden über submission senden
- Laß die Server von Kunden über Port 25 senden und ordne ihre statische IP
  @mynetworks zu.

Wenn Du die Kunden-IPs einer speziellen Policy in amavis zuführen willst, dann
route ihre IPs bestimmten $policy_banks zu:

@client_ipaddr_policy = (
  [qw( 0.0.0.0/8 127.0.0.1/8 [::] [::1] )] => 'LOCALHOST',
  [qw( !172.16.1.0/24 172.16.0.0/12 192.168.0.0/16 )] => 'PRIVATENETS',
  [qw( 192.0.2.0/25 192.0.2.129 192.0.2.130 )] => 'PARTNER',
  [qw( 88.217.225.250/32 )] => 'CUSTOMERS',
  \@mynetworks => 'MYNETS',
);


So. Und jetzt fallen mir die Finger ab.  ;)

p at rick


-- 
state of mind ()

http://www.state-of-mind.de

Franziskanerstraße 15      Telefon +49 89 3090 4664
81669 München              Telefax +49 89 3090 4666

Amtsgericht München        Partnerschaftsregister PR 563




Mehr Informationen über die Mailingliste Postfixbuch-users