Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:spam_12 [17.12.2014 21:32. ] djangocentos:mail_c7:spam_12 [20.05.2021 06:03. ] (aktuell) django
Zeile 1: Zeile 1:
-<WRAP center round info 60%>+<WRAP center round info 60%> \\ 
 Artikel befindet sich gerade in der Bearbeitung! Artikel befindet sich gerade in der Bearbeitung!
 </WRAP> </WRAP>
Zeile 21: Zeile 21:
 Das nachfolgende Schaubild zeigt den Bearbeitungsverlauf einer eMail mit Berücksichtigung auf DMARC auf. Das nachfolgende Schaubild zeigt den Bearbeitungsverlauf einer eMail mit Berücksichtigung auf DMARC auf.
  
-<uml width=900 title="DMARC - Verarbeitungsschritte einer eMail">+<uml>
 skinparam defaultFontName Courier skinparam defaultFontName Courier
 state "Absender Klaus generiert eMail" as sender state "Absender Klaus generiert eMail" as sender
Zeile 54: Zeile 54:
   smtpd_b : Bewertung der eMail   smtpd_b : Bewertung der eMail
   smtpd_b : mit Hilfe von Blacklists     smtpd_b : mit Hilfe von Blacklists  
-  smtpd_b : und greylisting+  smtpd_b : und postscreen
  
   state "SPAM- und Virenüberprüfung" as amavis1   state "SPAM- und Virenüberprüfung" as amavis1
Zeile 174: Zeile 174:
   regelmäßiger forensischer    regelmäßiger forensischer 
   Bericht an den im DMARC-Record    Bericht an den im DMARC-Record 
-  hinterlegten "ruaf=mailto"-+  hinterlegten "rua=mailto"-
   Adresse des Mailserver-   Adresse des Mailserver-
   betreibers des Absender-   betreibers des Absender-
