Jump to content
Froxlor Forum
  • 0

Postfix soll nicht vorhandene Absender-Adressen ablehnen


Question

Hallo alle zusammen,

 

ich habe Froxlor mit Courier im Einsatz. Nun möchte ich verhindern, dass irgendein Skript von einer nicht vorhandenen E-Mail-Adresse aus schreiben kann.

In der main.cf habe ich folgende Einstellungen aktiv:

smtpd_sender_restrictions = permit_mynetworks,
	reject_sender_login_mismatch,
#	permit_sasl_authenticated, 
#	reject_unknown_helo_hostname, 
	reject_unknown_recipient_domain, 
	reject_unknown_sender_domain,
	reject_unlisted_sender,
	reject_unlisted_recipient

    reject_unknown_sender_domain,

    reject_unlisted_sender,
    reject_unlisted_recipient

zeigen keine Wirkung, wenn ich sendmail benutze.

Über smtpd_sender_login_maps = mysql:/etc/postfix/mysql-virtual_sender_permissions.cf müssten doch alle Sender bekannt sein oder?

Muss ich noch local_recipient_maps = $virtual_mailbox_maps oder smtpd_sender_login_maps = mysql:/etc/postfix/virtual/sender-login-maps.cf aktivieren?

Wie würde das funktionieren?

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Welche Relevanz hat eigentliche die Reihenfolge? Dazu habe ich nichts beim Googeln gefunden.

Beispiel:

smtpd_sender_restrictions = permit_mynetworks,
    reject_sender_login_mismatch,
#   permit_sasl_authenticated, 
#   reject_unknown_helo_hostname, 
    reject_unknown_recipient_domain,
    reject_unknown_sender_domain,
    reject_unlisted_sender,
    reject_unlisted_recipient,
    permit

Bedeutet permit_mynetworks an dieser Stelle, dass er die Verarbeitung abbricht, sofern der Sender im lokalen Netzwerk ist und einfach alles erlaubt? Warum muss ich das überhaupt angeben?

Bei einem reject wird die Abarbeitung sofort verlassen und die Mail abgelehnt?

Muss ich am Schluss ein permit haben?

 

unverified_sender klappt nicht. IRgendetwas muss ich allgemein falsch gemacht haben. Hier meine Config:

smtpd_sender_restrictions =
    reject_sender_login_mismatch,
#    permit_sasl_authenticated,
#    reject_unknown_helo_hostname,
    reject_unknown_recipient_domain,
    reject_unknown_sender_domain,
    reject_unlisted_sender,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    reject_unverified_sender,
    permit_mynetworks,
    permit
Link to post
Share on other sites
  • 0

Welche Relevanz hat eigentliche die Reihenfolge? Dazu habe ich nichts beim Googeln gefunden.

Einen Link habe ich auch nicht parat, aber die restrictions arbeiten nach dem Ja, Nein, Vielleicht -Prinzip.

permit_* = Ja, Mail erlaubt

reject_* = Nein, Mail ablehnen

check_*= hier können verschiedene Aktionen erfolgen

Trifft nun eine Bedingung zu, dann ist entschieden was mit der Mail passiert, trifft sie nicht zu, wird die Mail weiterverarbeitet. So macht auch das permit am Ende Sinn, einiges wurde vorzeitig erlaubt, einiges abgelhetn, das permit bezieht sich auf den Rest.

Eine Reihenfolge gibt es u.a. auch deshalb, weil es billige und teure Tests gibt. Es ist ressourcenschonend zu prüfen ob eine Adresse existiert, es ist aufwändig, den Inhalt durch einen Virenfilter zu jagen.

Link to post
Share on other sites
  • 0

Bedeutet permit_mynetworks an dieser Stelle, dass er die Verarbeitung abbricht, sofern der Sender im lokalen Netzwerk ist und einfach alles erlaubt? Warum muss ich das überhaupt angeben?

Bei einem reject wird die Abarbeitung sofort verlassen und die Mail abgelehnt?

Muss ich am Schluss ein permit haben?

 

unverified_sender klappt nicht.

