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:postfix3_8 [09.02.2019 20:14. ] – [SASL mit Dovecot] djangocentos:mail_c7:postfix3_8 [20.05.2021 07:53. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 8: Zeile 8:
  
 Beide Lösungen sind vom Grundsatz her gleich aufgebaut - basieren doch beide auf grundlegende folgende Struktur. Beide Lösungen sind vom Grundsatz her gleich aufgebaut - basieren doch beide auf grundlegende folgende Struktur.
-<uml width=300 center title="Die 3 SASLayer">+<uml>
   skinparam defaultFontName Courier   skinparam defaultFontName Courier
  
Zeile 40: Zeile 40:
 Dass dies nicht unbedingt stimmt, wollen wir uns an Hand des nachfolgenden Konfigurationsbeispiels genauer ansehen. Werfen wir als erstes noch einmal kurz einen Blick auf das zuvor gezeigte Schaubild - zum besseren Verständnis, welche Teile welche Aufgaben wahrnehmen und wo diese Teile ggf. konfiguriert werden, wurde dieses etwas erweitert. Dass dies nicht unbedingt stimmt, wollen wir uns an Hand des nachfolgenden Konfigurationsbeispiels genauer ansehen. Werfen wir als erstes noch einmal kurz einen Blick auf das zuvor gezeigte Schaubild - zum besseren Verständnis, welche Teile welche Aufgaben wahrnehmen und wo diese Teile ggf. konfiguriert werden, wurde dieses etwas erweitert.
  
-<uml width=900 center title="SASL-Implementierung mit Hilfe der Cyrus SASL Library">+<uml>
   skinparam defaultFontName Courier   skinparam defaultFontName Courier
  
Zeile 461: Zeile 461:
 Werfen wir auch hier erst einen Blick auf das Eingangs gezeigte **[[centos:mail_c7:mta_8|Schaubild]]** - zum besseren Verständnis, welche Teile welche Aufgaben wahrnehmen und wo diese Teile ggf. konfiguriert werden, wurde auch dieses entsprechend erweitert. Werfen wir auch hier erst einen Blick auf das Eingangs gezeigte **[[centos:mail_c7:mta_8|Schaubild]]** - zum besseren Verständnis, welche Teile welche Aufgaben wahrnehmen und wo diese Teile ggf. konfiguriert werden, wurde auch dieses entsprechend erweitert.
  
-<uml width=900 center title="SASL-Implementierung mit Hilfe von Dovecot">+<uml>
   skinparam defaultFontName Courier   skinparam defaultFontName Courier
  
Zeile 546: Zeile 546:
  
 ==== Konfiguration ==== ==== Konfiguration ====
-<WRAP center round todo 30%> 
-FIXME FIXME FIXME  
-  * //**... working in progres!**//   
-FIXME FIXME FIXME  
-</WRAP> 
 Hinweise zur Konfiguration findet man in der **[[http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL|Dokuseite]]** von Dovecot. Hinweise zur Konfiguration findet man in der **[[http://wiki2.dovecot.org/HowTo/PostfixAndDovecotSASL|Dokuseite]]** von Dovecot.
  
Zeile 562: Zeile 557:
 #   gss-spnego #   gss-spnego
 # NOTE: See also disable_plaintext_auth setting. # NOTE: See also disable_plaintext_auth setting.
-# Django : 2014-05-23+# Django : 2019-02-09
 # default: auth_mechanisms = plain # default: auth_mechanisms = plain
 auth_mechanisms = plain login digest-md5 cram-md5 ntlm auth_mechanisms = plain login digest-md5 cram-md5 ntlm
Zeile 574: Zeile 569:
 <code>... <code>...
  
-# Django : 2014-07-30+# Django : 2019-02-09
 # Auswahl des Authentifizierungsmechanismus # Auswahl des Authentifizierungsmechanismus
 # default: !include auth-system.conf.ext # default: !include auth-system.conf.ext
Zeile 581: Zeile 576:
 </code> </code>
  
-Was uns eigentlich an Konfiguration auf Seiten des Dovecot-Servers nocht fehlt ist die Schnittstelle des SASL-Proxies, also dem Punkt an dem der Postfix Mailserver die Authentifizierungsanfrage an den Dovecot-Server stellen kann. Diese Konfiguration erfolgt mit Hilfe der Konfigurationsdatei //**/etc/dovecot/conf.d/10-master.conf**//.+Was uns eigentlich an Konfiguration auf Seiten des Dovecot-Servers noch fehlt ist die Schnittstelle des SASL-Proxies, also dem Punkt an dem der Postfix Mailserver die Authentifizierungsanfrage an den Dovecot-Server stellen kann. Diese Konfiguration erfolgt mit Hilfe der Konfigurationsdatei //**/etc/dovecot/conf.d/10-master.conf**//.
    # vim /etc/dovecot/conf.d/10-master.conf    # vim /etc/dovecot/conf.d/10-master.conf
  
Zeile 601: Zeile 596:
   # permissions (e.g. 0777 allows everyone full permissions).   # permissions (e.g. 0777 allows everyone full permissions).
   unix_listener auth-userdb {   unix_listener auth-userdb {
-    # Django : 2014-08-08+    # Django : 2019-02-09
     # Authentication Socket für userdb-Anfragen bei Nutzung von shared folders     # Authentication Socket für userdb-Anfragen bei Nutzung von shared folders
     # default: #mode = 0666     # default: #mode = 0666
Zeile 618: Zeile 613:
   #user = $default_internal_user   #user = $default_internal_user
  
-  # Django : 2014-05-23+  # Django : 2019-02-09
   # default: unset   # default: unset
   # Authentifizierungsport 3659 für Postfix Frontend-Mailserver definiert   # Authentifizierungsport 3659 für Postfix Frontend-Mailserver definiert
Zeile 637: Zeile 632:
 Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload des Dovecot-Daemon durch. Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload des Dovecot-Daemon durch.
    # systemctl reload dovecot.service    # systemctl reload dovecot.service
- 
- 
  
 ==== Paketfilter ==== ==== Paketfilter ====
 Damit unser Postfix-MTA (smtp.dmz.nausch.org) auch Authentifizierungsanfragen an unseren Dovecot-MDA (imap.dmz.nausch.org) stellen kann, muss dieser den Authentifizierungs-Port **3659** erreichen können. Wir erstellen also eine passende Regel bei unserem Paketfilter/Firewall. Damit unser Postfix-MTA (smtp.dmz.nausch.org) auch Authentifizierungsanfragen an unseren Dovecot-MDA (imap.dmz.nausch.org) stellen kann, muss dieser den Authentifizierungs-Port **3659** erreichen können. Wir erstellen also eine passende Regel bei unserem Paketfilter/Firewall.
  
-   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.87/32" port protocol="tcp" port="3659" destination address="10.0.0.77/32" accept"+   # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="10.0.0.80/32" port protocol="tcp" port="3659" destination address="10.0.0.77/32" accept"
  
 Zur Aktivierung führen wir einen Reload des Firewall-Daemon durch. Zur Aktivierung führen wir einen Reload des Firewall-Daemon durch.
Zeile 654: Zeile 647:
 <code>Chain IN_public_allow (1 references) <code>Chain IN_public_allow (1 references)
  pkts bytes target     prot opt in     out     source               destination           pkts bytes target     prot opt in     out     source               destination         
-    0     0 ACCEPT     tcp  --  *      *       10.0.0.87            10.0.0.77            tcp dpt:3659 ctstate NEW +    0     0 ACCEPT     tcp  --  *      *       10.0.0.80            10.0.0.77            tcp dpt:3659 ctstate NEW 
-    0     0 ACCEPT     tcp  --  *      *       10.0.0.87            10.0.0.77            tcp dpt:24 ctstate NEW+    0     0 ACCEPT     tcp  --  *      *       10.0.0.80            10.0.0.77            tcp dpt:24 ctstate NEW
     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           tcp dpt:22 ctstate NEW     0     0 ACCEPT     tcp  --  *      *       0.0.0.0/           0.0.0.0/           tcp dpt:22 ctstate NEW
 </code> </code>
  
 ==== Postfix-Konfiguration ==== ==== Postfix-Konfiguration ====
-Die Konfiguration von SASL-Auth beim Postfix MTA gestaltet sich ähnlich einfach, wie beim zuvor vorgestellten Konfigurationsbeispiel bei der **[[centos:mail_c7:mta_8?&#postfix-konfiguration|Cyrus-SASL-Implementierung]]**. Detailierte Hinweise hierzu finden wir in der entsprechenden **[[http://www.postfix.org/SASL_README.html|SASL-Dokumentation]]** von Postfix. +Die Konfiguration von SASL-Auth beim Postfix MTA gestaltet sich ähnlich einfach, wie beim zuvor vorgestellten Konfigurationsbeispiel bei der **[[#postfix-konfiguration|Cyrus-SASL-Implementierung]]**. Detailierte Hinweise hierzu finden wir in der entsprechenden **[[http://www.postfix.org/SASL_README.html|SASL-Dokumentation]]** von Postfix. 
  
 Wir legen uns eine eigene Sektion in der Postfix-Konfigurationsdatei //**/etc/postfix/main.cf**// an. Wir legen uns eine eigene Sektion in der Postfix-Konfigurationsdatei //**/etc/postfix/main.cf**// an.
Zeile 669: Zeile 662:
 ## SASL-Authentifizierung ## SASL-Authentifizierung
 # #
-# Django : 2014-10-27 SASL Authentifizierung aktivieren+# Django : 2019-02-09 SASL Authentifizierung aktivieren
 #          http://www.postfix.org/SASL_README.html #          http://www.postfix.org/SASL_README.html
 # default: smtpd_sasl_auth_enable = no # default: smtpd_sasl_auth_enable = no
 smtpd_sasl_auth_enable = yes smtpd_sasl_auth_enable = yes
  
-# Django : 2014-10-27 Statt des Default SASL-Mechanismus "cyrus" wollen wir die+# Django : 2019-02-09 Statt des Default SASL-Mechanismus "cyrus" wollen wir die
 #          SALS-Implementierung von Dovecot nutzen. #          SALS-Implementierung von Dovecot nutzen.
 #          http://www.postfix.org/postconf.5.html#smtpd_sasl_type #          http://www.postfix.org/postconf.5.html#smtpd_sasl_type
Zeile 680: Zeile 673:
 smtpd_sasl_type = dovecot smtpd_sasl_type = dovecot
  
-# Django : 2014-10-27 Definition wie Postfix das Authentifizierungsbackend+# Django : 2019-02-09 Definition wie Postfix das Authentifizierungsbackend
 #          erreichen kann; dies ist entweder eine Datei mit weiteren  #          erreichen kann; dies ist entweder eine Datei mit weiteren 
 #          Konfigurationsdetails oder ein UNIX oder TCP-Socket #          Konfigurationsdetails oder ein UNIX oder TCP-Socket
Zeile 687: Zeile 680:
 smtpd_sasl_path = inet:imap.dmz.nausch.org:3659 smtpd_sasl_path = inet:imap.dmz.nausch.org:3659
  
-# Django : 2014-10-27 Obsolete Authentifizierungsbefehle (RFC 4954) unter-+# Django : 2019-02-09 Obsolete Authentifizierungsbefehle (RFC 4954) unter-
 #          stützen, um so Clients wie z.B. MicroSoft Outlook Express version 4 #          stützen, um so Clients wie z.B. MicroSoft Outlook Express version 4
 #          oder MicroSoft Exchange Version 5.0 die Authentifizierungsmöglichkeit #          oder MicroSoft Exchange Version 5.0 die Authentifizierungsmöglichkeit
Zeile 695: Zeile 688:
 broken_sasl_auth_clients = yes broken_sasl_auth_clients = yes
  
-# Django : 2014-10-27 Definition des Namen des lokalen SASL Authentifizierungs+# Django : 2019-02-09 Definition des Namen des lokalen SASL Authentifizierungs
 #          Realm. #          Realm.
 #          http://www.postfix.org/postconf.5.html#smtpd_sasl_local_domain #          http://www.postfix.org/postconf.5.html#smtpd_sasl_local_domain
 # default: smtpd_sasl_local_domain = # default: smtpd_sasl_local_domain =
  
-# Django : 2014-10-27 Postfix SMTP Daemon SASL Sicherheitsoptionen+# Django : 2019-02-09 Postfix SMTP Daemon SASL Sicherheitsoptionen
 #          Welche Authentifizierungsmechanismen soll der Postfix SMTP-Daemon #          Welche Authentifizierungsmechanismen soll der Postfix SMTP-Daemon
 #          den Clients anbieten? #          den Clients anbieten?
Zeile 706: Zeile 699:
 # default: smtpd_sasl_security_options = noanonymous # default: smtpd_sasl_security_options = noanonymous
  
-# Django : 2014-10-27 SASL Authentifizierung Sicherheitsoptionen, die er+# Django : 2019-02-09 SASL Authentifizierung Sicherheitsoptionen, die er
 #          SMTP-Daemon für TLS verschlüsselte SMTP-Verbindungen nutzen soll. #          SMTP-Daemon für TLS verschlüsselte SMTP-Verbindungen nutzen soll.
 #          http://www.postfix.org/postconf.5.html #          http://www.postfix.org/postconf.5.html
Zeile 714: Zeile 707:
 </code> </code>
  
-Der Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, sich authentifizieren können. Man erkennt die gesetzte Option an der zweiten Zeile ''250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM'' bei den **ESMTP**-Rückmeldungen beim SMTP-Dialog nach dem sich der Client mit ''EHLO <hostname>'' gemeldet hat.+Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, sich authentifizieren können. Man erkennt die gesetzte Option an der zweiten Zeile ''250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM'' bei den **ESMTP**-Rückmeldungen beim SMTP-Dialog nach dem sich der Client mit ''EHLO <hostname>'' gemeldet hat.
  
 Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload unseres Daemon durch. Zur Aktivierung unserer Konfigurationsänderungen führen wir nun einen Reload unseres Daemon durch.
    # systemctl reload postfix    # systemctl reload postfix
  
-Nachdem wir die Konfiguration von **cyrus-sasl** und unseres **postfix**-Daemon erfolgreich abgeschlossen haben, können wir uns daran machen, die **[[centos:mail_c7:mta_8?&#testen|Installation zu testen]]**.+Nachdem wir die Konfiguration von **cyrus-sasl** und unseres **postfix**-Daemon erfolgreich abgeschlossen haben, können wir uns daran machen, die **[[#testen|Installation zu testen]]**.
  
 +===== SASL und Submission/Relaying =====
 +Damit nun unsere authentifizierten Nutzer, wie auch Clients aus unserem eigenen Netz oder auch z.B. der Backupmailserver auch über unseren Server, Empfänger fremder Maildomains Nachrichten schicken können (relayen) passen wir noch die Konfiguration unseres Mailservers an.
 +==== Relaying ====
 +In der Hauptkonfigurationsdatei //**/etc/postfix/main.cf**// legen wir eine neue Section **SMTP Relay Restrictions** an.
 +   # vim /etc/postfix/main.cf
 +<code bash>... 
  
-===== Testen ===== +################################################################################ 
-==== Authentifizierungsoptionen ==== +## SMTP Relay Restrictions 
-Als erstes testen wir, ob und ggf. welche SASL-Mechanismen unser POstfix SMTP-Server nun anbietet. Dazu öffnet wir eine SMTP-Sitzung und melden uns beim SMTP-Daemon mit dem "Begrüßungsbefehl" //**EHLO**//. Der Server offeriert uns dann die SASL-Mechanismendie er dem Client anbietet+
-   telnet ::1 25 +# Django : 2019-02-09 Definitionwer über unseren MX relayen darf oder nicht.  
-<code>Trying ::1... +         http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions 
-Connected to ::1. +# defaultsmtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination 
-Escape character is '^]'. +# 
-220 mx01.nausch.org ESMTP Postfix +smtpd_relay_restrictions = 
-EHLO foo +# Unsere eigenen Nutzer zulassen-/erlauben 
-250-mx01.nausch.org +           permit_sasl_authenticated 
-250-PIPELINING +           permit_mynetworks 
-250-SIZE 52428800 +# Backupserver (MX) erlauben 
-250-ETRN +           permit_mx_backup 
-250-STARTTLS +# alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen 
-250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM +           reject_unauth_destination 
-250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM + 
-250-ENHANCEDSTATUSCODES +...
-250 8BITMIME +
-quit +
-221 2.0.0 Bye +
-Connection closed by foreign host.+
 </code> </code>
  
-An der zweiten Zeile ''250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM'' bei den **ESMTP**-Rückmeldungen beim SMTP-Dialog, nach dem sich der Client mit ''EHLO <hostname>'' gemeldet hat, sehen wir den gesetzten **broken_sasl_auth_clients = yes**. Der Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, sich authentifizieren können+==== Submission ==== 
 +Auch bei Submission auf Port **587** setzen wir die Option **permit_sasl_authenticated**. 
 +   # vim /etc/postfix/master.cf
  
-==== Test der Authentifizierung ====+<code bash>... 
 + 
 +# Django : 2019-02-09 Submission auf Port 587 geöffnet 
 +submission inet n                               smtpd 
 +  -o syslog_name=postfix/submission 
 +  -o smtpd_tls_security_level=encrypt 
 +  -o smtpd_sasl_auth_enable=yes 
 +  -o smtpd_reject_unlisted_recipient=no 
 +  -o smtpd_etrn_restrictions=reject 
 +  #-o smtpd_client_restrictions=$mua_client_restrictions 
 +  #-o smtpd_helo_restrictions=$mua_helo_restrictions 
 +  #-o smtpd_sender_restrictions=$mua_sender_restrictions 
 +  -o smtpd_recipient_restrictions= 
 +  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject 
 +  -o milter_macro_daemon_name=ORIGINATING 
 +  -o mydestination=lists.nausch.org,fax.nausch.org 
 + 
 +... 
 +</code> 
 + 
 +===== Testen =====
 Zum leichteren Testen der Authentifizierung greifen wir auf das "Schweitzer Taschenmesser für SMTP" kurz **[[http://www.jetmore.org/john/code/swaks/|SWAKS]]** zurück. Vor allem beim Testen der **[[http://de.wikipedia.org/wiki/Challenge-Response-Authentifizierung|Challenge-Response-Authentifizierung]]** unterstützt uns **swaks** ebenso, wie beim Tippen der einzelnen SMTP-Befehle. Zum leichteren Testen der Authentifizierung greifen wir auf das "Schweitzer Taschenmesser für SMTP" kurz **[[http://www.jetmore.org/john/code/swaks/|SWAKS]]** zurück. Vor allem beim Testen der **[[http://de.wikipedia.org/wiki/Challenge-Response-Authentifizierung|Challenge-Response-Authentifizierung]]** unterstützt uns **swaks** ebenso, wie beim Tippen der einzelnen SMTP-Befehle.
  
-Nach Aufruf von **swaks** werden wir nach dem zugehörigen Passwort gefragt. Anschließend sehen wir den SMTP-Dialog zwischen dem Cilene "swaks" und dem Server "postfix".+==== Authentifizierungsoptionen ==== 
 +Als erstes testen wir, ob und ggf. welche SASL-Mechanismen unser Postfix SMTP-Server nun anbietet. Dazu geben wir beim nachfolgenden Programmaufruf bewusst erst einmal ein falsches Passwort an, da wir unseren Blick erst einmal auf die angebotenen SASL-Mechanismen werfen wollen.   
 +   # swaks --to django@nausch.org --from django@mailserver.guru --auth CRAM-MD5 --auth-user django@mailserver.guru \ 
 +           --auth-password youcanfullytrustyourgovernment! --protocol ESMTPS --header-X-Test "test email" --server 10.0.0.80:587 
 + 
 +<code>=== Trying 10.0.0.80:587... 
 +=== Connected to 10.0.0.80. 
 +<-  220 mx1.nausch.org ESMTP Postfix 
 + -> EHLO vml000080.dmz.nausch.org 
 +<-  250-mx1.nausch.org 
 +<-  250-PIPELINING 
 +<-  250-SIZE 52428800 
 +<-  250-ETRN 
 +<-  250-STARTTLS 
 +<-  250-ENHANCEDSTATUSCODES 
 +<-  250-8BITMIME 
 +<-  250-DSN 
 +<-  250 SMTPUTF8 
 + -> STARTTLS 
 +<-  220 2.0.0 Ready to start TLS 
 +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
 +=== TLS no local certificate set 
 +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
 + ~> EHLO vml000080.dmz.nausch.org 
 +<~  250-mx1.nausch.org 
 +<~  250-PIPELINING 
 +<~  250-SIZE 52428800 
 +<~  250-ETRN 
 +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-ENHANCEDSTATUSCODES 
 +<~  250-8BITMIME 
 +<~  250-DSN 
 +<~  250 SMTPUTF8 
 + ~> AUTH CRAM-MD5 
 +<~  334 PDI1NTEzNjUyNDE3Njk3MDguMTU0OTc4MzcyN0B2bWwwMDAwNzcuZG16Lm5hdXNjaC5vcmc+ 
 + ~> ZGphbmdvQG1haWxzZXJ2ZXIuZ3VydSA4NTEzMzE4M2YxZjhiZDRjNzc2N2Q2MGM2ODc4ODhmYw== 
 +<~* 535 5.7.8 Error: authentication failed: PDI1NTEzNjUyNDE3Njk3MDguMTU0OTc4MzcyN0B2bWwwMDAwNzcuZG16Lm5hdXNjaC5vcmc+. Contact your postmaster/admin for technical assistance. He can achieve our postmaster via email: postmaster@nausch.org or via fax: +49 8121 883179. In any case, please provide the following information in your problem report: This error message, time (Feb 10 08:28:49), client (10.0.0.80) and server (mx1.nausch.org). 
 +*** No authentication type succeeded 
 + ~> QUIT 
 +<~  221 2.0.0 Bye 
 +=== Connection closed with remote host.</code> 
 + 
 +Natürlich wird der erfolglose Verbindungsaufbau auch entsprechend mit einem **//warning//** im Maillog protokolliert. 
 + 
 +<code>Feb 10 08:28:47 vml000080 postfix/submission/smtpd[27078]: connect from vml000080.dmz.nausch.org[10.0.0.80] 
 +Feb 10 08:28:47 vml000080 postfix/submission/smtpd[27078]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
 +Feb 10 08:28:49 vml000080 postfix/submission/smtpd[27078]: warning: vml000080.dmz.nausch.org[10.0.0.80]: SASL CRAM-MD5 authentication failed: PDI1NTEzNjUyNDE3Njk3MDguMTU0OTc4MzcyN0B2bWwwMDAwNzcuZG16Lm5hdXNjaC5vcmc+ 
 +Feb 10 08:28:49 vml000080 postfix/submission/smtpd[27078]: disconnect from vml000080.dmz.nausch.org[10.0.0.80] ehlo=2 starttls=1 auth=0/1 quit=1 commands=4/5</code> 
 + 
 +Unser Server bietet uns also folgende Authentifizierungs-Mechanismen an: 
 +  * PLAIN  
 +  * LOGIN  
 +  * DIGEST-MD5  
 +  * CRAM-MD5  
 +  * NTLM 
 + 
 +An der zweiten Zeile ''250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM'' bei den **ESMTP**-Rückmeldungen beim SMTP-Dialog, nach dem sich der Client mit ''EHLO <hostname>'' gemeldet hat, sehen wir den gesetzten **broken_sasl_auth_clients = yes**. Der Wert **yes** beim Konfigurationsparameter **broken_sasl_auth_clients** bewirkt, dass auch Clients wie z.B. MicroSoft Outlook Express Version 4 oder MicroSoft Exchange version 5.0, die die obsoleten Authentifizierungsbefehle (RFC 4954) unterstützen, sich authentifizieren können.  
 + 
 +==== Test der Authentifizierung ==== 
 +Nun testen wir die unterschiedlichen Authentifizierungsvarianten, die der Server unseren Clients anbietet.  
 +<WRAP center round tip 80%> 
 +Bei den einzelnen Tests geben wir aber das Passwort __nicht__ als Option in der Befehlszeile mit, schließlich wollen wir ja nicht, dass in der bash-History dieses entsprechend auffindbar ist! 
 +</WRAP> 
 +=== PLAIN === 
 +Als erstes testen wir den **PLAIN**-Mechanismus: 
 +Nach Aufruf von **swaks** werden wir nach dem zugehörigen Passwort gefragt. Anschließend sehen wir den SMTP-Dialog zwischen dem Client "swaks" und dem Server "postfix".
  
-   # swaks --to django@nausch.org --from michael@nausch.org --auth LOGIN --auth-user michael@nausch.org --header-X-Test "test email" --server 10.0.0.87+   # swaks --to django@nausch.org --from michael@nausch.org --auth PLAIN --auth-user michael@nausch.org --protocol ESMTPS \\ 
 +           --header-X-Test "test email" --server 10.0.0.80:587
  
-   Password: DAx1d13g31l354u!+  Password: DAx1d13g31l354u!
  
-<code>=== Trying 10.0.0.87:25... +<code>=== Trying 10.0.0.80:587... 
-=== Connected to 10.0.0.87+=== Connected to 10.0.0.80
-<-  220 mx01.nausch.org ESMTP Postfix +<-  220 mx1.nausch.org ESMTP Postfix 
- -> EHLO vml000087.dmz.nausch.org + -> EHLO vml000080.dmz.nausch.org 
-<-  250-mx01.nausch.org+<-  250-mx1.nausch.org
 <-  250-PIPELINING <-  250-PIPELINING
 <-  250-SIZE 52428800 <-  250-SIZE 52428800
 <-  250-ETRN <-  250-ETRN
 <-  250-STARTTLS <-  250-STARTTLS
-<-  250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
-<-  250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
 <-  250-ENHANCEDSTATUSCODES <-  250-ENHANCEDSTATUSCODES
 <-  250-8BITMIME <-  250-8BITMIME
-<-  250 DSN +<-  250-DSN 
- -> AUTH LOGIN +<-  250 SMTPUTF8 
-<-  334 VXNlcm5hbWU6 + -> STARTTLS 
- -> bWljaGFl69BuYXVzY2gub3Jn +<-  220 2.0.0 Ready to start TLS 
-<-  334 UGFzc3dvcQ69 +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
- -> RGQ0bWRkMyE+=== TLS no local certificate set 
-<-  235 2.7.0 Authentication successful +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
- -> MAIL FROM:<michael@nausch.org> + ~EHLO vml000080.dmz.nausch.org 
-< 250 2.1.0 Ok +<~  250-mx1.nausch.org 
- -> RCPT TO:<django@nausch.org> +<~  250-PIPELINING 
-< 250 2.1.5 Ok +<~  250-SIZE 52428800 
- -> DATA +<~  250-ETRN 
-< 354 End data with <CR><LF>.<CR><LF> +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> Date: Tue28 Oct 2014 22:59:26 +0100 +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> To: django@nausch.org +<~  250-ENHANCEDSTATUSCODES 
- -> From: michael@nausch.org +<~  250-8BITMIME 
- -> Subject: test Tue28 Oct 2014 22:59:26 +0100 +<~  250-DSN 
- -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/ +<~  250 SMTPUTF8 
- -> X-Test: test email + ~> AUTH PLAIN AG1pY2hhZWxAbmF1c2NoLm9yZwBEQXgxZDEzZzMxbDM1NHUh 
- ->  +<~  235 2.7.0 Authentication successful 
- -> This is a test mailing + ~> MAIL FROM:<michael@nausch.org> 
- ->  +< 250 2.1.0 Ok 
- -> . + ~> RCPT TO:<django@nausch.org> 
-< 250 2.0.0 Ok: queued as DE611C00088 +< 250 2.1.5 Ok 
- -> QUIT + ~> DATA 
-< 221 2.0.0 Bye+< 354 End data with <CR><LF>.<CR><LF> 
 + ~> Date: Sun10 Feb 2019 09:40:26 +0100 
 + ~> To: django@nausch.org 
 + ~> From: michael@nausch.org 
 + ~> Subject: test Sun10 Feb 2019 09:40:26 +0100 
 + ~> Message-Id: <20190210094026.027182@vml000080.dmz.nausch.org> 
 + ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ 
 + ~> X-Test: test email 
 + ~>  
 + ~> This is a test mailing 
 + ~>  
 + ~> . 
 +< 250 2.0.0 Ok: queued as 0F3B560008B 
 + ~> QUIT 
 +< 221 2.0.0 Bye
 === Connection closed with remote host. === Connection closed with remote host.
 </code> </code>
Zeile 801: Zeile 897:
  
    # less /var/log/maillog    # less /var/log/maillog
-<code>Oct 28 22:59:34 vml000087 postfix/smtpd[27693]: connect from vml000087.dmz.nausch.org[10.0.0.87+<code>Feb 10 09:40:35 vml000080 postfix/submission/smtpd[27183]: connect from vml000080.dmz.nausch.org[10.0.0.80
-Oct 28 22:59:34 vml000087 postfix/smtpd[27693]: DE611C00088: client=vml000087.dmz.nausch.org[10.0.0.87], sasl_method=LOGIN, sasl_username=michael@nausch.org +Feb 10 09:40:36 vml000080 postfix/submission/smtpd[27183]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
-Oct 28 22:59:34 vml000087 postfix/cleanup[27698]: DE611C00088: message-id=<20141028215934.DE611C00088@mx01.nausch.org> +Feb 10 09:40:36 vml000080 postfix/submission/smtpd[27183]: 0F3B560008B: client=vml000080.dmz.nausch.org[10.0.0.80], sasl_method=PLAIN, sasl_username=michael@nausch.org 
-Oct 28 22:59:34 vml000087 postfix/qmgr[27526]: DE611C00088: from=<michael@nausch.org>, size=502, nrcpt=1 (queue active) +Feb 10 09:40:36 vml000080 postfix/cleanup[27187]: 0F3B560008B: message-id=<20190210094026.027182@vml000080.dmz.nausch.org> 
-Oct 28 22:59:34 vml000087 postfix/smtpd[27693]: disconnect from vml000087.dmz.nausch.org[10.0.0.87] +Feb 10 09:40:36 vml000080 postfix/qmgr[26334]: 0F3B560008B: from=<michael@nausch.org>, size=527, nrcpt=1 (queue active) 
-Oct 28 22:59:35 vml000087 postfix/lmtp[27699]: DE611C00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.38, delays=0.06/0.01/0/0.31, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> l2nwKlYRUFSFQwAArK2B9Q Saved) +Feb 10 09:40:36 vml000080 postfix/submission/smtpd[27183]: disconnect from vml000080.dmz.nausch.org[10.0.0.80ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
-Oct 28 22:59:35 vml000087 postfix/qmgr[27526]: DE611C00088: removed+
 </code> </code>
  
-**swaks** beherrscht natürlich auch das Verfahren **CRAM-MD5**: +=== LOGIN === 
-   # swaks --to django@nausch.org --from michael@nausch.org --auth CRAM-MD5 --auth-user michael@nausch.org --header-X-Test "test email" --server 10.0.0.87+Als nächstes testen wir die Variante LOGIN hier wird im Gegensatz zum vorheringen Auth-Mechanismus PLAIN die Anmeldekennung und das zugehörige Passwort zusammen in einem String sondern separat übergeben.
  
-   PasswordDAx1d13g31l354u!+   # swaks --to django@nausch.org --from michael@nausch.org --auth PLAIN --auth-user michael@nausch.org --protocol ESMTPS \\ 
 +           --header-X-Test "test email" --server 10.0.0.80:587
  
-<code>=== Trying 10.0.0.87:25... +  Password: DAx1d13g31l354u! 
-=== Connected to 10.0.0.87+ 
-<-  220 mx01.nausch.org ESMTP Postfix +<code>=== Trying 10.0.0.80:587... 
- -> EHLO vml000087.dmz.nausch.org +=== Connected to 10.0.0.80
-<-  250-mx01.nausch.org+<-  220 mx1.nausch.org ESMTP Postfix 
 + -> EHLO vml000080.dmz.nausch.org 
 +<-  250-mx1.nausch.org
 <-  250-PIPELINING <-  250-PIPELINING
 <-  250-SIZE 52428800 <-  250-SIZE 52428800
 <-  250-ETRN <-  250-ETRN
 <-  250-STARTTLS <-  250-STARTTLS
-<-  250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
-<-  250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
 <-  250-ENHANCEDSTATUSCODES <-  250-ENHANCEDSTATUSCODES
 <-  250-8BITMIME <-  250-8BITMIME
-<-  250 DSN +<-  250-DSN 
- -> AUTH CRAM-MD5 +<-  250 SMTPUTF8 
-<-  334 PDI2OTAzMjcP1ffp4ff0NzA1MUBteDAxLm5hdXNjaC5vcmc+ + -> STARTTLS 
- -> bWljaGP1ffp4ffFlbEBuYXVzY2MwNzczOTg2ZmQ1ZjP1ffp4ffUzOWNkOWE0YTM1ZGMx +<-  220 2.0.0 Ready to start TLS 
-<-  235 2.7.0 Authentication successful +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
- -> MAIL FROM:<michael@nausch.org> +=== TLS no local certificate set 
-< 250 2.1.0 Ok +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
- -> RCPT TO:<django@nausch.org> + ~> EHLO vml000080.dmz.nausch.org 
-< 250 2.1.5 Ok +<~  250-mx1.nausch.org 
- -> DATA +<~  250-PIPELINING 
-< 354 End data with <CR><LF>.<CR><LF> +<~  250-SIZE 52428800 
- -> Date: Tue28 Oct 2014 22:51:47 +0100 +<~  250-ETRN 
- -> To: django@nausch.org +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> From: michael@nausch.org +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> Subject: test Tue28 Oct 2014 22:51:47 +0100 +<~  250-ENHANCEDSTATUSCODES 
- -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/ +<~  250-8BITMIME 
- -> X-Test: test email +<~  250-DSN 
- ->  +<~  250 SMTPUTF8 
- -> This is a test mailing + ~> AUTH LOGIN 
- ->  +<~  334 VXNlcm5hbWU6 
- -> . + ~> bWljaGFlbEBuYXVzY2gub3Jn 
-< 250 2.0.0 Ok: queued as CCB35C00088 +<~  334 UGFzc3dvcmQ6 
- -> QUIT + ~> REF4MWQxM2czMWwzNTR1IQ== 
-< 221 2.0.0 Bye +<~  235 2.7.0 Authentication successful 
-=== Connection closed with remote host. + ~> MAIL FROM:<michael@nausch.org> 
-</code>+< 250 2.1.0 Ok 
 + ~> RCPT TO:<django@nausch.org> 
 +< 250 2.1.5 Ok 
 + ~> DATA 
 +< 354 End data with <CR><LF>.<CR><LF> 
 + ~> Date: Sun10 Feb 2019 10:02:32 +0100 
 + ~> To: django@nausch.org 
 + ~> From: michael@nausch.org 
 + ~> Subject: test Sun10 Feb 2019 10:02:32 +0100 
 + ~> Message-Id: <20190210100232.027213@vml000080.dmz.nausch.org> 
 + ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ 
 + ~> X-Test: test email 
 + ~>  
 + ~> This is a test mailing 
 + ~>  
 + ~> . 
 +< 250 2.0.0 Ok: queued as 27AC960008B 
 + ~> QUIT 
 +< 221 2.0.0 Bye 
 +=== Connection closed with remote host.</code>
  
-Maillog: +Im Maillog wird die erfolgreiche Authentifizierung und die weitere Verarbeitung unserer Mail entsprechend dokumentiert. 
-<code>Oct 28 22:51:51 vml000087 postfix/smtpd[27669]: connect from vml000087.dmz.nausch.org[10.0.0.87+ 
-Oct 28 22:51:51 vml000087 postfix/smtpd[27669]: CCB35C00088: client=vml000087.dmz.nausch.org[10.0.0.87], sasl_method=CRAM-MD5, sasl_username=michael@nausch.org +   # less /var/log/maillog 
-Oct 28 22:51:51 vml000087 postfix/cleanup[27674]: CCB35C00088: message-id=<20141028215151.CCB35C00088@mx01.nausch.org> +<code>Feb 10 10:02:39 vml000080 postfix/submission/smtpd[27214]: connect from vml000080.dmz.nausch.org[10.0.0.80
-Oct 28 22:51:51 vml000087 postfix/qmgr[27526]: CCB35C00088: from=<michael@nausch.org>, size=502, nrcpt=1 (queue active) +Feb 10 10:02:39 vml000080 postfix/submission/smtpd[27214]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
-Oct 28 22:51:51 vml000087 postfix/smtpd[27669]: disconnect from vml000087.dmz.nausch.org[10.0.0.87+Feb 10 10:02:39 vml000080 postfix/submission/smtpd[27214]: 27AC960008B: client=vml000080.dmz.nausch.org[10.0.0.80], sasl_method=LOGIN, sasl_username=michael@nausch.org 
-Oct 28 22:51:51 vml000087 postfix/lmtp[27675]: CCB35C00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.12, delays=0.04/0.02/0/0.06, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> 3B0zBGIPUFTOQgAArK2B9Q Saved+Feb 10 10:02:39 vml000080 postfix/cleanup[27218]: 27AC960008B: message-id=<20190210100232.027213@vml000080.dmz.nausch.org> 
-Oct 28 22:51:51 vml000087 postfix/qmgr[27526]: CCB35C00088: removed+Feb 10 10:02:39 vml000080 postfix/qmgr[26334]: 27AC960008B: from=<michael@nausch.org>, size=527, nrcpt=1 (queue active) 
 +Feb 10 10:02:39 vml000080 postfix/submission/smtpd[27214]: disconnect from vml000080.dmz.nausch.org[10.0.0.80ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8 
 +Feb 10 10:02:40 vml000080 postfix/smtp[27221]: 27AC960008B: to=<django@nausch.org>, relay=10.0.0.67[10.0.0.67]:10024, delay=0.86, delays=0.03/0.03/0.01/0.8, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[10.0.0.87]:10025): 250 2.0.0 Ok: queued as F078AC0008A
 +Feb 10 10:02:40 vml000080 postfix/qmgr[26334]: 27AC960008B: removed
 </code> </code>
  
-Zu guter Letzt testen wir noch das Verfahren **NTLM**. +=== DIGEST-MD5 === 
-   # swaks --to django@nausch.org --from michael@nausch.org --auth NTLM --auth-user michael@nausch.org --header-X-Test "test email" --server 10.0.0.87+Als nächstes testen wir die Variante [[https://de.wikipedia.org/wiki/Message-Digest_Algorithm_5|DIGEST-MD5]] hier wird im Gegensatz zu den beiden vorherigen Varianten nicht mehr der Anmeldenamen und das Passwort BASE64 kodiert übertragen, sondern ein mit einem Einmalhashwert codiert übertragen.
  
-   PasswordDAx1d13g31l354u!+   # swaks --to django@nausch.org --from michael@nausch.org --auth DIGEST-MD5 --auth-user michael@nausch.org --protocol ESMTPS \\ 
 +           --header-X-Test "test email" --server 10.0.0.80:587
  
-<code>=== Trying 10.0.0.87:25... +  Password: DAx1d13g31l354u! 
-=== Connected to 10.0.0.87+ 
-<-  220 mx01.nausch.org ESMTP Postfix +<code>=== Trying 10.0.0.80:587... 
- -> EHLO vml000087.dmz.nausch.org +=== Connected to 10.0.0.80
-<-  250-mx01.nausch.org+<-  220 mx1.nausch.org ESMTP Postfix 
 + -> EHLO vml000080.dmz.nausch.org 
 +<-  250-mx1.nausch.org
 <-  250-PIPELINING <-  250-PIPELINING
 <-  250-SIZE 52428800 <-  250-SIZE 52428800
 <-  250-ETRN <-  250-ETRN
 <-  250-STARTTLS <-  250-STARTTLS
-<-  250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
-<-  250-AUTH=PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM 
 <-  250-ENHANCEDSTATUSCODES <-  250-ENHANCEDSTATUSCODES
 <-  250-8BITMIME <-  250-8BITMIME
-<-  250 DSN +<-  250-DSN 
- -> AUTH NTLM +<-  250 SMTPUTF8 
-<-  334  + -> STARTTLS 
- -> TlRMTVNTUBABAAAAB6IAAAAAAAAAAAAAAAAAAAAAAAA+<-  220 2.0.0 Ready to start TLS 
-<-  334 TlRMTVNTUABCAAAAHgAeADAAAAAF0gIAJsLjyygqM30AAAAAAAAAAAAAAAAAAAAATQBYADAAMQAuAE4AQQBVAFMAQwBIAC4ATwBSAEcA +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
- -> TlRTFMNTUAADAAAAGAAYAEAAAAAYABgAWAAAAB4AHgBwAAAAJAAkAI4AAAAkACQAsgAAAAAAAACWAAAABaICAJj/ymDAxyE253qytBGRgm2wg7GOYB4byOvGaTn7wPf/wxTL7okh3kAnFN5KHfE0DAxyB4bywADEALgBOAEEAVQBTAEMASAAuAE8AUgBHAG0AaQBjAGgAYQBlAGwAQABuAGEQBzAGMAaAAuAG8AcgBnAG0AaQBjAGgAYQBlwAQABuAGEAdQBzAGMADAxyB4byAG8AcgBnAA== +=== TLS no local certificate set 
-< 235 2.7.0 Authentication successful +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
- -> MAIL FROM:<michael@nausch.org> + ~EHLO vml000080.dmz.nausch.org 
-< 250 2.1.0 Ok +<~  250-mx1.nausch.org 
- -> RCPT TO:<django@nausch.org> +<~  250-PIPELINING 
-< 250 2.1.5 Ok +<~  250-SIZE 52428800 
- -> DATA +<~  250-ETRN 
-< 354 End data with <CR><LF>.<CR><LF> +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> Date: Tue28 Oct 2014 22:55:33 +0100 +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
- -> To: django@nausch.org +<~  250-ENHANCEDSTATUSCODES 
- -> From: michael@nausch.org +<~  250-8BITMIME 
- -> Subject: test Tue28 Oct 2014 22:55:33 +0100 +<~  250-DSN 
- -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/ +<~  250 SMTPUTF8 
- -> X-Test: test email + ~AUTH DIGEST-MD5 
- ->  +<~  334 cmVhbG09IiIsbm9uYGYtOCIsYWx2U9Inh0MUNJbmlwR0VNamNySmN2NndO9wPSJhdXRoIixjaGFyc2V0PSJ1dnb3JpdGhtPSJtZDUtc2dXc9PSIscWVzcyI= 
- -> This is a test mailing + ~> Y2hhcnNldD11dm9uY2U9IjgGYtOCxjbwNzJkMTcwNDMxYTlkODkwMGE4Yjk5ZDdhNDQ5YjY4IixkaWtdXJpPSJzbXRwLdlc3QzEwLjAuMC44MCIsbmM9MDAwMDAwMDEsbm9uY2U9Inh0MUNJbmlwR0VNdOdXc9PSIscW9wPWF1dGgscmVhbG09IiIscmVzcG9uc2U9M2U2MTJhODc5MTgzZjNiZmRhYTdkY2EyMzZkNTdhZDYsdXNlcm5hbWU9Im1pY2hhZWxAbmF1c2NoLm9yZyamNySmN2NnI
- ->  +<~  334 cYXV0anNwD0zMWE1ZDQzMWQwOTMjUzMJiYTU2ZjcwjcyZDIzMjg0Yg== 
- -> . + ~>  
-< 250 2.0.0 Ok: queued as BDD65C00088 +<~  235 2.7.0 Authentication successful 
- -> QUIT + ~> MAIL FROM:<michael@nausch.org> 
-< 221 2.0.0 Bye +< 250 2.1.0 Ok 
-=== Connection closed with remote host. + ~> RCPT TO:<django@nausch.org> 
-</code>+< 250 2.1.5 Ok 
 + ~> DATA 
 +< 354 End data with <CR><LF>.<CR><LF> 
 + ~> Date: Sun10 Feb 2019 10:11:45 +0100 
 + ~> To: django@nausch.org 
 + ~> From: michael@nausch.org 
 + ~> Subject: test Sun10 Feb 2019 10:11:45 +0100 
 + ~> Message-Id: <20190210101145.027224@vml000080.dmz.nausch.org> 
 + ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ 
 + ~> X-Test: test email 
 + ~>  
 + ~> This is a test mailing 
 + ~>  
 + ~> . 
 +< 250 2.0.0 Ok: queued as 4EC6160008B 
 + ~> QUIT 
 +< 221 2.0.0 Bye 
 +=== Connection closed with remote host.</code>
  
-Maillog: + 
-<code>Oct 28 22:55:37 vml000087 postfix/smtpd[27681]: connect from vml000087.dmz.nausch.org[10.0.0.87+Im Maillog wird die erfolgreiche Authentifizierung und die weitere Verarbeitung unserer Mail entsprechend dokumentiert. 
-Oct 28 22:55:37 vml000087 postfix/smtpd[27681]: BDD65C00088: client=vml000087.dmz.nausch.org[10.0.0.87], sasl_method=NTLM, sasl_username=michael@nausch.org + 
-Oct 28 22:55:37 vml000087 postfix/cleanup[27686]: BDD65C00088: message-id=<20141028215537.BDD65C00088@mx01.nausch.org> +   # less /var/log/maillog 
-Oct 28 22:55:37 vml000087 postfix/qmgr[27526]: BDD65C00088: from=<michael@nausch.org>, size=502, nrcpt=1 (queue active) +<code>Feb 10 10:11:51 vml000080 postfix/submission/smtpd[27226]: connect from vml000080.dmz.nausch.org[10.0.0.80
-Oct 28 22:55:37 vml000087 postfix/smtpd[27681]: disconnect from vml000087.dmz.nausch.org[10.0.0.87] +Feb 10 10:11:51 vml000080 postfix/submission/smtpd[27226]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
-Oct 28 22:55:38 vml000087 postfix/lmtp[27687]: BDD65C00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.24, delays=0.04/0.02/0/0.17, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> UTXtEMoQUFRnQwAArK2B9Q Saved) +Feb 10 10:11:51 vml000080 postfix/submission/smtpd[27226]: 4EC6160008B: client=vml000080.dmz.nausch.org[10.0.0.80], sasl_method=DIGEST-MD5, sasl_username=michael@nausch.org 
-Oct 28 22:55:38 vml000087 postfix/qmgr[27526]: BDD65C00088: removed+Feb 10 10:11:51 vml000080 postfix/cleanup[27230]: 4EC6160008B: message-id=<20190210101145.027224@vml000080.dmz.nausch.org> 
 +Feb 10 10:11:51 vml000080 postfix/qmgr[26334]: 4EC6160008B: from=<michael@nausch.org>, size=527, nrcpt=1 (queue active) 
 +Feb 10 10:11:51 vml000080 postfix/submission/smtpd[27226]: disconnect from vml000080.dmz.nausch.org[10.0.0.80ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
 </code> </code>
  
-===== SASL und Submission/Relaying ===== +=== CRAM-MD5 === 
-Damit nun unsere authentifizierten Nutzer, wie auch Clients aus unserem eigenen Netz oder auch z.B. der Backupmailserver auch über unseren Server, Empfänger fremder Maildomains Nachrichten schicken können (relayen) passen wir noch die Konfiguration unseres Mailservers an. +Nun testen wir die Variante [[https://de.wikipedia.org/wiki/CRAM-MD5|CRAM-MD5]] einem Authentifizierungsverfahren nach dem Challenge-Response-Prinzip auf der Basis des MD5-HMAC-Algorithmus
-==== Relaying ==== +
-In der Hauptkonfigurationsdatei //**/etc/postfix/main.cf**// legen wir eine neue Section **SMTP Relay Restrictions** an. +
-   # vim /etc/postfix/main.cf +
-<code bash>..+
  
-################################################################################ +   swaks --to django@nausch.org --from michael@nausch.org --auth PLAIN --auth-user michael@nausch.org --protocol ESMTPS \\ 
-## SMTP Relay Restrictions +           --header-X-Test "test email" --server 10.0.0.80:587
-+
-# Django : 2014-10-27 Definition, wer über unseren MX relayen darf oder nicht +
-#          http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions +
-# default: smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination +
-+
-smtpd_relay_restrictions = +
-# Unsere eigenen Nutzer zulassen-/erlauben +
-           permit_sasl_authenticated +
-           permit_mynetworks +
-# Backupserver (MX) erlauben +
-           permit_mx_backup +
-# alles andere an relaying verbieten, d.hmit einem finalen error 550 abweisen +
-           reject_unauth_destination+
  
-...+  Password: DAx1d13g31l354u! 
 + 
 +<code>=== Trying 10.0.0.80:587... 
 +=== Connected to 10.0.0.80. 
 +<-  220 mx1.nausch.org ESMTP Postfix 
 + -> EHLO vml000080.dmz.nausch.org 
 +<-  250-mx1.nausch.org 
 +<-  250-PIPELINING 
 +<-  250-SIZE 52428800 
 +<-  250-ETRN 
 +<-  250-STARTTLS 
 +<-  250-ENHANCEDSTATUSCODES 
 +<-  250-8BITMIME 
 +<-  250-DSN 
 +<-  250 SMTPUTF8 
 + -> STARTTLS 
 +<-  220 2.0.0 Ready to start TLS 
 +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
 +=== TLS no local certificate set 
 +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
 + ~> EHLO vml000080.dmz.nausch.org 
 +<~  250-mx1.nausch.org 
 +<~  250-PIPELINING 
 +<~  250-SIZE 52428800 
 +<~  250-ETRN 
 +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-ENHANCEDSTATUSCODES 
 +<~  250-8BITMIME 
 +<~  250-DSN 
 +<~  250 SMTPUTF8 
 + ~> AUTH CRAM-MD5 
 +<~  334 PDk1MDgTcywMzE4OMTkzMjIuMTU0B2bWwwMDAwNzcuZG16Lm0OTc5MDUyM5hdXNjaC5vcmc+ 
 + ~> bGFlbEWljaBuYXVzY2gub3JnIGI2ZhODEyNmJlODY4MDM2YTZmY2YTM1OGQyMzJmNWFk 
 +<~  235 2.7.0 Authentication successful 
 + ~> MAIL FROM:<michael@nausch.org> 
 +<~  250 2.1.0 Ok 
 + ~> RCPT TO:<django@nausch.org> 
 +<~  250 2.1.5 Ok 
 + ~> DATA 
 +<~  354 End data with <CR><LF>.<CR><LF> 
 + ~> Date: Sun, 10 Feb 2019 10:21:54 +0100 
 + ~> To: django@nausch.org 
 + ~> From: michael@nausch.org 
 + ~> Subject: test Sun, 10 Feb 2019 10:21:54 +0100 
 + ~> Message-Id: <20190210102154.027237@vml000080.dmz.nausch.org> 
 + ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ 
 + ~> X-Test: test email 
 + ~>  
 + ~> This is a test mailing 
 + ~>  
 + ~> . 
 +<~  250 2.0.0 Ok: queued as 5F28060008B 
 + ~> QUIT 
 +<~  221 2.0.0 Bye 
 +=== Connection closed with remote host.</code> 
 + 
 +Im Maillog wird die erfolgreiche Authentifizierung und die weitere Verarbeitung unserer Mail entsprechend dokumentiert. 
 + 
 +   # less /var/log/maillog 
 +<code>Feb 10 10:22:03 vml000080 postfix/submission/smtpd[27238]: connect from vml000080.dmz.nausch.org[10.0.0.80] 
 +Feb 10 10:22:03 vml000080 postfix/submission/smtpd[27238]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
 +Feb 10 10:22:03 vml000080 postfix/submission/smtpd[27238]: 5F28060008B: client=vml000080.dmz.nausch.org[10.0.0.80], sasl_method=CRAM-MD5, sasl_username=michael@nausch.org 
 +Feb 10 10:22:03 vml000080 postfix/cleanup[27242]: 5F28060008B: message-id=<20190210102154.027237@vml000080.dmz.nausch.org> 
 +Feb 10 10:22:03 vml000080 postfix/qmgr[26334]: 5F28060008B: from=<michael@nausch.org>, size=527, nrcpt=1 (queue active) 
 +Feb 10 10:22:03 vml000080 postfix/submission/smtpd[27238]: disconnect from vml000080.dmz.nausch.org[10.0.0.80] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
 </code> </code>
  
-==== Submission ==== +=== NTLM === 
-Auch bei Submission auf Port **587** setzen wir die Option **permit_sasl_authenticated**. +Zu guter Letzt testen wir nun noch die Variante [[https://de.wikipedia.org/wiki/NTLM|NTLM]] einer weiteren Variante nach dem Challenge-Response-Verfahren
-   # vim /etc/postfix/master.cf+
  
-<code bash>...+   # swaks --to django@nausch.org --from michael@nausch.org --auth NTLM --auth-user michael@nausch.org --protocol ESMTPS \\ 
 +           --header-X-Test "test email" --server 10.0.0.80:587
  
-# Django 2014-10-27 Submission auf Port 587 geöffnet +  PasswordDAx1d13g31l354u!
-submission inet n                               smtpd +
-  -o syslog_name=postfix/submission +
-  -o smtpd_tls_security_level=encrypt +
-  -o smtpd_sasl_auth_enable=yes +
-  -o smtpd_reject_unlisted_recipient=no +
-  -o smtpd_etrn_restrictions=reject +
-  #-o smtpd_client_restrictions=$mua_client_restrictions +
-  #-o smtpd_helo_restrictions=$mua_helo_restrictions +
-  #-o smtpd_sender_restrictions=$mua_sender_restrictions +
-  -o smtpd_recipient_restrictions= +
-  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject +
-  -o milter_macro_daemon_name=ORIGINATING +
-  -o mydestination=lists.nausch.org,fax.nausch.org+
  
-...+<code>=== Trying 10.0.0.80:587... 
 +=== Connected to 10.0.0.80. 
 +<-  220 mx1.nausch.org ESMTP Postfix 
 + -> EHLO vml000080.dmz.nausch.org 
 +<-  250-mx1.nausch.org 
 +<-  250-PIPELINING 
 +<-  250-SIZE 52428800 
 +<-  250-ETRN 
 +<-  250-STARTTLS 
 +<-  250-ENHANCEDSTATUSCODES 
 +<-  250-8BITMIME 
 +<-  250-DSN 
 +<-  250 SMTPUTF8 
 + -> STARTTLS 
 +<-  220 2.0.0 Ready to start TLS 
 +=== TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 
 +=== TLS no local certificate set 
 +=== TLS peer DN="/OU=Domain Control Validated/CN=*.nausch.org" 
 + ~> EHLO vml000080.dmz.nausch.org 
 +<~  250-mx1.nausch.org 
 +<~  250-PIPELINING 
 +<~  250-SIZE 52428800 
 +<~  250-ETRN 
 +<~  250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 NTLM 
 +<~  250-ENHANCEDSTATUSCODES 
 +<~  250-8BITMIME 
 +<~  250-DSN 
 +<~  250 SMTPUTF8 
 + ~> AUTH NTLM 
 +<~  334  
 + ~> TlNTUAABAARMTVAAB6IAAAAAAAAAAAAAAAAAAAAAAAA= 
 +<~  334 TlRMTVNTAAMAAUAACAAwADAAAAAFAoIA5Q0rDZLB/vMAAAAAgAAAAdgBtAAAAAADgAOABGwAMAAwADAAMAA3ADcALgBkAG0AegAuAG4AYQB1AHMAYwBoAC4AbwByAGcAAwAwAHYAAMAAwbQBsADAADAANwA3AC4AZABtAHoALgBuAGEAdQBzAGMAaAAuAG8AcgBnAAAAAAA= 
 + ~> TlRMTVNTUAAYAEAADAAAAGAAAAAYABgAWAAAADAAMABwAAAAJAAkAKAAAAAkACQAxAAAAAAAAACoAAAABJSaXkYUsXiQKCAMmxYEq5Ym+GwRwCtYI1znaLYKVgk5jYxd5ICe6NxyXV0+t2oEFNVuxwA3AC4AZABHYAbQBsADAAMAAwADAANtAHoALgBuAGEAdQBzAGMAaAAuAG8AcgBnAG0AaQBjAGgAYQBlAGwAQABuAGEAdQBz8AcgBnAG0AaQBjAGgAYQBlAGwAQABuAGEAdQBzAGMAaAAuAG8AcgBAGMAaAAuAGnAA== 
 +<~  235 2.7.0 Authentication successful 
 + ~> MAIL FROM:<michael@nausch.org> 
 +<~  250 2.1.0 Ok 
 + ~> RCPT TO:<django@nausch.org> 
 +<~  250 2.1.5 Ok 
 + ~> DATA 
 +<~  354 End data with <CR><LF>.<CR><LF> 
 + ~> Date: Sun, 10 Feb 2019 10:29:20 +0100 
 + ~> To: django@nausch.org 
 + ~> From: michael@nausch.org 
 + ~> Subject: test Sun, 10 Feb 2019 10:29:20 +0100 
 + ~> Message-Id: <20190210102920.027248@vml000080.dmz.nausch.org> 
 + ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ 
 + ~> X-Test: test email 
 + ~>  
 + ~> This is a test mailing 
 + ~>  
 + ~> . 
 +<~  250 2.0.0 Ok: queued as 5BB7E60008B 
 + ~> QUIT 
 +<~  221 2.0.0 Bye 
 +=== Connection closed with remote host.</code> 
 +Auch dieser erfolgreiche Vebindungsaufbau wird im Maillog entsprechend protokolliert. 
 + 
 +   # less /var/log/maillog 
 +<code>Feb 10 10:29:27 vml000080 postfix/submission/smtpd[27250]: connect from vml000080.dmz.nausch.org[10.0.0.80] 
 +Feb 10 10:29:27 vml000080 postfix/submission/smtpd[27250]: Anonymous TLS connection established from vml000080.dmz.nausch.org[10.0.0.80]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits) 
 +Feb 10 10:29:27 vml000080 postfix/submission/smtpd[27250]: 5BB7E60008B: client=vml000080.dmz.nausch.org[10.0.0.80], sasl_method=NTLM, sasl_username=michael@nausch.org 
 +Feb 10 10:29:27 vml000080 postfix/cleanup[27254]: 5BB7E60008B: message-id=<20190210102920.027248@vml000080.dmz.nausch.org> 
 +Feb 10 10:29:27 vml000080 postfix/qmgr[26334]: 5BB7E60008B: from=<michael@nausch.org>, size=527, nrcpt=1 (queue active) 
 +Feb 10 10:29:27 vml000080 postfix/submission/smtpd[27250]: disconnect from vml000080.dmz.nausch.org[10.0.0.80] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8
 </code> </code>
 +
  
 ====== Links ====== ====== Links ======
-  * **⇐ [[centos:mail_c7:mta_7|Zurück zum Kapitel "virtuelle(r) Mailserver unter Postfix 2.11. und CentOS 7"]]** +/*  * **⇐ [[centos:mail_c7:mta_7|Zurück zum Kapitel "virtuelle(r) Mailserver unter Postfix 2.11. und CentOS 7"]]** 
-  * **⇒ [[centos:mail_c7:mta_9|Weiter zum Kapitel "Backup-Mailserver mit Postfix 2.11 unter CentOS7"]]**+  * **⇒ [[centos:mail_c7:mta_9|Weiter zum Kapitel "Backup-Mailserver mit Postfix 2.11 unter CentOS7"]]** */
   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**   * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
   * **[[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]]**
  
-/* ~~AUTOTWEET:~~ */ 
  
  • centos/mail_c7/postfix3_8.1549743280.txt.gz
  • Zuletzt geändert: 09.02.2019 20:14.
  • von django