Zeile 1815: Zeile 1815:
 127.0.0.1 127.0.0.1
 </file> </file>
 +
 +=== Public Suffix List ====
 +Im [[https://tools.ietf.org/html/rfc7489|RFC 7489]] wird die optionale Verwendung einer Public Suffix List im Kapitel **[[https://tools.ietf.org/html/rfc7489#appendix-A.6.1|Appendix A.6.1]]** beschrieben. Wir werden dieser Konfigurationsoption nun entsprechend aktivieren. 
 +
 +Zuvor holen wir uns aber erst einmal diese Liste von der Webseite **[[https://publicsuffix.org/list/|Public Suffix List]]** der [[http://www.mozilla.org/|Mozilla Foundation]] herunter. 
 +   # wget --no-check-certificate -q -N https://publicsuffix.org/list/effective_tld_names.dat -O /etc/opendmarc/effective_tld_names.dat
 +
 +In unregelmäßigen Abständen, meist mehrmals pro Monat, wird diese Liste aktualisiert. Damit wir nun nicht händisch für die Aktualität dieser Liste sorgen müssen, legen wir uns einen kleinen cronjob an, der 1x pro Woche ausgeführt werden soll.
 +   # vim /etc/cron.weekly/update_PublicSuffixList
 +
 +<file bash /etc/cron.weekly/update_PublicSuffixList>#!/bin/bash
 +# Script zum Aktualisieren der Public Suffix List für opendmarc
 +# Django <django@mailserver.guru> (c) 2015
 +#
 +/user/bin/wget --no-check-certificate -q -N https://publicsuffix.org/list/effective_tld_names.dat -O /etc/opendmarc/effective_tld_names.dat</file>
 +
 +Was nun noch fehlt, ist die Aktivierung dieser Option in der Konfigurationsdatei von **opendmarc**.
 +   # vim /etc/opendmarc.conf
 +<code bash /etc/opendmarc.conf>...
 +
 +##  PublicSuffixList path
 +##      default (none)
 +##
 +##  Specifies the path to a file that contains top-level domains (TLDs) that
 +##  will be used to compute the Organizational Domain for a given domain name,
 +##  as described in the DMARC specification.  If not provided, the filter will
 +##  not be able to determine the Organizational Domain and only the presented
 +##  domain will be evaluated.
 +#
 +# Django : 2015-12-10
 +# default: unset
 +PublicSuffixList /etc/opendmarc/effective_tld_names.dat
 +
 +...
 +</code>
 +
 +Zum Aktivieren der **Public Suffix List** brauchen wir dann nur noch den Daemon 1x durchstarten.
 +   # systemctl restart opendmarc.service
  
 ==== mysql Konfiguration ==== ==== mysql Konfiguration ====
Zeile 2031: Zeile 2069:
 # Django : 2014-03-20 # Django : 2014-03-20
 # einmal in der Nacht die DMARC-Statistikdaten abholen und die mySQL-Datenbank damit befüllen. # einmal in der Nacht die DMARC-Statistikdaten abholen und die mySQL-Datenbank damit befüllen.
-33 3 * * * /usr/local/bin/dmarc-report 1>/dev/null 2>&1+33 3 * * * /root/bin/dmarc-report 1>/dev/null 2>&1
  
 +...
 +</code>
 +
 +==== Postfix ====
 +In der Konfigurationsdatei **main.cf** unseres Postfix-Mailserver definieren wir uns nun eine eigene Variable, die wir dann in der Datei //**/etc/postfix/master.cf**// dann verwenden wollen. Wir tragen also nun in der Section **MILTER** nachfolgende Zeilen ein.
 +   # vim /etc/postfix/main.cf
 +<file bash /etc/postfix/main.cf>...
 +
 +################################################################################
 +## MILTER
 +# Django : 2014-11-18
 +# DMARC Test
 +spf_milter       = inet:127.0.0.1:8890
 +opendkim_milter  = inet:127.0.0.1:8891
 +opendmarc_milter = inet:127.0.0.1:8893
 +amavisd_milter   = inet:10.0.0.67:8899
 ... ...
 </file> </file>
  
 +In der Konfigurationsdatei //**/etc/postfix/master.cf**// legen wir nun fest, dass bei der Annahme auf Port **25** unser gerade definierte **smf-spf**-milter verwendet werden soll.
 +   # vim /etc/postfix/master.cf
 +
 +<code>...
 +
 +smtp      inet  n                               postscreen
 +smtpd     pass  -                               smtpd
 +  -o smtpd_milters=${spf_milter},${opendkim_milter},${opendmarc_milter},${amavisd_milter}
 +  -o smtpd_sasl_auth_enable=no
 +dnsblog   unix  -                               dnsblog
 +tlsproxy  unix  -                               tlspr
 +</code>
 +
 +===== Programmstart =====
 +Das Starten des Daemon erfolgt über folgenden Aufruf.
 +   # systemctl start opendmarc
 +
 +Den erfolgreichen Start bzw. den Status des **smf-spf**-Daemon können wir bei Bedarf mit folgendem Aufruf abfragen.
 +   # systemctl status opendmarc
 +
 +<code>opendmarc.service - opendmarc - DMARC email policy filter for MTAs.
 +   Loaded: loaded (/usr/lib/systemd/system/opendmarc.service; disabled)
 +   Active: active (running) since Wed 2014-12-17 20:58:56 CET; 1h 45min ago
 + Main PID: 2370 (opendmarc)
 +   CGroup: /system.slice/opendmarc.service
 +           └─2370 /usr/sbin/opendmarc -f -c /etc/opendmarc/opendmarc.conf
 +
 +Dec 17 20:58:56 vml000087.dmz.nausch.org systemd[1]: Starting opendmarc - DMARC email policy filter for MTAs....
 +Dec 17 20:58:56 vml000087.dmz.nausch.org systemd[1]: Started opendmarc - DMARC email policy filter for MTAs..
 +Dec 17 20:58:56 vml000087.dmz.nausch.org opendmarc[2370]: OpenDMARC Filter: Opening listen socket on conn inet:8893@localhost
 +Dec 17 20:58:56 vml000087.dmz.nausch.org opendmarc[2370]: OpenDMARC Filter v1.3.0 starting (args: -f -c /etc/opendmarc/opendmarc.conf)
 +Dec 17 20:58:56 vml000087.dmz.nausch.org opendmarc[2370]: trusted authentication services: mx01.nausch.org
 +</code>
 +
 +
 +Im Maillog wird der Start des Daemon entsprechend dokumentiert.
 +   # less /var/log/maillog
 +
 +   Dec 17 22:45:08 vml000087 opendmarc[2912]: OpenDMARC Filter: Opening listen socket on conn inet:8893@localhost
 +   Dec 17 22:45:08 vml000087 opendmarc[2912]: OpenDMARC Filter v1.3.0 starting (args: -f -c /etc/opendmarc/opendmarc.conf)
 +   Dec 17 22:45:08 vml000087 opendmarc[2912]: trusted authentication services: mx01.nausch.org
 +
 +Mit Hilfe von **netstat** können wir überprüfen, ob der Port **8893** geöffnet wurde.
 +   # netstat -tulpen
 +
 +<code>Active Internet connections (only servers)
 +Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
 +tcp        0      0 0.0.0.0:25              0.0.0.0:              LISTEN      0          37485      2476/master         
 +tcp        0      0 127.0.0.1:8890          0.0.0.0:              LISTEN      993        24732      1441/smf-spf        
 +tcp        0      0 127.0.0.1:8891          0.0.0.0:              LISTEN      991        25040      1680/opendkim       
 +tcp        0      0 127.0.0.1:8893          0.0.0.0:              LISTEN      0          40337      2912/opendmarc
 +</code>
 +
 +Gleiches können wir natürlich auch mit dem Befehl **lsof** erreichen.
 +   # lsof -i:8893
 +
 +   COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 +   opendmarc 2912 root    4u  IPv4  40337      0t0  TCP localhost:ddi-tcp-6 (LISTEN)
 +
 +Damit der Daemon automatisch beim Hochfahren des Servers gestartet wird, nutzen wir folgenden Aufruf.
 +   # systemctl enable opendmarc.service
 +
 +   ln -s '/usr/lib/systemd/system/opendmarc.service' '/etc/systemd/system/multi-user.target.wants/opendmarc.service'
 +
 +Wollen wir überprüfen ob der Dienst automatisch startet, verwenden wir folgenden Aufruf. 
 +
 +   # systemctl is-enabled opendmarc.service
 +
 +   enabled
 +
 +Die Rückmeldung **enabled** zeigt an, dass der Dienst automatisch startet; ein **disabled** zeigt entsprechend an, dass der Dienst __nicht__ automatisch startet.
 +
 +===== Logging / Mailheader =====
 +Im Maillog werden entsprechend unserer zuvor festgelegten Konfiguration, vom DMARC-Daemon logeinträge erzeugt.
 +Folgender Logeintrag zeigt einen erfolgreiche DMARC-Überprüfung.
 +  Mar 23 22:46:01 vml000080 opendmarc[25914]: C198981: gmail.com pass
 +
 +Im Mailheader der Nachricht, wird dies auch entsprechend vermerkt.
 +  DMARC-Filter: OpenDMARC Filter v1.2.0 mx01.nausch.org C198981
 +  Authentication-Results: mx01.nausch.org/C198981; dmarc=pass header.from=gmail.com
 +
 +Hat der Domainbetreiber keinen DMARC-Eintrag im DNS hinterlegt, sieht die betreffende Zeile im Maillog entsprechend so aus.
 +  Mar 19 00:22:36 vml000080 opendmarc[14508]: D9B6D83: piratenpartei-bayern.de none
 +
 +Auch dies wird im Mailheader entsprechend vermerkt.
 +  DMARC-Filter: OpenDMARC Filter v1.2.0 mx01.nausch.org D9B6D83
 +  Authentication-Results: mx01.nausch.org/D9B6D83; dmarc=none header.from=piratenpartei-bayern.de
 +
 +<WRAP center round alert 35%> \\
 +FIXME //... do geds weida!//
 +</WRAP>
  
  • centos/mail_c7/spam_12.1418851955.txt.gz
  • Zuletzt geändert: 17.12.2014 21:32.
  • von django