Postfix Domain sperren per MySQL Datenbank

  • Hallo zusammen,


    Ich sperre bei Postfix einige domains für den eigenhenden Emailverkehr per Postmap


    nun möchte ich nicht immer die postmap neu erstellen und wollte das ganze per MySQL Datenbank abwickeln. Ich habe nun eine Eine DB mit der tabelle blacklist diese ist wie folgt ausgebaut


    adresse aktion
    status
    info
    example.de REJECT
    1
    20181022


    in der main.cf habe ich folgenden eintrag smtpd_recipient_restrictions = mysql:/opt/postfix/conf/sql/blacklist.cf


    ##/opt/postfix/conf/sql/blacklist.cf

    # Blackliste aus MySQL

    user = mailserver

    password = *******************

    hosts = 10.20.10.1

    dbname = mailserver

    query = SELECT aktion FROM `blacklist` WHERE `adresse` LIKE '%' AND `aktion` LIKE 'REJECT' AND `status` = 1

    Leider greif da die Blackliste nicht.


    hätte jemand mal einen denkanstoß für mcih


    Danke vorab


    Gruß Andre




  • Du kannst Deine Map mit postmap testen, ob sie richtig arbeitet.


    Du kannst Postfix nicht einfach eine MySQL-Map hin werfen, ohne weitere Aktionen. Suchst Du nach check_recipient_access?


    Unabhängig davon ist Dein Query komplett falsch. Du hast nirgends einen Vergleich auf die Domain. Du brauchst etwas wie: `adresse` = '%d'


    Keine Ahnung, ob dieser Artikel was taugt, aber der behandelt genau Dein Thema und sieht als Einführung vielversprechend aus: https://kitt.hodsden.org/blog/…ck_recipient_access_mysql


    Für weitere Informationen empfehle ich die Postfix Dokumentation. Gerade solche Sachen sind dort extrem gut erklärt. Und nachher weiß man wenigstens, was, wo, wie und warum so arbeitet.

  • Was mir erst jetzt bewusst wird: Warum willst Du überhaupt Empfängerdomains ("recipient") sperren? :/


    Dein Mailserver sollte sowieso nur für bekannte Domains zuständig sein. Andernfalls wäre er ein Open Relay und Dein Ansatz völlig verkehrt. Und ausgehende Mails solltest Du nur von authentifizieren Usern annehmen, dort würde so eine Filterung nur in sehr seltenen Fällen Sinn ergeben.

  • so ich habe den fehler gefunden und sorry für die Verwirrung


    smtpd_recipient_restrictions = check_sender_access proxy:mysql:/opt/postfix/conf/sql/mysql_mysql_blackliste.cf


    # Blackliste aus MySQL

    user = mailserver

    password = SWA1uC492ssDQUe0

    hosts = 10.20.10.1

    dbname = mailserver

    query = SELECT aktion FROM blacklist WHERE adresse='%s' AND `status` = 1

  • warum nicht

    smtpd_sender_restrictions = check_sender_access proxy:mysql:/opt/postfix/conf/sql/mysql_mysql_blackliste.cf

    Grüße / Greetings

    Walter H.


    RS 1000 SAS G8 xRAM; RS 500 SSD G8; S 1000 G7; VPS 200 G8 Akt.; Webhost. 1000 m. 75%