permit_mynetworks : nur ein Prüfungsabbruch; kommt die Mail aus einem der Netze, die in $mynetworks definiert sind, wird denen vertraut und nicht weiter geprüft. man muss das nicht angeben, es macht das Leben leichter (i.d.R. vertraut man dem eigene Server)

reject_ : ja, es wird entschieden, die Mail nicht zuzulassen, der Client erfährt das, jede weitere Verarbeitung findet nicht statt

permit : ja, macht Sinn, es sei denn Du has mit rejects und permits wirklich alle Fälle abgedeckt

 

Ich hatte die SenderAddressVerification schon an - mich aber wegen hässlicher greylisting-"Schleifen" (Verzögerungen bis über Backup-MXe) dagegen entschieden. Welche Version von postfix hast Du? Hilft evtl. : http://www.postfix.org/ADDRESS_VERIFICATION_README.html

Link to post
Share on other sites
  • 0

Danke für die Erklärungen zum Regelwerk! Habe testweise nun alle permits an den Schluss gepackt.

 

postconf -d mail_version

mail_version = 2.11.0
 

Aus http://www.postfix.org/ADDRESS_VERIFICATION_README.html bin ich noch nicht so richtig schlau geworden.

Daher würde ich gerne irgendwo Debuggen wie er die Regeln checkt. Das hier in der /etc/postfix/master.cf habe ich getestet:

smtp unix - - n - - smtp -vv
smtp inet n - n - - smtpd -vv

