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.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • 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.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • 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