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 [email protected] mysql:/etc/postfix/mysql-virtual_domains_inverted.cf
Im Ergebnis gibt es REJECT.
postmap -q [email protected] 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
This post first appeared on Florian @it – Mein Persönliches IT-Blog, please read the originial post: here