Postfix BCC Maps

Durch die BCC Maps können unter Postfix einzelne Mailadressen oder auch ganze Domains archiviert werden bzw. als Kopie in ein anderes Postfach geschickt werden. Dies gilt für den ausgehenden wie den eingehenden Mailverkehr. Hier zeige ich die grundsätzliche Einrichtung unter Postfix.

Die postfix Maps erstellen…

Als erstes müssen wir unsere Mapdateien erstellen. Ich verwende hier wieder meine Ubuntuumgebung daher müsst ihr eventuell die Pfade anpassen.

nano /etc/postfix/recipient_bcc

Die Datei hat folgendes ( sehr typisches postfix ) Format:

QUELLADRESSE ZIELADRESSE

Für einzelne Emailadressen:

mailadress@domain.de archiv@intern.domain.de
mailadress2@domain2.de kopie@domain.de

Für gesamte Domains:
@domain.de archiv@intern.domain.de
@domain.de @domain2.de

Die Datei speichern und dann müssen wir die postfix db erstellen. Dies machen wir mit dem Aufruf von postmap.

postmap /etc/postfix/recipient_bcc

Nun editieren wir noch die main.cf von Postfix um die Änderung bekannt zu geben.

nano /etc/postfix/main.cf

Dort tragen wir an das Ende der Datei folgendes ein:

recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
sender_bcc_maps = hash:/etc/postfix/sender_bcc

Hier habe ich schon die sender_bcc_map mit eingetragen dessen Format das gleiche wie oben ist. Nur heißt hier die Datei einfach anders ^^

Nach einem restart von postfix wird die Konfiguration sofort übernommen…

/etc/init.d/postfix restart

Wenn ihr eine Kopie von wirklich jeder Mail die durch euer System wandert erstellen wollt, dann könnt ihr auch die Konfiganweisung always_bcc verwenden. Einfach in die main.cf eintragen und dahinter eine Mailaddi und schon wird alles an diese Mailadresse geschickt. Ohne das es jemand sieht. Bitte auf den Datenschutz achten!!!

Mehr zum Thema adressrewriting unter postfix könnt ihr hier lesen…

Malwarefilter mit Postfix einrichten

Postfix ist ein mächtiger Mailserver welcher von Haus aus viele Möglichkeiten der Spamabwehr bereitstellt. Leider werden zu viele davon einfach nicht oder nur teilweise genutzt. Wir richten heute einen Malwarefilter unter Postfix ein. Malware ist ein Schadprogramm welches auf einem Rechner eingeschleust wird um schädliche Funktionen auszuführen. Im eigentlichen Sinn ist Malware kein Virus wie sie oft dargestellt wird.

Wir richten heute einen Filter ein der bei der Annahme der Mail den Inhalt scannt und bei Malwarebefund die Weiterverarbeitung der Mail unterbindet. Um dies zu realisieren nutzen wir den sog. body_check. Durch die body_checks überprüft Postfix den Inhalt der Mail gegen bekannte Pattern bzw. Regexe. Wir laden unsere malwareliste automatisch runter und können so sehr schnell neue Bedrohungen erkennen.

Als erstes erstellen wir uns ein Script namens fetch_malware unter /usr/sbin/…

nano /usr/sbin/fetch_malware

Dort tragen wir folgendes ein:

/usr/bin/wget -O - http://www.malware.com.br/cgi/submit?action=list_postfix > /etc/postfix/malwarelist
/etc/init.d/postfix reload > /dev/null

Dieses Script machen wir nun ausführbar.

chmod +x /usr/sbin/fetch_malwarelist

Nun soll unsere Liste ja automatisch in regelmässigen Intervallen aktualisiert werden. Dafür tragen wir in unsere Crontab einen Job ein.

crontab -e
25 * * * * root /usr/sbin/fetch-malwarelist >/dev/null 2>&1

Damit wird die Liste jede Stunde zur 25ten Minute gedownloaded.

Nun muss Postfix noch beigebracht werden das er diese Daten auch verwenden soll. Dafür tragen wir nun in die main.cf folgendes ein:

 body_checks = regexp:/etc/postfix/malwarelist

Das wars dann auch schon. So habt ihr einen sehr effektiven Schutz vor Malware auf eurem Mailgateway installiert. Ihr könnt natürlich auch weitere Listen hinzufügen um euren Schutz noch zu erweitern. Jedoch muss beachtet werden das die body_checks von Postfix auch CPU Resourcen benötigen. Daher sollten nicht zu viele Listen oder Einträge verwendet werden. Ein heutiger PC hat aber genug Resourcen zum Filtern.

 

Mailgraph und Postscreen

Moin,

ich habe heute meinen Spamfilter mit Postscreen ausgestattet, was ich sehr empfehlen kann, und habe mich gewundert das mein Mailgraph mir so geringe Werte anzeigte. Kurz geschaut und meine Mailgraph Version kannte die regexe für Postscreen noch nicht. Daher muss man so in Zeile 636 nach:

elsif($prog eq 'cleanup') {
  if($text =~ /^[0-9A-Z]+: (?:reject|discard): /) {
    event($time, 'rejected');
  }
}

folgendes einfügen:

 elsif($prog eq 'postscreen') {
   if($text =~ /NOQUEUE: reject:/) {
     event($time, 'spam');
   }
   elsif($text =~ /DISCONNECT/) {
     event($time, 'spam');
   }
 }

Mit diesen Zeilen werden die Mail die Postscreen rejectet oder die Verbindung nicht zulässt als SPAM erkannt. Tauscht man

'spam'

durch

'rejected'

so werden die Mails als reject unter Mailgraph angezeigt. Jeder so wie er es lieber mag 😉