HowTo: Mailserver, DNS und SPF Records

SPF steht fuer Sender Policy Framework und ist ein Spamschutzverfahren bei dem im DNS ein TXT Record hinterlegt wird. Der Record enthaelt zusaetzliche Informationen zum Mailserver. Ein empfangender Mailserver kann dann unter Zuhilfenahme eines SPF Records ueberpruefen ob der Server der diese Email versendet ueberhaupt legitimiert ist selbiges zu tun.

Einen einfachen SPF Record Generator gibt es unter der folgenden Adresse:

TXT Records koennen unter Linux mit dem Tool dig abgefragt werden:

user@host:~$ dig +short TXT jan-von.de
"v=spf1 a a:vonde.eu a:s2.pregos.info ip4:188.40.81.89"
user@host:~$

Mit den folgenden Schritten kann man unter Debian in Postfix selber einen SPF Check implementieren:

  1. Paket installieren:
    user@host:~$ aptitude install postfix postfix-policyd-spf-perl
  2. Die Ueberpruefung als smtpd_recipient_restrictions in der /etc/postfix/main.cf hinzufuegen. Dabei darauf achten, dass nur der neue Eintrag hinten angefuegt und nichts geloescht wird:
    smtpd_recipient_restrictions = [...], check_policy_service unix:private/policy
  3. Die Policy Engine in der /etc/postfix/master.cf hinzufuegen:
    policy unix - n n - - spawn
      user=nobody argv=/usr/bin/perl /usr/sbin/postfix-policyd-spf-perl
  4. Postfix neu starten:
    user@host:~$ service postfix restart

Diese Schritte habe ich aus dem Eintrag Implementing SPF checks in Postfix von www.debiantutorials.com. Hier in meinen Blog ueberfuehrt, damit ich die Infos auch noch habe sollte die andere Seite mal Offline gehen…

Nagios: Check if IP is SPAM-Blacklisted

Wenn man fuer mehr als nur eine feste IP-Adresse verantwortlich ist, und sicherstellen moechte, dass diese IPs nicht wegen irgendwelcher Sachen auf irgendwelchen SPAM-Blacklists eingetragen sind, dann ist es schoen das Schweizer-Taschenmesser eines Systemadministrators „Nagios“ um entsprechende Checks zu erweitern. Ich habe hierfuer check_bl gewaehlt.
Dafuer habe ich das Plugin selbst nach /usr/lib/nagios/plugins/ gelegt und in der /etc/nagios3/commands.cfg das folgende check command definiert:

define command{
        command_name    check_bl
        command_line    $USER1$/check_bl -H $HOSTADDRESS$ -B zen.spamhaus.org bl.spamcop.net dnsbl.ahbl.org dnsbl.njabl.org dnsbl.sorbs.net virbl.dnsbl.bit.nl rbl.efnet.org phishing.rbl.msrbl.net 0spam.fusionzero.com list.dsbl.org multihop.dsbl.org unconfirmed.dsbl.org blacklist.spambag.org blackholes.brainerd.net blackholes.uceb.org spamsources.dnsbl.info map.spam-rbl.com ns1.unsubscore.com psbl.surriel.com l2.spews.dnsbl.sorbs.net bl.csma.biz sbl.csma.biz dynablock.njabl.org no-more-funn.moensted.dk  ubl.unsubscore.com dnsbl-1.uceprotect.net dnsbl-2.uceprotect.net dnsbl-3.uceprotect.net spamguard.leadmon.net opm.blitzed.org bl.spamcannibal.org rbl.schulte.org dnsbl.ahbl.org virbl.dnsbl.bit.nl combined.rbl.msrbl.net
}

Anschliessend konnte ich fuer die vorhandene Hostgroup die alle Server beinhaltet die ich pruefen moechte, den check einrichten:

define service {
        hostgroup_name                  myserver-hostgroup
        service_description             BLACKLIST
        check_command                   check_bl
        use                             intranda-service
        notification_interval           0
}

Nagios neustarten, laeuft!