Allerdings kommt da nirgendwo meine gefakte Absender-Adresse vor  :wacko: //edit: Die E-Mail habe ich per sendmail -t gesendet. Sie sind durchgekommen.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By hoschi
      Ich hab noch gaaanz alte Systeme (+10 Jahre) am Start und wollte nicht auf dovecot umstellen.
      Falls jemand danach suchen sollte, die "alte" Kombination von Programmen ist weiter nutzbar, wenn angepasst (Debian 9+). Hintergrund: froxlor speichert in seiner DB die Passwörter nach konfiguration als password und password_enc ab, letzteres ist verschlüsselt. Der hash lässt erkennen, womit gearbeitet wurde - ein einfacher String ist ein Uralt-crypt-Passwort, aktuell sollte sowas wie $5$ am Anfang stehen, was auf SHA-256 verweisst.
      Werden die Klartextpasswörter gelöscht, ist die alte Konfiguration nicht mehr verwendbar. Wäre aber mal sinnvoll, die rauszuwerfen. Folgendes ist anzupassen:
      /etc/courier/authmysqlrc:
      MYSQL_USER_TABLE mail_users MYSQL_CRYPT_PWFIELD password_enc #MYSQL_CRYPT_PWFIELD crypt Damit wird courier angewiesen, für pop und imap verschlüsslte PW auszulesen. Die SHA-256 lib ist bei Debian inclusive. crypt fliegt raus. Fertig ist der Mailabruf.
      Tricky ist die Anpassung von postfix. Die dort benutzte Bibliothek für sasl hat Einschränkungen und ist der letztlich der Grund für Probleme. Lässt sich beheben mit folgender /etc/postfix/sasl/smtpd.conf:
      pwcheck_method: authdaemond authdaemond_path: /run/courier/authdaemon/socket mech_list: plain login In der Datei stand vorher pwcheck_method: auxprop mit sql plugin drin. Das Problem ist: auxprop kann nur Klartext. Aber dafür erlaubt auxprop die Verwendung von cram-md5 und digest-md5 zum hashen auf Clientseite, früher war daher die mech_list um diese beiden ergänzt. Bedeutet: der Client verbindet sich unverschlüsselt und ohne TLS, aber hasht noch auf dem Clientsystem das Passwort mit md5 und übermittelt dann nur den hash über den unverschlüsselten Kanal. Bei TLS kann man sich das sparen - erst wird der Kanal abgesichert, dann kann das PW unverschlüsselt geschickt werden und wird auf Serverseite gehasht und dann verglichen - das erledigt der authdaemond. auxprop kann das nicht.
      Die Mechlist wird dem Client übermittelt. Ganz alte Accounts haben evtl. noch Clienthashes und kein SSL eingeschaltet, die müssen dann umstellen auf STARTTLS mit Klartext - gilt aber nur für den Mailversand. Klartext bedeutet wie gesagt nur, das der Thunderbird/Outlook/etc. das Passwort ungehasht schickt, der authdaemond hasht das und vergleicht dann diesen hash mit dem in der froxlor Datenbank - da steht aber nix mehr im Klartext drin.
      Passwort-Wechsel ist für die User über Roundcube wie gewohnt möglich. In der DB könnt ihr sehen wie der Hash sich ändert.
    • By mrairstone
      Guten Morgen,
      mir ist in Froxlor ein kleiner Fehler in Bezug auf CatchAll Email aufgefallen.
      Zum System:
      Debian 10, 64-Bit Froxlor 0.10.11 Postfix, Dovecot, Spamc Zum Problem:
      Beim Anlegen einer neuen E-Mailadresse kann man je Domain nur eine CatchAll-Adresse definieren. Wenn man jedoch eine bestehende E-Mailadresse bearbeitet, kann man dort ganz einfach auf CatchAll umschalten.
      Dadurch kann es passieren, dass mehrere Emailadressen unterhalb einer Domain als CatchAll definiert sind. Das ist mir erst aufgefallen, als ich E-Mails in meinem Postfach hatte, welche nicht für meine E-Mailadresse bestimmt waren.
      Da auf dem Account in Froxlor mehrer Nutzer zugreifen (Feuerwehr) und E-Mailadressen hinzufügen, ändern und auch löschen - habe ich erst sehr spät gesehen das mehrere CatchAll vorhanden waren.
      Wenn man eine Mail an eine E-Mailadresse sendet, welche als CatchAll definiert wurde, wird die Mail auch an alle anderen E-Mailadressen weitergeleitet, die unterhalb der Domain als CatchAll definiert sind.(Jedenfalls bei postfix)
      Temporäre Lösung:
      Damit eingehende Mails an eine vorhandene E-Mailadresse, welche als CatchAll definiert ist, auch nur im Postfach dieser E-Mailadresse landen, habe ich die SQL-Anweisung in der "mysql-virtual_alias_maps.cf" wie folgt abgeändert:
      query = SELECT destination FROM mail_virtual AS v, panel_customers AS c WHERE c.customerid = v.customerid AND c.deactivated = 0 AND (v.email = '%s' OR v.email_full = '%s') AND trim(v.destination) <> '' Ich habe das eben auch noch einmal in der Demoversion ausprobiert, Screenshot im Anhang.
       
      Gruß

    • By thunfischbaum
      Hi everyone,
      just a little problem here. I have severa domains registered on my froxlor installation and a different hostname of course. So let's say domain1.de is my hostname. The second domain, which is used by a customer is called domain2.de . When I view the mail.log I am not able to find my connection request. I do only see the bruteforce bots with example@domain1.de connecting. But any example@domain2.de request is not getting forwareded. I did configure the installation accordingdly with the provided templates.
      Best regards,
      thunfischbaum
    • By thunfischbaum
      Hi everyone,
      I'm running a Debian 10 Buster Server with PHP7.3 installed. The PHP7.3 update is the new component in the system. since then, I can't find any Mailboxes. There are no folders in the var/customers/mail/[customer] directory.
      If you take look at the Screenshot, you see, that the E-Mail adress is existent in Froxlor. 

      Mail Bounce
      Mail Log
       
      If I missed a log, please let me know, so I can attach it
      Best regards,
      thunfischbaum

    • Guest
      By Guest
      in der config-Datei steht
       
      was für eine valid e-mail Adresse muss das sein ?  diese root@frx.beispiel.de ist ja bisher nicht eingerichtet und packt systemmeldungen in ein verzeichnis

      sollte dort also eine mailadresse rein, die auf einem anderen Server liegt und Mails empfängt, oder sollte/könnte diese root@beispiel.de im froxlor eingerichtet sein ?
×
×
  • Create New...