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_9 [17.12.2014 15:30. ] – [Programmstart] djangocentos:mail_c7:spam_9 [22.07.2019 14:46. ] (aktuell) django
Zeile 16: Zeile 16:
 ===== Überprüfung von DKIM-Signaturen ===== ===== Überprüfung von DKIM-Signaturen =====
 Damit unsere AMaViS-installation die Überprüfung von DKIM-Signaturen im Mailheader vornimmt bedarf es keiner großen Konfiguration. Wie in der [[http://www.ijs.si/software/amavisd/amavisd-new-docs.html#dkim-am-verify|Originaldoku]] von Marc Martinec zu entnehmen ist, müssen wir lediglich die Variable **$enable_dkim_verification** setzen, in dem wir ihr den Wert **1** zuweisen. Diese Variable findet sich in der Sektion **DKIM - Domain Key Identified Mail** wieder. Damit unsere AMaViS-installation die Überprüfung von DKIM-Signaturen im Mailheader vornimmt bedarf es keiner großen Konfiguration. Wie in der [[http://www.ijs.si/software/amavisd/amavisd-new-docs.html#dkim-am-verify|Originaldoku]] von Marc Martinec zu entnehmen ist, müssen wir lediglich die Variable **$enable_dkim_verification** setzen, in dem wir ihr den Wert **1** zuweisen. Diese Variable findet sich in der Sektion **DKIM - Domain Key Identified Mail** wieder.
-   # vim /etc/amavisd.conf+   # vim /etc/amavisd/amavisd.conf
  
 <code perl>################################################################################ <code perl>################################################################################
Zeile 350: Zeile 350:
 Somit ergibt sich in unserem Anwendungsbeispiel, bei dem der Domaininhaber von **sec-mail.guru** selbst alle Nachrichten signiert und dem Empfänger bittet, Nachrichten mit schadhafter DKIM-Signatur zu rejecten, folgender TXT-Record:  Somit ergibt sich in unserem Anwendungsbeispiel, bei dem der Domaininhaber von **sec-mail.guru** selbst alle Nachrichten signiert und dem Empfänger bittet, Nachrichten mit schadhafter DKIM-Signatur zu rejecten, folgender TXT-Record: 
   _adsp._domainkey.sec-mail.guru.          IN TXT  "dkim=discardable;"   _adsp._domainkey.sec-mail.guru.          IN TXT  "dkim=discardable;"
-Diesen Record veröffentlichen wir nun über unseren DNS. Somit kann ein Empfänger niucht nur den DKIM-Schlüssel zum verifizieren der DKIM-Signatur abfragen, sondern auch den **ADSP**-TXT-Record und weiß damit, was er ggf machen sollte, sofern die DKIM-Signatur gebrochen wurde.+Diesen Record veröffentlichen wir nun über unseren DNS. Somit kann ein Empfänger nicht nur den DKIM-Schlüssel zum Verifizieren der DKIM-Signatur abfragen, sondern auch den **ADSP**-TXT-Record und weiß damit, was er ggfmachen sollte, sofern die DKIM-Signatur gebrochen wurde.
  
 ===== Tests ===== ===== Tests =====
 ==== DNS + private key ==== ==== DNS + private key ====
 Nachdem der TXT zur Verfügung steht, können wir mit Hilfe von **amavisd** diesen Überprüfen. Nachdem der TXT zur Verfügung steht, können wir mit Hilfe von **amavisd** diesen Überprüfen.
-   # amavisd testkeys+   # amavisd -c /etc/amavisd/amavisd.conf testkeys
  
   TESTING#1: 141126._domainkey.omni128.de         => pass   TESTING#1: 141126._domainkey.omni128.de         => pass
Zeile 364: Zeile 364:
  
 Wollen wir nur den Schlüssel einer bestimmten Domain testen, so verwenden wir folgenden Aufruf. Wollen wir nur den Schlüssel einer bestimmten Domain testen, so verwenden wir folgenden Aufruf.
-   # amavisd testkey domain omni128.de+   # amavisd -c /etc/amavisd/amavisd.conf testkey domain omni128.de
  
   TESTING#1: 141126._domainkey.omni128.de         => pass   TESTING#1: 141126._domainkey.omni128.de         => pass
  
 Das folgende Beispiel zeigt eine Abfrage, die die Fehlermeldung **invalid (public key: OpenSSL error: bad base64 decode)** nach sich zieht. Das folgende Beispiel zeigt eine Abfrage, die die Fehlermeldung **invalid (public key: OpenSSL error: bad base64 decode)** nach sich zieht.
-   # amavisd testkey domain ebersberger-liedersammlung.de+   # amavisd -c /etc/amavisd/amavisd.conf testkey domain ebersberger-liedersammlung.de
  
   TESTING#6: 141126._domainkey.ebersberger-liedersammlung.de      => invalid (public key: OpenSSL error: bad base64 decode)   TESTING#6: 141126._domainkey.ebersberger-liedersammlung.de      => invalid (public key: OpenSSL error: bad base64 decode)
Zeile 375: Zeile 375:
  
 Das nächste Beispiel zeigt eine Abfrage, die eine weitere Fehlermeldung nach sich zieht: Das nächste Beispiel zeigt eine Abfrage, die eine weitere Fehlermeldung nach sich zieht:
-   # amavisd testkey domain ebersberger-liedersammlung.de+   # amavisd -c /etc/amavisd/amavisd.conf testkey domain ebersberger-liedersammlung.de
  
   TESTING#6: 141126._domainkey.ebersberger-liedersammlung.de => fail (OpenSSL error: data too large for key size)   TESTING#6: 141126._domainkey.ebersberger-liedersammlung.de => fail (OpenSSL error: data too large for key size)
Zeile 739: Zeile 739:
  
 <file bash /etc/opendkim.conf>## BASIC OPENDKIM CONFIGURATION FILE <file bash /etc/opendkim.conf>## BASIC OPENDKIM CONFIGURATION FILE
-## See opendkim.conf(5) or /usr/share/doc/opendkim-2.6.7/opendkim.conf.sample for more+## See opendkim.conf(5) or /usr/share/doc/opendkim-2.9.2/opendkim.conf.sample for more
  
 ## BEFORE running OpenDKIM you must: ## BEFORE running OpenDKIM you must:
Zeile 747: Zeile 747:
 ## - edit your DNS records to publish your public keys (if signing) ## - edit your DNS records to publish your public keys (if signing)
  
-## See /usr/share/doc/opendkim-2.6.7/INSTALL for detailed instructions.+## See /usr/share/doc/opendkim-2.9.2/INSTALL for detailed instructions.
  
 ## CONFIGURATION OPTIONS ## CONFIGURATION OPTIONS
Zeile 754: Zeile 754:
 PidFile /var/run/opendkim/opendkim.pid PidFile /var/run/opendkim/opendkim.pid
  
-# Selects operating modes. Valid modes are s (signer) and v (verifier). Default is v.+# Selects operating modes. Valid modes are s (sign) and v (verify). Default is v
 +# Must be changed to s (sign only) or sv (sign and verify) in order to sign outgoing 
 +# messages.
 Mode    v Mode    v
  
Zeile 772: Zeile 774:
  
 # Create a socket through which your MTA can communicate. # Create a socket through which your MTA can communicate.
-# Django: 2014-03-25 +Socket  inet:8891@localhost
-# default: Socket       inet:8891@localhost +
-Socket          inet:10011@127.0.0.1+
  
 # Required to use local socket with MTAs that access the socket as a non- # Required to use local socket with MTAs that access the socket as a non-
Zeile 781: Zeile 781:
  
 # This specifies a text file in which to store DKIM transaction statistics. # This specifies a text file in which to store DKIM transaction statistics.
 +# OpenDKIM must be manually compiled with --enable-stats to enable this feature.
 #Statistics     /var/spool/opendkim/stats.dat #Statistics     /var/spool/opendkim/stats.dat
  
Zeile 786: Zeile 787:
  
 # Selects the canonicalization method(s) to be used when signing messages. # Selects the canonicalization method(s) to be used when signing messages.
 +# Django : 2014-12-17
 +# default: Canonicalization        relaxed/relaxed
 Canonicalization        relaxed/simple Canonicalization        relaxed/simple
  
Zeile 794: Zeile 797:
  
 # Defines the name of the selector to be used when signing messages. # Defines the name of the selector to be used when signing messages.
-#Selector       default+Django : 2014-12-17 
 +# default: Selector        default 
 +# Selector      default
  
-# Gives the location of a private key to be used for signing ALL messages. +# Specifies the minimum number of key bits for acceptable keys and signatures. 
-#KeyFile        /etc/opendkim/keys/dkim2k.private+# Django : 2014-12-17 
 +# default: MinimumKeyBits 1024 
 +# MinimumKeyBits 1024 
 + 
 +# Gives the location of a private key to be used for signing ALL messages. This 
 +# directive is ignored if KeyTable is enabled. 
 +# Django : 2014-12-17 
 +# default: KeyFile /etc/opendkim/keys/default.private 
 +#KeyFile        /etc/opendkim/keys/default.private
  
 # Gives the location of a file mapping key names to signing keys. In simple terms, # Gives the location of a file mapping key names to signing keys. In simple terms,
 # this tells OpenDKIM where to find your keys. If present, overrides any KeyFile # this tells OpenDKIM where to find your keys. If present, overrides any KeyFile
-setting in the configuration file. +directive in the configuration file. Requires SigningTable be enabled.
 #KeyTable       /etc/opendkim/KeyTable #KeyTable       /etc/opendkim/KeyTable
  
 # Defines a table used to select one or more signatures to apply to a message based # Defines a table used to select one or more signatures to apply to a message based
 # on the address found in the From: header field. In simple terms, this tells # on the address found in the From: header field. In simple terms, this tells
-# OpenDKIM how to use your keys.   +# OpenDKIM how to use your keys. Requires KeyTable be enabled. 
-#SigningTable   /etc/opendkim/SigningTable+#SigningTable   refile:/etc/opendkim/SigningTable
  
 # Identifies a set of "external" hosts that may send mail through the server as one # Identifies a set of "external" hosts that may send mail through the server as one
 # of the signing domains without credentials as such. # of the signing domains without credentials as such.
-#ExternalIgnoreList     refile:/etc/opendkim/TrustedHosts 
-# Django : 2014-03-25 
 #ExternalIgnoreList     refile:/etc/opendkim/TrustedHosts #ExternalIgnoreList     refile:/etc/opendkim/TrustedHosts
  
-# Identifies a set internal hosts whose mail should be signed rather than verified.+# Identifies a set "internalhosts whose mail should be signed rather than verified.
 #InternalHosts  refile:/etc/opendkim/TrustedHosts #InternalHosts  refile:/etc/opendkim/TrustedHosts
-# Django : 2014-05-11 +# Django : 2014-12-17 
-InternalHosts  refile:/etc/opendkim/InternalHosts +# default: unset 
- +InternalHosts  refile:/etc/opendkim/TrustedHosts
-# Django : 2014-02-29 +
-# Selects the action to be taken when an ADSP check against a message with no valid  +
-# author signature results in the message being deemed suspicious and discardable.  +
-# Possible values are "discard" (accept the mesasge but throw it away) and "reject"  +
-# (bounce the message). If not set, discardable messages will still be delivered. +
-+
-ADSPAction reject+
 </file> </file>
  
-Unsere eigenen internen Hosts tragen wir in der Konfigurationsdatei //**/etc/opendkim/InternalHosts**// ein. +Unsere eigenen internen Hosts tragen wir in der Konfigurationsdatei //**/etc/opendkim/TrustedHosts**// ein. 
-   # vim /etc/opendkim/InternalHosts+   # vim /etc/opendkim/TrustedHosts
  
-<file bash /etc/opendkim/InternalHosts># To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts+<file bash /etc/opendkim/TustedHosts># OPENDKIM TRUSTED HOSTS 
 +# To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts
 # option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts # option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts
 # may be added on separate lines (IP addresses, hostnames, or CIDR ranges). # may be added on separate lines (IP addresses, hostnames, or CIDR ranges).
-# The localhost IP (127.0.0.1) should be the first entry in this file.+# The localhost IP (127.0.0.1) should always be the first entry in this file.
 127.0.0.1 127.0.0.1
-#208.69.40.157 +#host.example.com 
-# Django : internes Netz eingetragen+#192.168.1.0/24 
 + 
 +# Django : 2014-12-17 - internes Netz eingetragen
 # default: unset # default: unset
 10.0.0.0/24 10.0.0.0/24
-</file 
- 
-Möchten wir externe Hosts //whitelisten// nutzen wir die Konfigurationsdatei //**/etc/opendkim/TrustedHosts**//. 
-   # vim /etc/opendkim/TrustedHosts 
- 
-<file bash /etc/opendkim/TrustedHosts># To use this file, uncomment the #ExternalIgnoreList and/or the #InternalHosts 
-# option in /etc/opendkim.conf then restart OpenDKIM. Additional hosts 
-# may be added on separate lines (IP addresses, hostnames, or CIDR ranges). 
-# The localhost IP (127.0.0.1) should be the first entry in this file. 
-#127.0.0.1 
-#208.69.40.157 
 </file> </file>
  
Zeile 865: Zeile 861:
 # Django : 2014-11-18 # Django : 2014-11-18
 # DMARC Test # DMARC Test
-#spf_milter       = inet:127.0.0.1:10010 +#spf_milter       = inet:127.0.0.1:8890 
-opendkim_milter  = inet:127.0.0.1:10011 +opendkim_milter  = inet:127.0.0.1:8891 
-#opendmarc_milter = inet:127.0.0.1:10012 +#opendmarc_milter = inet:127.0.0.1:8892 
-amavisd_milter   = inet:10.0.0.67:10013+amavisd_milter   = inet:10.0.0.67:8899
 ... ...
 </file> </file>
Zeile 901: Zeile 897:
  
 # DKIM-Signaturen erstellen # DKIM-Signaturen erstellen
-$enable_dkim_signing = 1;+$enable_dkim_signing = 0;
  
 ... ...
Zeile 974: Zeile 970:
 Die Rückmeldung **enabled** zeigt an, dass der Dienst automatisch startet; ein **disabled** zeigt entsprechend an, dass der Dienst __nicht__ automatisch startet. Die Rückmeldung **enabled** zeigt an, dass der Dienst automatisch startet; ein **disabled** zeigt entsprechend an, dass der Dienst __nicht__ automatisch startet.
  
-Nachdem wir nun unseren opendkim-Milter erfolgreich installiert und konfiguriert haben, können wir auch ... FIXME+Nachdem wir nun unseren opendkim-Milter erfolgreich installiert und konfiguriert haben, können wir auch unseren Postfix Mailserver durchstarten, damit die Konfigurationsänderungen auf Seiten des MTA auch aktiv werden und Postfix den opendkim-Milter auch ansprechen kann.
  
 +==== Tests und Logging ====
  
 +Wurde die Nachricht unterwegs verändert,so fällt dies bei der Überprüfung der DKIM-Signatur auf und wird entsprechend im maillog vermerkt.
 +  Mar 26 12:52:15 vml000080 opendkim[10943]: D2B6281: s=20120113 d=gmail.com SSL error:04091068:rsa routines:INT_RSA_VERIFY:bad signature
 +
 +Hingegen wird bei positivem Ergebnis der DKIM-Validierung im maillog vermerkt.
 +  Mar 26 18:02:48 vml000080 opendkim[7535]: CECDB81: message has signatures from googlegroups.com, gmail.com
 +  Mar 26 18:02:48 vml000080 opendkim[7535]: CECDB81: DKIM verification successful
 +
 +Im Mailheader einer angenommenen eMail finden sich dann entsprechend auch Hinweise zur DKIM-Signaturüberprüfung.
 +  Authentication-Results: mx01.nausch.org; dkim=pass reason="1024-bit key"
 + header.d=piratenpartei-bayern.de header.i=@piratenpartei-bayern.de
 + header.b=WFipEQPn; dkim-adsp=pass
 +
 +Bei negativem Ergebnis wird entsprechend vermerkt.
 +  Authentication-Results: mx01.nausch.org; dkim=fail
 + reason="verification failed"
 + header.d=kitterman.com header.i=@kitterman.com header.b=g01pGD3l;
 + dkim-adsp=none
  
  
Zeile 985: Zeile 999:
   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**   * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
- 
-~~DISCUSSION~~ 
- 
  
  • centos/mail_c7/spam_9.1418830235.txt.gz
  • Zuletzt geändert: 17.12.2014 15:30.
  • von django