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:43. ] – [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
  
    verify    unix  -                               verify    verify    unix  -                               verify
  
-Postfix wird mit Hilfe des Moduls **verify** versuchen, noch während der Annahme der Bachricht von einem fremden Mailserver, beim Backend-System in Erfahrung zu bringen, ob dieses die Nachricht auch abnehmen würde. Ist dies der Fall, reicht Postfix die Nachricht an das Backend weiter. Anderenfalls wird die Annahme der Nachricht verweigert. +Postfix wird mit Hilfe des Moduls **verify** versuchen, noch während der Annahme der Bachricht von einem fremden Mailserver, beim Backend-System in Erfahrung zu bringen, ob dieses die Nachricht auch abnehmen würde. Ist dies der Fall, reicht Postfix die Nachricht an das Backend weiter. Anderenfalls wird die Annahme der Nachricht verweigert. Damit nun der Mailserver nicht jedesmal nachfragen muss, werden wir ihm hierzu eine kleine Datenbanktabelle spendieren, die auch nach einen Neustart des Servers zur Verfügung stehen kann. 
 === 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 354: 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 390: 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 ==== +===== Tests ===== 
-=== Einlieferung via LMTP beim backend-System === +<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> 
-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 **[[www.jetmore.org/john/code/swaks/|swaks]]** von John Jetmore zurück.+==== 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    # 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... <code>=== Trying 10.0.0.77:24...
Zeile 431: Zeile 452:
 </code> </code>
  
-=== Einlieferung via SMTP beim frontend-System ===+==== 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**. 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 ::1 --protocol SMTP +   # swaks --to django@nausch.org --from michael@nausch.org --header-X-Test "test email" --server 10.0.0.87 --protocol SMTP 
-<code>=== Trying ::1:25... +<code>=== Trying 10.0.0.87:25... 
-=== Connected to ::1.+=== Connected to 10.0.0.87.
 <-  220 mx01.nausch.org ESMTP Postfix <-  220 mx01.nausch.org ESMTP Postfix
- -> HELO vml000087.dmz.nausch.org+ -> HELO pml010048
 <-  250 mx01.nausch.org <-  250 mx01.nausch.org
  -> MAIL FROM:<michael@nausch.org>  -> MAIL FROM:<michael@nausch.org>
Zeile 445: Zeile 466:
  -> DATA  -> DATA
 <-  354 End data with <CR><LF>.<CR><LF> <-  354 End data with <CR><LF>.<CR><LF>
- -> Date: Tue, 04 Nov 2014 19:25:58 +0100+ -> Date: Tue, 04 Nov 2014 20:53:54 +0100
  -> To: django@nausch.org  -> To: django@nausch.org
  -> From: michael@nausch.org  -> From: michael@nausch.org
- -> Subject: test Tue, 04 Nov 2014 19:25:58 +0100+ -> Subject: test Tue, 04 Nov 2014 20:53:54 +0100
  -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/  -> X-Mailer: swaks v20130209.0 jetmore.org/john/code/swaks/
  -> X-Test: test email  -> X-Test: test email
Zeile 455: Zeile 476:
  ->   -> 
  -> .  -> .
-<-  250 2.0.0 Ok: queued as CC2B4C00088+<-  250 2.0.0 Ok: queued as 904BBC00088
  -> QUIT  -> QUIT
 <-  221 2.0.0 Bye <-  221 2.0.0 Bye
 === Connection closed with remote host. === Connection closed with remote host.
 </code> </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.1415126592.txt.gz
  • Zuletzt geändert: 04.11.2014 18:43.
  • von django