Postfix header_checks und body_checks ermöglichen das Filtern von eingehenden Mails nach bestimmten Zeichenfolgen oder Wörtern.
Für diese erweiterete SPAM-Abwehr tragen wir die Option header_checks = pcre:/etc/postfix/header_checks in der main.cf ein oder im ISPConfig unter "E-Mail > Inhaltsfilter"
Beispiele für header_checks
Header Checks sind sehr vielfältig die RegEx (Perl Compatible Regular Expressions) sind nicht einfach zu schreinen / verstehen und müssen vom Postfix unterstützt werden:
# Dateitypen blockieren .exe
/^Content-(Disposition|Type).*name\s*=\s*"?(.*\.(bat|exe|scr))(\?=)?"?\s*(;|$)/x File extension is blacklisted on this server
# Ungültige Zeitangaben
/^Date: .* 19[0-9][0-9]/ REJECT Your email has a date from the past. Fix your system clock and try again.
/^Date: .* 200[0-15]/ REJECT Your email has a date from the past. Fix your system clock and try again.
# Sprachen mit anderer Codierung
/^Subject:.*=\?(big5|euc-kr|gb2312|ks_c_5601-1987)\?/ REJECT Language not accepted by this server as it is probably spam
# TLDs aussperren - hier *.ro
/^From:.*\@.*\.ro/ REJECT Sorry, Romanian mail not allowed here
Beispiele für body_checks
Das folgende Beispiel weist Variationen vom Wort Viagra zurück wie zum Beispiel: "viagra v1agra vi4gra vi@gra viagr4 viagr@ v-iagra v i a g r a v-i-a-g-r-a vijagra vjiagra"
# viagra
/(VP[\-]RX|[vV][ j!\-\.]?[iI1][ j!\-\.]?[aA4@][ !j\-\.]?[gG][ !j\-\.]?[rR][ !j\-\.]?[aA4][ !j\-\.]?)/ REJECT Message body rejected [301]
Gefälschte Rolex und Catrier Uhren sind auch oft im Angebot:
# rolex or cartier
/([rR][-\. ]?[oO0][-\. ]?[lL][-\. ]?[eE][-\. ]?[xX][\.\? ]?)|([cC][-\. ]?[aA4][-\. ]?[rR][-\. ]?[tT][-\. ]?[iI1][-\. ]?[eE][-\. ]?[rR][\.\? ]?)/ REJECT Message body rejected [101]