Spoofed Mails sind eingehende Nachrichten, die im Absender eine der Domains auf dem Server nutzen, ohne das Versand autorisiert ist (d.h. kein Client, der sich am Server angemeldet hat).
Um solche Mails mit ISPConfig abzulehnen, wird die Datei /etc/postfix/mysql-virtual_domains_inverted.cf
angelegt und der Gruppe Postfix zugeordnet:
user = ispconfig
password = xvvcvxcvvxvxvx
dbname = dbispconfig
hosts = 127.0.0.1
query = SELECT 'REJECT' FROM mail_domain WHERE domain = '%d' AND active = 'y'
require_result_set = no
Testen kann man das so:
postmap -q info@eigene.domain mysql:/etc/postfix/mysql-virtual_domains_inverted.cf
Im Ergebnis gibt es REJECT.
postmap -q info@example.com mysql:/etc/postfix/mysql-virtual_domains_inverted.cf
Gibt im Gegenzug nichts aus, da es sich um keine Domain handelt, für die der Server zuständig ist.
Die Wert für user
und password
können aus einer der anderen mysql-virtual_
Dateien übernommen werden.
Danach wird der Check in die smtpd_sender_restrictions eingebunden. Den aktuellen Wert gibt es mit postconf -n smtpd_sender_restrictions
.
Das sieht dann so aus:
smtpd_sender_restrictions = check_sender_access regexp:/etc/postfix/tag_as_originating.re , permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_foreign.re
Der neue Check wird nach permit_sasl_authenticated
eingebunden.
Dann wird Postfix einmal neu gestartet und das war es schon.
Mit folgendem Aufruf als root passiert alles mit einem Schlag:
cd /etc/postfix && cp mysql-virtual_domains.cf mysql-virtual_domains_inverted.cf && sed -i "s/^table.*//g" mysql-virtual_domains_inverted.cf && sed -i "s/^select_field.*//g" mysql-virtual_domains_inverted.cf && sed -i "s/^where_field.*//g" mysql-virtual_domains_inverted.cf && sed -i "s/^additional_conditions.*//g" mysql-virtual_domains_inverted.cf && echo >> mysql-virtual_domains_inverted.cf && echo "query = SELECT 'REJECT' FROM mail_domain WHERE domain = '%d' AND active = 'y'" >> mysql-virtual_domains_inverted.cf && echo "require_result_set = no" >> mysql-virtual_domains_inverted.cf && sed -i '/^\s*$/d' mysql-virtual_domains_inverted.cf && chgrp postfix mysql-virtual_domains_inverted.cf && postconf -e "smtpd_sender_restrictions = check_sender_access regexp:/etc/postfix/tag_as_originating.re , permit_mynetworks, permit_sasl_authenticated, check_sender_access mysql:/etc/postfix/mysql-virtual_domains_inverted.cf, check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf, check_sender_access regexp:/etc/postfix/tag_as_foreign.re" && service postfix restart
Super Arbeit, vielen Dank!
Der Eintrag von mysql_virtual_domains_inverted.cf sollte hintermysql_virtual_sender.cf, damit dessen Funktionalität voll erhalten bleibt.