Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c7:spam_3 [10.11.2014 19:53. ] – [main.cf] django | centos:mail_c7:spam_3 [22.07.2019 15:02. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
Damit der erwünschte MTA zu MTA Verkehr bestmöglichst nicht eingeschränkt wird, pflegt der postscreen Daemon eine eigene temporäre Whitelist, in die er alle Clients einträgt, die die postscreen Prüfungen bereits bestanden haben. | Damit der erwünschte MTA zu MTA Verkehr bestmöglichst nicht eingeschränkt wird, pflegt der postscreen Daemon eine eigene temporäre Whitelist, in die er alle Clients einträgt, die die postscreen Prüfungen bereits bestanden haben. | ||
- | Die Hauptaufgabe, | + | Die Hauptaufgabe, |
- | Zur Erkennung von Zombies nutzt der Postscreen Daemon verschiedene Techniken. So prüft der Daemon erst mal, ob der Client auf einer Blacklist gelistet ist. Dabei kann er verschiedene Listen befragen und entsprechend deren Gewichtung eine Entscheidung treffen. | + | Zur Erkennung von Zombies nutzt der Postscreen Daemon verschiedene Techniken. So prüft der Daemon erst mal, ob der Client auf einer Blacklist gelistet ist. Dabei kann er verschiedene Listen befragen und entsprechend deren Gewichtung eine Entscheidung treffen. |
===== manpage ===== | ===== manpage ===== | ||
Zeile 437: | Zeile 437: | ||
==== erste Schnelltests ==== | ==== erste Schnelltests ==== | ||
=== black- & whitelist === | === black- & whitelist === | ||
- | Einen der ersten | + | Einen der ersten |
Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | ||
Zeile 448: | Zeile 448: | ||
</ | </ | ||
- | Wir haben hier also alle Hosts aus **mynetworks** und eine zusätzliche | + | Wir haben hier also alle Hosts aus **mynetworks** und eine zusätzliche |
Diese Datei legen wir gleich mal als nächstes an. | Diese Datei legen wir gleich mal als nächstes an. | ||
Zeile 455: | Zeile 455: | ||
# access-Tabelle: | # access-Tabelle: | ||
# Tabelle zum black- und whitelisten einzelner Hosts auf Basis ihrer | # Tabelle zum black- und whitelisten einzelner Hosts auf Basis ihrer | ||
- | # IP-Adressen. In der rechten Tabellenspalte können die AKtionen | + | # IP-Adressen. In der rechten Tabellenspalte können die Aktionen |
# " | # " | ||
- | # Nach dem Ändern und/oder Erweitern der Tabelle, | + | # Nach dem Ändern und/oder Erweitern der Tabelle, |
# laufender Postfix über die Änderungen mit einem reload informiert | # laufender Postfix über die Änderungen mit einem reload informiert | ||
# werden: | # werden: | ||
Zeile 473: | Zeile 473: | ||
</ | </ | ||
In der rechten Tabellenspalte können folgende drei Aktionen gesetzt werden: | In der rechten Tabellenspalte können folgende drei Aktionen gesetzt werden: | ||
- | * **permit** Es werden keine weiteren postscreen-Test durchgeführt. Die Verbindung wird sofort an einen SMTP-Daemon weitergereicht. | + | * '' |
- | * **dunno** Nichts weiter unternehmen und Client zum nächsten Test weiterreichen. | + | * '' |
- | * **reject** Client blacklisten und weitere Suche in der Tabelle beenden. Abhängig vom Parameter **postscreen_blacklist_action** mit der weiteren Bearbeitung der Clientverbindung verfahren. | + | * '' |
Den Parameter **postscreen_blacklist_action** definieren wir nun als nächsten. | Den Parameter **postscreen_blacklist_action** definieren wir nun als nächsten. | ||
Zeile 485: | Zeile 485: | ||
Hier stehen uns drei Aktionen zur Verfügung: | Hier stehen uns drei Aktionen zur Verfügung: | ||
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
+ | |||
+ | \\ | ||
+ | <WRAP center round important 100%> | ||
+ | Natürlich kann die Pflege von einzelnen Systemen zu einer sehr zeitaufwändigen Arbeit ausarten, vor allem dann wenn Versendende Systeme großer Mailprovider oder besonderer geclusteter Mailserver zum Einsatz kommen. Werden Mails von Servern unterschiedlicher abwechselnd von unterschiedlichen Mailrelays mit unterschiedlichen IP-Adresssen verschickt, wird die Nutzung von Postscreen so ad absurdum geführt, insbesondere dann wenn man die [[# | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | Eine manuelle Pflege der **postscreen_access_list** ist hier nicht mehr praxisgerecht. Statt nun auf die Nutzung der Funktion **postscreen_access_list** zu verzichten, ist die Nutzung einer automatisch gepflegten Access-Liste mit Hilfe von **[[centos: | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
=== temporäre whitelist === | === temporäre whitelist === | ||
Zeile 517: | Zeile 530: | ||
Mit der Option **postscreen_whitelist_interfaces** kann man definieren, auf welchen Interfaces/ | Mit der Option **postscreen_whitelist_interfaces** kann man definieren, auf welchen Interfaces/ | ||
- | Wenn wir nun eine weitere IP-Adresse auf unserem Mailserver binden und im DNS als Backup-MX definieren, können wir quasi einen Pseudo-Backup-MX mimen. Schlägt dann ein Client immer nur bzw. zuerst auf der IP-Adresse des definierten Backup-MX auf, dann ist dies höchstwahrscheinlich ein SPAM-Bot. Solch einen Client wollen wir __definitiv nicht__ | + | Wenn wir nun eine weitere IP-Adresse auf unserem Mailserver binden und im DNS als Backup-MX definieren, können wir quasi einen Pseudo-Backup-MX mimen. Schlägt dann ein Client immer nur bzw. zuerst auf der IP-Adresse des definierten Backup-MX auf, dann ist dies höchstwahrscheinlich ein SPAM-Bot. Solch einen Client wollen wir __definitiv nicht__ |
# vim / | # vim / | ||
Zeile 528: | Zeile 541: | ||
</ | </ | ||
- | Der Eintrag definiert nun, dass das Eintragen in die automatische temporäre Whitelist | + | Der Eintrag definiert nun, dass das Eintragen in die automatische temporäre Whitelist |
<WRAP center round important> | <WRAP center round important> | ||
Zeile 536: | Zeile 549: | ||
Konfigurationsbeispiel | Konfigurationsbeispiel | ||
- **memcached** installieren, | - **memcached** installieren, | ||
- | - Auf jeden MX-Host in der //**/ | + | - Auf jeden MX-Host in der **// / |
- | proxy_write_maps = proxy: | + | proxy_write_maps = proxy: |
# | # | ||
memcache = inet: | memcache = inet: | ||
Zeile 546: | Zeile 559: | ||
Nach diesen ersten Schnelltests für der Postscreen-Daemon noch weitere Tests aus, die man in zwei Gruppen einteilen kann, die wir uns nun noch ansehen und konfigurieren werden. | Nach diesen ersten Schnelltests für der Postscreen-Daemon noch weitere Tests aus, die man in zwei Gruppen einteilen kann, die wir uns nun noch ansehen und konfigurieren werden. | ||
- | ==== Vor "220 SMTP Server Greeting" | + | ==== "Pre 220 SMTP Server Greeting" |
Die zweite Gruppe an Tests führt Postscreen aus, noch bevor der SMTP-Daemon die initiale Begrüßung **"220 ... ESMTP Postfix" | Die zweite Gruppe an Tests führt Postscreen aus, noch bevor der SMTP-Daemon die initiale Begrüßung **"220 ... ESMTP Postfix" | ||
<WRAP center round tip 90%> \\ | <WRAP center round tip 90%> \\ | ||
Zeile 557: | Zeile 570: | ||
Dann wartet der Server die mit Paramater **postscreen_greet_wait** definierte Zeit ab und sendet dann erst den richtigen greeter. | Dann wartet der Server die mit Paramater **postscreen_greet_wait** definierte Zeit ab und sendet dann erst den richtigen greeter. | ||
220 mx01.nausch.org ESMTP Postfix | 220 mx01.nausch.org ESMTP Postfix | ||
- | Erst hier beginnt ein orgnungsgemäßer | + | Erst hier beginnt ein ordnungsgemäßer |
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
=== DNSBL-Abfragen und DNSWL-Abfragen === | === DNSBL-Abfragen und DNSWL-Abfragen === | ||
Zeile 608: | Zeile 621: | ||
Der Parameter **postscreen_dnsbl_threshold** legt fest, ab welcher Punktezahl, in unserem Konfigurationsbeispiel also beim Erreichen des Wertes **2**, der postscreen-Daemon tätig werden soll. Dabei stehen uns folgende Aktionen zur Verfügung: | Der Parameter **postscreen_dnsbl_threshold** legt fest, ab welcher Punktezahl, in unserem Konfigurationsbeispiel also beim Erreichen des Wertes **2**, der postscreen-Daemon tätig werden soll. Dabei stehen uns folgende Aktionen zur Verfügung: | ||
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** abschliessen. Die Informationen //HELO//, //SENDER// und // | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
==== "Post 220 SMTP Server Greeting" | ==== "Post 220 SMTP Server Greeting" | ||
- | In der dritten und letzten Phase kann postscreen mit seiner internen SMTP-Engine sog. **deep protocol Tests** anstellen. Diese Tests sind weitaus | + | In der dritten und letzten Phase kann postscreen mit seiner internen SMTP-Engine sog. **deep protocol Tests** anstellen. Diese Tests sind weitaus |
<WRAP center round info> | <WRAP center round info> | ||
Zeile 622: | Zeile 635: | ||
* **cache-sharing**: | * **cache-sharing**: | ||
* **25**: die SMTP-Engine von Postscreen unterstützt weder AUTH, XCLIENT noch XFORWARD Funktionen! Werden diese Funktionen auf Port **25** benötigt, dann scheidet der Einsatz der **//" | * **25**: die SMTP-Engine von Postscreen unterstützt weder AUTH, XCLIENT noch XFORWARD Funktionen! Werden diese Funktionen auf Port **25** benötigt, dann scheidet der Einsatz der **//" | ||
- | * **Submission**: | + | * **Submission**: |
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Stellt man auf produktiv im Einsatz befindlichen Mailservern den zusätzlichen Gewinn bei der SPAM-Abwehr durch Nutzung der **[[# | ||
+ | |||
+ | In den __seltensten Fällen__ wird man daher wirklich diese Funktion nutzen wollen! | ||
+ | </ | ||
</ | </ | ||
Zeile 633: | Zeile 653: | ||
=== " | === " | ||
- | Standardmäßig ist ein SMTP-Halbduplex-Protokoll, | + | Standardmäßig ist ein SMTP-Halbduplex-Protokoll, |
Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | ||
Zeile 643: | Zeile 663: | ||
Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | ||
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
Zeile 661: | Zeile 681: | ||
Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | ||
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
=== "Bare Newline" | === "Bare Newline" | ||
- | SMTP ist eine zeilenorientierte Protokoll, d.h. jede gesendete Zeile hat eine begrenzte Länge und wirden | + | SMTP ist eine zeilenorientierte Protokoll, d.h. jede gesendete Zeile hat eine begrenzte Länge und wird mit **< |
Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | Wir tragen also einen Eintrag in unserer neuen Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | ||
Zeile 678: | Zeile 698: | ||
Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | Folgende Aktionen stehen uns bei positiven Testergebnis zur Verfügung: | ||
- | * **ignore** Nichts unternehmen und mit weiteren Tests fortfahren. Bei der nächsten | + | * '' |
- | * **enforce** Weitermachen mit den anderen Tests, jedoch am Ende die Verbindung mit einem SMTP-Fehlercode **550** abschliessen. Die Informationen //HELO//, //SENDER// und // | + | * '' |
- | * **drop** Die Verbindung sofort mit einem SMTP-Fehlercode **521** beenden. Bei der nächsten | + | * '' |
Zeile 690: | Zeile 710: | ||
==== main.cf ==== | ==== main.cf ==== | ||
+ | Im Gesamten ergibt sich nun folgende Section **POSTSCREEN - ERSTE STUFE DER SPAM/ | ||
<code bash>... | <code bash>... | ||
Zeile 736: | Zeile 757: | ||
# | # | ||
# default: postscreen_pipelining_enable = no | # default: postscreen_pipelining_enable = no | ||
- | postscreen_pipelining_enable = yes | ||
# | # | ||
# default: postscreen_pipelining_action = enforce | # default: postscreen_pipelining_action = enforce | ||
# | # | ||
# default: postscreen_non_smtp_command_enable = no | # default: postscreen_non_smtp_command_enable = no | ||
- | postscreen_non_smtp_command_enable = yes | + | # |
# default: postscreen_non_smtp_command_action = drop | # default: postscreen_non_smtp_command_action = drop | ||
# | # | ||
# default: postscreen_bare_newline_enable = no | # default: postscreen_bare_newline_enable = no | ||
- | postscreen_bare_newline_enable = yes | ||
# | # | ||
# default: postscreen_bare_newline_action = ignore | # default: postscreen_bare_newline_action = ignore | ||
- | postscreen_bare_newline_action = drop | ||
# | # | ||
</ | </ | ||
==== master.cf ==== | ==== master.cf ==== | ||
+ | Zum Aktivieren unseres Postscreen-Daemon aktivieren wir nun den bereits vorgesehenen Eintrag zu Postscreen bzw. tragen diese nach: | ||
# vim / | # vim / | ||
Zeile 771: | Zeile 790: | ||
smtp inet n | smtp inet n | ||
smtpd | smtpd | ||
+ | -o smtpd_sasl_auth_enable=no | ||
dnsblog | dnsblog | ||
tlsproxy | tlsproxy | ||
Zeile 778: | Zeile 798: | ||
===== Aktivierung ===== | ===== Aktivierung ===== | ||
+ | Zur Aktivierung unserer Konfigurationsänderungen führen wir nun noch einen Restart des Postfix-Master DAemon durch. | ||
+ | # systemctl restart postfix | ||
+ | |||
+ | Den Serverstatus können wir uns nun mit Hilfe des folgenden Aufrufes anzeigen lassen. | ||
+ | # systemctl status postfix | ||
+ | |||
+ | < | ||
+ | <font style=" | ||
+ | | ||
+ | | ||
+ | Process: 15133 ExecStop=/ | ||
+ | Process: 15148 ExecStart=/ | ||
+ | Process: 15146 ExecStartPre=/ | ||
+ | Process: 15143 ExecStartPre=/ | ||
+ | Main PID: 15221 (master) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Nov 10 20:57:23 vml000087.dmz.nausch.org systemd[1]: Starting Postfix Mail Transport Agent... | ||
+ | Nov 10 20:57:24 vml000087.dmz.nausch.org postfix/ | ||
+ | Nov 10 20:57:24 vml000087.dmz.nausch.org systemd[1]: Started Postfix Mail Transport Agent. | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
===== Bewertungsbeispiele ===== | ===== Bewertungsbeispiele ===== | ||
+ | ==== Pass New ==== | ||
+ | Folgender Auszug aus einem Maillog zeigt einen **neuen Client** der **alle Tests bestanden** hat. | ||
+ | < | ||
+ | Nov 8 06:39:42 vml000080 postfix/ | ||
+ | Nov 8 06:39:43 vml000080 postfix/ | ||
+ | Nov 8 06:39:44 vml000080 postfix/ | ||
+ | Nov 8 06:39:49 vml000080 postfix/ | ||
+ | Nov 8 06:39:49 vml000080 postfix/ | ||
+ | </ | ||
+ | ==== Reconnect ==== | ||
+ | Folgender Auszug aus einem Maillog zeigt einen Reconnect eines bereits **bekannten Client**. | ||
+ | < | ||
+ | Nov 8 16:24:29 vml000080 postfix/ | ||
+ | </ | ||
+ | |||
+ | ==== Pregreet und DNSBL ==== | ||
+ | Im folgendem Beispiel sehen wir gleich zwei Ergebnisse. Zum Einen hat der Client nicht abgewartet bis zum vollständigen Begrüßungscode und zum anderen wurde der Schwellwert für die gewichtete **DNSBL** von **2** erreicht. | ||
+ | < | ||
+ | Nov 8 16:21:50 vml000080 postfix/ | ||
+ | Nov 8 16:21:50 vml000080 postfix/ | ||
+ | Nov 8 16:21:51 vml000080 postfix/ | ||
+ | Nov 8 16:21:51 vml000080 postfix/ | ||
+ | Nov 8 16:21:51 vml000080 postfix/ | ||
+ | </ | ||
+ | |||
+ | ==== Pregreet und COMMAND COUNT LIMIT ==== | ||
+ | Bei folgendem Beispiel sehen wir wiederum einen Preegreet-Verstoß. Weiterhin sehen wir eine Überschreitung beim eingestellten **postscreen_command_count_limit** von **20**. | ||
+ | |||
+ | < | ||
+ | Nov 3 17:20:10 vml000080 postfix/ | ||
+ | Nov 3 17:20:11 vml000080 postfix/ | ||
+ | Nov 3 17:20:11 vml000080 postfix/ | ||
+ | Nov 3 17:20:12 vml000080 postfix/ | ||
+ | Nov 3 17:20:12 vml000080 postfix/ | ||
+ | Nov 3 17:20:13 vml000080 postfix/ | ||
+ | Nov 3 17:20:13 vml000080 postfix/ | ||
+ | Nov 3 17:20:13 vml000080 postfix/ | ||
+ | Nov 3 17:20:13 vml000080 postfix/ | ||
+ | </ | ||
+ | |||
+ | ==== BARE NEWLINE ==== | ||
+ | Beim letzten Logging-Beispiel sehen wir, dass der Postscreen-Daemon bei einer bestehenden TLS-Session einen Bare Newline Verstoß entdeckt hatte. | ||
+ | |||
+ | < | ||
+ | Nov 9 17:59:26 vml000080 postfix/ | ||
+ | Nov 9 17:59:58 vml000080 postfix/ | ||
+ | Nov 9 17:59:58 vml000080 postfix/ | ||
+ | Nov 9 17:59:58 vml000080 postfix/ | ||
+ | </ | ||
+ | |||
+ | ==== weitere Beispiele ==== | ||
+ | Weitere Beispiele zu **Postscreen** und dessen Loggingfunktionalitäten findet man auf der **[[http:// | ||
+ | ===== graphische Statistiken Postscreen | ||
+ | Will man sich einen generellen Überblick über die Postscreen-Auswirkungen beim Mailverkehr informieren, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ===== postwhite ===== | ||
+ | <WRAP center round important 95%> | ||
+ | Natürlich kann die Pflege von einzelnen Systemen zu einer sehr zeitaufwändigen Arbeit ausarten, vor allem dann wenn versendende Systeme großer Mailprovider oder besonderer geclusteter Mailserver zum Einsatz kommen. Werden Mails von Servern unterschiedlicher abwechselnd von unterschiedlichen Mailrelays mit unterschiedlichen IP-Adresssen verschickt, wird die Nutzung der **[[spam_3# | ||
+ | |||
+ | <WRAP center round tip 80%> | ||
+ | Eine manuelle Pflege der **postscreen_access_list** ist hier nicht mehr praxisgerecht. Statt nun auf die Nutzung der Funktion **postscreen_access_list** gänzlich zu verzichten, ist die Nutzung einer automatisch gepflegten Access-Liste mit Hilfe von **[[centos: | ||
+ | |||
+ | <WRAP center round alert 80%> | ||
+ | Stellt man auf produktiv im Einsatz befindlichen Mailservern den zusätzlichen Gewinn bei der SPAM-Abwehr durch Nutzung der **[[# | ||
+ | |||
+ | In den __seltensten Fällen__ wird man daher wirklich diese Funktion nutzen wollen! | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Installation ==== | ||
+ | Mit Hilfe des Projekts **[[https:// | ||
+ | |||
+ | Postwhite selbst greift wiederum auf **[[https:// | ||
+ | # cd / | ||
+ | |||
+ | Nun clonen wir das Projekt direkt von GITHUB-Server. | ||
+ | # git clone https:// | ||
+ | |||
+ | Anschließend clonen wir das Projekt Postwhite. | ||
+ | # git clone https:// | ||
+ | |||
+ | Damit wir später postwhite einfach starten können verlinken wir das zugehörige binary nach // | ||
+ | # ln -s / | ||
+ | # ln -s / | ||
+ | |||
+ | ==== Konfiguration ==== | ||
+ | === Postwhite === | ||
+ | Für die Konfiguration von postwhite finden wir in dem geclonten Projektordner eine vorgefertigte Konfigurationsdatei, | ||
+ | # cp / | ||
+ | |||
+ | Diese Konfigurationsdatei passen wir nun unseren Gegebenheiten an. Wir passen also dort die beiden Pfade '' | ||
+ | |||
+ | # vim / | ||
+ | <file bash / | ||
+ | # https:// | ||
+ | # POSTWHITE WILL LOOK FOR THIS FILE IN / | ||
+ | |||
+ | # FILE PATHS | ||
+ | # Django : 2019-01-28 | ||
+ | # default: spftoolspath=/ | ||
+ | spftoolspath=/ | ||
+ | postfixpath=/ | ||
+ | postfixbinarypath=/ | ||
+ | whitelist=postscreen_spf_whitelist.cidr | ||
+ | blacklist=postscreen_spf_blacklist.cidr | ||
+ | # Django : 2019-01-28 | ||
+ | # default: yahoo_static_hosts=/ | ||
+ | yahoo_static_hosts=/ | ||
+ | |||
+ | # CUSTOM HOSTS | ||
+ | # Enter custom hosts separated by a space, ex: " | ||
+ | custom_hosts="" | ||
+ | |||
+ | # Include list of Yahoo Outbound IPs from https:// | ||
+ | include_yahoo=" | ||
+ | |||
+ | # Do you also want to build a blacklist? | ||
+ | enable_blacklist=no | ||
+ | blacklist_hosts="" | ||
+ | |||
+ | # Do what to invalid IPv4 addresses and CIDRs? | ||
+ | # Valid settings are ' | ||
+ | invalid_ip4=remove | ||
+ | |||
+ | # Simplify (remove) IP addresses from the whitelist that are already covered by CIDRs? | ||
+ | # WARNING: Enabling this option can dramatically increase the time Postwhite takes to | ||
+ | # run if you have many mailers selected. Try it once, then come back and turn it off. :) | ||
+ | simplify=no | ||
+ | |||
+ | # Reload Postfix Automatically when done? | ||
+ | reload_postfix=yes | ||
+ | </ | ||
+ | |||
+ | === Postscreen/ | ||
+ | Postwhite wird uns eine Whitelist generieren und bei Bedarf auch eine Blacklist. Wir müssen nun unsere Postscreen-Konfiguration entsprechend anpassen, so dass die generierte(n) CIDR-Liste(n) entsprechend eingebunden werden. | ||
+ | # vim / | ||
+ | <code bash>... | ||
+ | |||
+ | ################################################################################ | ||
+ | ## POSTSCREEN - ERSTE STUFE DER SPAM/ | ||
+ | # | ||
+ | # Django : 2019-01-27 - PERMANENT WHITE/ | ||
+ | # default: postscreen_access_list = permit_mynetworks | ||
+ | postscreen_access_list = permit_mynetworks | ||
+ | | ||
+ | # | ||
+ | |||
+ | |||
+ | ...</ | ||
+ | |||
+ | ==== Programmstart ==== | ||
+ | === manueller Start === | ||
+ | Nun können wir postwhite das erste mal starten. | ||
+ | # postwhite | ||
+ | |||
+ | < | ||
+ | |||
+ | Reading options from / | ||
+ | |||
+ | Creating temporary files... | ||
+ | |||
+ | Recursively querying SPF records of selected whitelist mailers... | ||
+ | |||
+ | Querying webmail hosts... | ||
+ | Getting spf.constantcontact.com | ||
+ | Getting aspmx.sailthru.com | ||
+ | Getting mail.zendesk.com | ||
+ | Getting _ipspf.yahoo.com | ||
+ | Getting _spf1.yahoo.com | ||
+ | Getting _spf2.yahoo.com | ||
+ | Getting _spf3.yahoo.com | ||
+ | Getting spf.messagingengine.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting spf.protection.outlook.com | ||
+ | Getting spfa.protection.outlook.com | ||
+ | Getting spfb.protection.outlook.com | ||
+ | Getting spf-a.outlook.com | ||
+ | Getting spf-b.outlook.com | ||
+ | Getting spf-a.hotmail.com | ||
+ | Getting _spf-ssg-b.microsoft.com | ||
+ | Getting _spf-ssg-c.microsoft.com | ||
+ | Getting emsd1.com | ||
+ | Getting acemdns.com | ||
+ | Getting _spf-a.microsoft.com | ||
+ | Getting spf.protection.outlook.com | ||
+ | Getting spfa.protection.outlook.com | ||
+ | Getting spfb.protection.outlook.com | ||
+ | Getting _spf-b.microsoft.com | ||
+ | Getting _spf-mdm.microsoft.com | ||
+ | Getting _spf-c.microsoft.com | ||
+ | Getting _spf-ssg-a.microsoft.com | ||
+ | Getting _spf-ssg-a.msft.net | ||
+ | Getting spf-a.hotmail.com | ||
+ | Getting spf-a.outlook.com | ||
+ | Getting spf-b.outlook.com | ||
+ | Getting spf.protection.outlook.com | ||
+ | Getting spfa.protection.outlook.com | ||
+ | Getting spfb.protection.outlook.com | ||
+ | Getting spf-a.hotmail.com | ||
+ | Getting _spf-ssg-b.microsoft.com | ||
+ | Getting _spf-ssg-c.microsoft.com | ||
+ | Getting spf.zoho.com | ||
+ | |||
+ | Querying social network hosts... | ||
+ | Getting _spf.facebook.com | ||
+ | Getting spf.mtasv.net | ||
+ | Getting facebookmail.com | ||
+ | Getting amazonses.com | ||
+ | Getting spf-00082601.pphosted.com | ||
+ | Getting _spf.pinterest.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting _spf.greenhouse.io | ||
+ | Getting mailgun.org | ||
+ | Getting spf1.mailgun.org | ||
+ | Getting spf2.mailgun.org | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting mailgun.org | ||
+ | Getting spf1.mailgun.org | ||
+ | Getting spf2.mailgun.org | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting sendgrid.net | ||
+ | Getting mail.zendesk.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting _thirdparty.twitter.com | ||
+ | Getting spf.mandrillapp.com | ||
+ | |||
+ | Querying ecommerce hosts... | ||
+ | Getting spf1.amazon.com | ||
+ | Getting spf2.amazon.com | ||
+ | Getting amazonses.com | ||
+ | Getting c._spf.ebay.com | ||
+ | Getting ces._spf.ebay.com | ||
+ | Getting p._spf.ebay.com | ||
+ | Getting emarsys.net | ||
+ | Getting _spf.salesforce.com | ||
+ | Getting p2._spf.ebay.com | ||
+ | Getting pp._spf.paypal.com | ||
+ | Getting ppcorp._spf.paypal.com | ||
+ | Getting 3ph1._spf.paypal.com | ||
+ | Getting 3ph2._spf.paypal.com | ||
+ | Getting 3ph3._spf.paypal.com | ||
+ | Getting 3ph4._spf.paypal.com | ||
+ | Getting 3ph5._spf.paypal.com | ||
+ | |||
+ | Querying bulk mail hosts... | ||
+ | Getting spf-a.authsmtp.com | ||
+ | Getting spf-b.authsmtp.com | ||
+ | Getting support.zendesk.com | ||
+ | Getting mail.zendesk.com | ||
+ | Getting _spf.salesforce.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting spf0.exacttarget.com | ||
+ | Getting spf1.exacttarget.com | ||
+ | Getting spf2.exacttarget.com | ||
+ | Getting spf3.exacttarget.com | ||
+ | Getting spf4.exacttarget.com | ||
+ | Getting notifications.fishbowl.com | ||
+ | Getting _spf-dash.rmsbot.com | ||
+ | Getting spf.mtasv.net | ||
+ | Getting aspmx.pardot.com | ||
+ | Getting et._spf.pardot.com | ||
+ | Getting mktomail.com | ||
+ | Getting zuora.com | ||
+ | Getting zuora.com._nspf.vali.email | ||
+ | Skipping (has macros) %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email | ||
+ | Getting stspg-customer.com | ||
+ | Getting sparkpostmail.com | ||
+ | Getting _spf.sparkpostmail.com | ||
+ | Getting _netblocks.sparkpostmail.com | ||
+ | Getting sendgrid.net | ||
+ | Getting _spf.icontact.com | ||
+ | Getting spf.protection.outlook.com | ||
+ | Getting spfa.protection.outlook.com | ||
+ | Getting spfb.protection.outlook.com | ||
+ | Getting 4638697.spf08.hubspotemail.net | ||
+ | Getting sg08.hubspotemail.net | ||
+ | Getting spe08.hubspotemail.net | ||
+ | Getting servers.mcsv.net | ||
+ | Getting mail.zendesk.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting mailsenders.netsuite.com | ||
+ | Getting mailgun.org | ||
+ | Getting spf1.mailgun.org | ||
+ | Getting spf2.mailgun.org | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting 2910904.spf10.hubspotemail.net | ||
+ | Getting sg10.hubspotemail.net | ||
+ | Getting spe10.hubspotemail.net | ||
+ | Getting support.zendesk.com | ||
+ | Getting mail.zendesk.com | ||
+ | Getting spf.mailjet.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting spf.messagelabs.com | ||
+ | Getting nets1.spf.messagelabs.com | ||
+ | Getting nets2.spf.messagelabs.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting partners.sendgrid.com | ||
+ | Getting _spf.salesforce.com | ||
+ | Getting stspg-customer.com | ||
+ | Getting _labs.sendgrid.com | ||
+ | Getting messagesystems.com | ||
+ | Getting _spf.salesforce.com | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting _spf.sparkpostmail.com | ||
+ | Getting _netblocks.sparkpostmail.com | ||
+ | |||
+ | Querying miscellaneous hosts... | ||
+ | Getting _spf.google.com | ||
+ | Getting _netblocks.google.com | ||
+ | Getting _netblocks2.google.com | ||
+ | Getting _netblocks3.google.com | ||
+ | Getting esp.github.com | ||
+ | Getting _spf.createsend.com | ||
+ | Getting servers.mcsv.net | ||
+ | Getting _spf1.zendesk.com | ||
+ | Getting _spf2.zendesk.com | ||
+ | Getting _spf3.zendesk.com | ||
+ | Getting _spf4.zendesk.com | ||
+ | Getting _spf5.zendesk.com | ||
+ | Getting _spf6.zendesk.com | ||
+ | |||
+ | Querying custom hosts... | ||
+ | |||
+ | Including scraped Yahoo! outbound hosts... | ||
+ | |||
+ | Removing invalid IPv4 CIDRs from whitelist....................................................................... | ||
+ | |||
+ | Sorting whitelist rules... | ||
+ | |||
+ | Writing 1896 whitelist rules to / | ||
+ | |||
+ | Reloading Postfix configuration to refresh rules... | ||
+ | postfix/ | ||
+ | |||
+ | Done!</ | ||
+ | |||
+ | Damit der laufende Postfix-Daemon die neu erstellte bzw. eine geänderte Whitelist neu einlesen kann, bedarf es eines Relaods des Daemon. Gemäß unserer Konfiguration wir dieser Relaod nach dem Erstellen der CIDR-Liste automatisch ausgeführt, | ||
+ | |||
+ | Jan 27 22:10:28 vml000080 postfix/ | ||
+ | Jan 27 22:10:28 vml000080 postfix/ | ||
+ | |||
+ | === automatischer zeitgesteuerter Programmstart === | ||
+ | In regelmäßigen Abständen soll nun die CIDR-Tabelle mit den Whitelistingeinträgen generiert werden. Hierzu verschieben wir einfach den symbolischen link aus dem Verzeichnis '' | ||
+ | # mv / | ||
+ | Somit wird einmal am Tag die bestehende whitelist-Tabelle aktualisiert. | ||
+ | |||
+ | Für die Aktualisierung der speziellen Yahoo-Tabelle verschieben wir den zugehörigen symbolischen link aus dem Verzeichnis '' | ||
+ | # mv / | ||
===== FAZIT ===== | ===== FAZIT ===== | ||
+ | <WRAP center round tip> | ||
+ | Alles in allem kann man festhalten. Mit Hilfe von **Postscreen** erhöht man nicht nur die Erreichbar- und Verfügbarkeit seines Mailservers, | ||
+ | |||
+ | Somit kann man guten Gewissens den Einsatz und dem __Vorzug__ von **Postscreen** __vor__ **Greylisting** und **policyd-weight** vornehmen! | ||
+ | </ | ||
====== Links ====== | ====== Links ====== | ||
Zeile 793: | Zeile 1228: | ||
* **[[http:// | * **[[http:// | ||
- | ~~DISCUSSION~~ | + |