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:mta_6 [04.11.2014 18:17. ] – [Dynamische Empfänger-Verifizierung] djangocentos:mail_c7:mta_6 [22.07.2019 15:00. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 256: Zeile 256:
 </WRAP> </WRAP>
 </WRAP> </WRAP>
-Den notwendigen Konfogurationseintrag finden wir bereits in der Hauptkonfigurationsdatei von unserem **Postfix 2.11.3** unter **CentOS 7.x**.+Den notwendigen Konfigurationseintrag finden wir bereits in der Hauptkonfigurationsdatei von unserem **Postfix 2.11.3** unter **CentOS 7.x**.
    # grep verify /etc/postfix/master.cf    # grep verify /etc/postfix/master.cf
  
Zeile 264: Zeile 264:
  
 === Konfiguration === === Konfiguration ===
-In der Section **[[centos:mail_c7:mta_4#smtp_recipient_restrictions|SMTP RECIPIENT RESTRICTIONS]]** aktivieren wir den bereits bei der **[[centos:mail_c7:mta_4|Konfiguration unseres MTAs Postfix 2.11 unter CentOS7]]** vorbereiteten Eintrag <code>#          Dynamische Prüfung auf existente Relay-Empfänger+Als erstes legen wir uns ein Datenverzeichnis, indem Postfix die überprüften Empfangsaddressen abspeichern kann, an und schenke es dem Nutzer Postfix. 
 +   # mkdir /var/spool/postfix/data 
 + 
 +   # chown postfix.root /var/spool/postfix/data 
 + 
 +   # chmod 700 /var/spool/postfix/data 
 + 
 +Als nächstes definieren wir noch die entsprechende Datenbank, bzw. den Ort wo Postfix diese Datenbank abspeichern wird. Hierzu tragen wir in die Konfigurationsdatei //**/etc/postfix/main.cf**// am ende der Sektion **## LOOKUP-TABELLEN** nachfolgenden Eintrag nach. 
 +   # vim /etc/postfix/main.cf 
 + 
 +<code bash>... 
 + 
 +# Django : 2015-10-15 - Ergebnisse der Adress-Verification cachen 
 +#          Kapitel 12.2.2 Dynamische Empfänger-Verifizierung 
 +#          Kapitel 9.5.5 envelope sender überprüfen 
 +# default: address_verify_map = btree:$data_directory/verify_cache 
 +address_verify_map = btree:/var/spool/postfix/data/verify 
 +</code> 
 + 
 +Dann aktivieren wir in der Section **[[centos:mail_c7:mta_4#smtp_recipient_restrictions|SMTP RECIPIENT RESTRICTIONS]]** den bereits bei der **[[centos:mail_c7:mta_4|Konfiguration unseres MTAs Postfix 2.11 unter CentOS7]]** vorbereiteten Eintrag <code>#          Dynamische Prüfung auf existente Relay-Empfänger
 #                            (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung) #                            (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung)
            reject_unverified_recipient</code>.            reject_unverified_recipient</code>.
Zeile 355: Zeile 374:
 </code> </code>
  
-=== Datenpflege der Emfangsaddressen ===+=== Datenpflege der Empfangsaddressen ===
 Die Pflege der verify-Datenbank übernimmt dabei Postfix selbst, trägt neue Adressen ein und löscht auch regelmäßig alte Einträge - kurz und gut, der Postfix betreibt also eine Art //Brutpflege//. Da wir keine Änderungen an weiteren Parametern vorgenommen hatten, greifen hier die Default-Werte. Die Pflege der verify-Datenbank übernimmt dabei Postfix selbst, trägt neue Adressen ein und löscht auch regelmäßig alte Einträge - kurz und gut, der Postfix betreibt also eine Art //Brutpflege//. Da wir keine Änderungen an weiteren Parametern vorgenommen hatten, greifen hier die Default-Werte.
    # postconf address_verify_positive_refresh_time    # postconf address_verify_positive_refresh_time
Zeile 391: Zeile 410:
 Dieser Parameter legt fest, mit welchem //Envelope-From// die Anfragen an den Zielserver gerichtet werden sollen. Dieser Parameter legt fest, mit welchem //Envelope-From// die Anfragen an den Zielserver gerichtet werden sollen.
  
 +===== Tests =====
 +<WRAP round important>Erreicht nun eine Kontaktanfrage von einem fremden Mailserver, also einem Server, der **__nicht__** in **$mynetworks** definiert ist, kann man im Logfile des Mailservers sehr schön beobachten, wie Postfix die Adressen überprüft.</WRAP>
 +==== Einlieferung via LMTP beim backend-System ====
 +Als erstes testen wir, ob wir von unserem SMTP-Server aus beim IMAP-Server auf Port 24 (**LMTP**) eine Nachricht einliefern können. Damit wir uns beim Tippen nicht die Finger brechen und/oder vertippen, greifen wir auf das Hilfsprogramm **[[http://www.jetmore.org/john/code/swaks/|swaks]]** von John Jetmore zurück.
 +   # swaks --to django@nausch.org --from michael@nausch.org --header-X-Test "test email" --server 10.0.0.77 --protocol LMTP
 +<code>=== Trying 10.0.0.77:24...
 +=== Connected to 10.0.0.77.
 +<-  220 imap.nausch.org Dovecot ready.
 + -> LHLO vml000087.dmz.nausch.org
 +<-  250-imap.nausch.org
 +<-  250-8BITMIME
 +<-  250-ENHANCEDSTATUSCODES
 +<-  250 PIPELINING
 + -> MAIL FROM:<michael@nausch.org>
 +<-  250 2.1.0 OK
 + -> RCPT TO:<django@nausch.org>
 +<-  250 2.1.5 OK
 + -> DATA
 +<-  354 OK
 + -> Date: Tue, 04 Nov 2014 19:17:15 +0100
 + -> To: django@nausch.org
 + -> From: michael@nausch.org
 + -> Subject: test Tue, 04 Nov 2014 19:17:15 +0100
 + -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 + -> X-Test: test email
 + -> 
 + -> This is a test mailing
 + -> 
 + -> .
 +<-  250 2.0.0 <django@nausch.org> P90YOokWWVS8GQAArK2B9Q Saved
 + -> QUIT
 +<-  221 2.0.0 OK
 +=== Connection closed with remote host.
 +</code>
  
 +Im Maillog des empfangendem System wird die erfolgreiche Zustellung entsprechend protokolliert.
 +<code>Nov  4 19:17:15 vml000077 dovecot: lmtp(6588): Connect from 10.0.0.87
 +Nov  4 19:17:15 vml000077 dovecot: lmtp(django@nausch.org): copy from <lmtp DATA>: box=INBOX, uid=8161, msgid=, size=476, from=michael@nausch.org
 +Nov  4 19:17:15 vml000077 dovecot: lmtp(django@nausch.org): P90YOokWWVS8GQAArK2B9Q: sieve: msgid=unspecified: stored mail into mailbox 'INBOX'
 +Nov  4 19:17:15 vml000077 dovecot: lmtp(6588): Disconnect from 10.0.0.87: Successful quit
 +</code>
 +
 +==== erfolgreiche Einlieferung via SMTP beim frontend-System ====
 +Als nächstes liefern wir eine Nachricht bei unserem SMTP-Server auf Port **25** ein. Auch hier benutzen wir als Hilfsmittel **swaks**.
 +   # swaks --to django@nausch.org --from michael@nausch.org --header-X-Test "test email" --server 10.0.0.87 --protocol SMTP
 +<code>=== Trying 10.0.0.87:25...
 +=== Connected to 10.0.0.87.
 +<-  220 mx01.nausch.org ESMTP Postfix
 + -> HELO pml010048
 +<-  250 mx01.nausch.org
 + -> 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: Tue, 04 Nov 2014 20:53:54 +0100
 + -> To: django@nausch.org
 + -> From: michael@nausch.org
 + -> Subject: test Tue, 04 Nov 2014 20:53:54 +0100
 + -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
 + -> X-Test: test email
 + -> 
 + -> This is a test mailing
 + -> 
 + -> .
 +<-  250 2.0.0 Ok: queued as 904BBC00088
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== Connection closed with remote host.
 +</code>
 +Im Maillog werden nun mehrere Dinge dokumentiert.
 +
 +   Nov  4 20:53:54 vml000087 postfix/smtpd[4934]: connect from vml000020.dmz.nausch.org[10.0.0.20]
 +Der Client **vml000020.dmz.nausch.org** mit der IP **10.0.0.20** hat sich mit dem SMTP-Server verbunden.
 +   Nov  4 20:53:55 vml000087 postfix/cleanup[4941]: 8EC29C00088: message-id=<20141104195355.8EC29C00088@mx01.nausch.org>
 +Das Cleanup-Modul hat die Message-ID **<20141104195355.8EC29C00088@mx01.nausch.org>** vergeben.
 +   Nov  4 20:53:55 vml000087 postfix/qmgr[4933]: 8EC29C00088: from=<double-bounce@nausch.org>, size=231, nrcpt=1 (queue active)
 +   Nov  4 20:53:55 vml000087 postfix/lmtp[4942]: 8EC29C00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.07, delays=0.02/0.02/0/0.03, dsn=2.1.5, status=deliverable (250 2.1.5 OK)
 +   Nov  4 20:53:55 vml000087 postfix/qmgr[4933]: 8EC29C00088: removed
 +Der verify-Daemon erstellt eine Test-Nachricht und schickt diese an den Zielserver. Da die Adresse zustellbar ** status=deliverable (250 2.1.5 ok)** ist, entfernt der Queue-Manager die Testnachricht wieder.
 +   Nov  4 20:53:58 vml000087 postfix/smtpd[4934]: 904BBC00088: client=vml000020.dmz.nausch.org[10.0.0.20]
 +   Nov  4 20:53:58 vml000087 postfix/cleanup[4941]: 904BBC00088: message-id=<>
 +   Nov  4 20:53:58 vml000087 postfix/qmgr[4933]: 904BBC00088: from=<michael@nausch.org>, size=427, nrcpt=1 (queue active)
 +   Nov  4 20:53:58 vml000087 postfix/smtpd[4934]: disconnect from vml000020.dmz.nausch.org[10.0.0.20]
 +Die Nachricht wird dem einliefernden Mailclient abgenommen.
 +   Nov  4 20:53:58 vml000087 postfix/lmtp[4942]: 904BBC00088: to=<django@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=4.4, delays=4.3/0/0/0.1, dsn=2.0.0, status=sent (250 2.0.0 <django@nausch.org> OAlZJdMuWVRiJQAArK2B9Q Saved)
 +   Nov  4 20:53:58 vml000087 postfix/qmgr[4933]: 904BBC00088: removed
 +Die Nachricht wurde erfolgreich an das backend-System übergeben.
 +
 +==== Zustellversuch an nicht existierenden Empfänger via SMTP beim frontend-System ====
 +Als nächstes versuchen wir eine Nachricht an einen nicht existierenden Empfänger zu schicken.
 +   $ swaks --to paeddrigg@nausch.org --from michael@nausch.org --header-X-Test "test email" --server 10.0.0.87 --protocol SMTP
 +<code>=== Trying 10.0.0.87:25...
 +=== Connected to 10.0.0.87.
 +<-  220 mx01.nausch.org ESMTP Postfix
 + -> HELO pml010048
 +<-  250 mx01.nausch.org
 + -> MAIL FROM:<michael@nausch.org>
 +<-  250 2.1.0 Ok
 + -> RCPT TO:<paeddrigg@nausch.org>
 +<** 450 4.1.1 <paeddrigg@nausch.org>: Recipient address rejected: unverified address: Recipient address lookup failed. 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 (Nov 04 21:09:53), client (10.0.0.20) and server (mx01.nausch.org).
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== Connection closed with remote host.
 +</code>
 +Die Annahme der Nachricht wurde verweigert, da die Adresse nicht überprüft werden konnte.
 +Im Maillog sieht man nun sehr schön wieder den Versuch die Adresse zu überprüfen.
 +   Nov  4 21:09:50 vml000087 postfix/qmgr[4933]: 14246C00088: from=<double-bounce@nausch.org>, size=231, nrcpt=1 (queue active)
 +   Nov  4 21:09:50 vml000087 postfix/lmtp[5001]: 14246C00088: to=<paeddrigg@nausch.org>, relay=10.0.0.77[10.0.0.77]:24, delay=0.08, delays=0.03/0.01/0.01/0.02, dsn=5.1.1, status=undeliverable (host 10.0.0.77[10.0.0.77] said: 550 5.1.1 <paeddrigg@nausch.org> User doesn't exist: paeddrigg@nausch.org (in reply to RCPT TO command))
 +   Nov  4 21:09:50 vml000087 postfix/qmgr[4933]: 14246C00088: removed
 +   Nov  4 21:09:53 vml000087 postfix/smtpd[4994]: NOQUEUE: reject: RCPT from vml000020.dmz.nausch.org[10.0.0.20]: 450 4.1.1 <paeddrigg@nausch.org>: Recipient address rejected: unverified address: Recipient address lookup failed; from=<michael@nausch.org> to=<paeddrigg@nausch.org> proto=SMTP helo=<pml010048>
 +Hier wurde nun der Status **status=undeliverable** gemeldet, da der Empfänger nicht erreichbar war.
  
 +==== verify-Datenbank ====
 +Werfen wir nun einen Blick in die verify-Datenbank von Postfix können wir für beide Beispiele die entsprechenden Einträge finden. 
 +   # postmap -s btree:/var/spool/postfix/data/verify
  
 +   _LAST_CACHE_CLEANUP_COMPLETED_  1415130835
 +   django@nausch.org       0:0:1415130835:250 2.1.5 OK
 +   paeddrigg@nausch.org    2:0:1415131790:host 10.0.0.77[10.0.0.77] said: 550 5.1.1 <paeddrigg@nausch.org> User doesn't exist: paeddrigg@nausch.org (in reply to RCPT TO command)
  
 +====== Links ======
 +  * **⇐ [[centos:mail_c7:mta_5|Zurück zum Kapitel "SSL/TLS - Verbindungen verschlüsselte Kommunikation für Postfix 2.11 unter CentOS 7"]]**
 +  * **⇒ [[centos:mail_c7:mta_7|Weiter zum Kapitel "virtuelle(r) Mailserver unter Postfix 2.11. und CentOS 7"]]**
 +  * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-FIXME 
  
  • centos/mail_c7/mta_6.1415125020.txt.gz
  • Zuletzt geändert: 04.11.2014 18:17.
  • von django