Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:postfix_centos_7_-_postscreen_einsetzen [2015/09/25 19:08] – [Tests] klaus | tachtler:postfix_centos_7_-_postscreen_einsetzen [2018/08/25 07:30] (aktuell) – [postscreen_dnsbl_sites] klaus |
---|
[[http://www.postfix.org/|{{:tachtler:index:postfix-48x48.png }}]] [[http://www.postfix.org/|Postfix]] ist Wietse Venema's Mail-Server, welcher bei "IBM research" als Alternative zum ehemals weit verbreiteten Programm [[http://www.sendmail.org|Sendmail]] entwickelt wurde. [[http://www.postfix.org/|Postfix]] erhebt den Anspruch ein schneller, einfach zu administrierender und sicherer Mail-Server zu sein. | [[http://www.postfix.org/|{{:tachtler:index:postfix-48x48.png }}]] [[http://www.postfix.org/|Postfix]] ist Wietse Venema's Mail-Server, welcher bei "IBM research" als Alternative zum ehemals weit verbreiteten Programm [[http://www.sendmail.org|Sendmail]] entwickelt wurde. [[http://www.postfix.org/|Postfix]] erhebt den Anspruch ein schneller, einfach zu administrierender und sicherer Mail-Server zu sein. |
| |
Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon bietet zusätzlichen Schutz vor Mail-Server Überlastung. Ein [http://www.postfix.org/|Postfix]] ''postscreen''-Prozess kann mehrere eingehende SMTP-Verbindungen gleichzeitig verwalten, und entscheidet, welche Clients eine Verbindung zum [[http://www.postfix.org/|Postfix]] SMTP-Server-Prozess letztendlich aufbauen dürfen. Dadurch ist es Möglich, dass weitere SMTP-Server-Prozesse nicht 1:1 unnötig durch unerwünschten e-Mail-Verkehr gebunden werden und so weiterhin ausreichend [[http://www.postfix.org/|Postfix]] SMTP-Server-Prozess für die einlieferung erwünschter e-Mail zur Verfügung stehen, so dass eine Verzögerung des Beginns einer Serverüberlastung möglicherweise verhindert werden kann. | Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon bietet zusätzlichen Schutz vor Mail-Server Überlastung. Ein [[http://www.postfix.org/|Postfix]] ''postscreen''-Prozess kann mehrere eingehende SMTP-Verbindungen gleichzeitig verwalten, und entscheidet, welche Clients eine Verbindung zum [[http://www.postfix.org/|Postfix]] SMTP-Server-Prozess letztendlich aufbauen dürfen. Dadurch ist es Möglich, dass weitere SMTP-Server-Prozesse nicht 1:1 unnötig durch unerwünschten e-Mail-Verkehr gebunden werden und so weiterhin ausreichend [[http://www.postfix.org/|Postfix]] SMTP-Server-Prozess für die einlieferung erwünschter e-Mail zur Verfügung stehen, so dass eine Verzögerung des Beginns einer Serverüberlastung möglicherweise verhindert werden kann. |
| |
Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon sollten __nicht__ auf Ports betrieben werden, auf denen e-Mails von Endbenutzer-Clients (MUAs) empfangen werden, wie dies z.B mit [[tachtler:postfix_centos_7#port_submission|Postfix CentOS 7 - Port submission]] (Port: 587) der Fall wäre. Wenn Endbenutzer-Clients (MUAs) e-Mails über z.B. [[tachtler:postfix_centos_7#port_submission|Postfix CentOS 7 - Port submission]] (Port: 587) einliefern, wird eine **Client-Authentifizierung** erforderlich, welche der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon **__nicht__ durchführen kann**. | Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon sollten __nicht__ auf Ports betrieben werden, auf denen e-Mails von Endbenutzer-Clients (MUAs) empfangen werden, wie dies z.B mit [[tachtler:postfix_centos_7#port_submission|Postfix CentOS 7 - Port submission]] (Port: 587) der Fall wäre. Wenn Endbenutzer-Clients (MUAs) e-Mails über z.B. [[tachtler:postfix_centos_7#port_submission|Postfix CentOS 7 - Port submission]] (Port: 587) einliefern, wird eine **Client-Authentifizierung** erforderlich, welche der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon **__nicht__ durchführen kann**. |
Password: | Password: |
</code> | </code> |
| |
| ===== Konfiguration ===== |
| |
| ==== postscreen_reject_footer ==== |
| |
| ^ Information ^ Beschreibung ^ |
| | Dokumentation | [[http://www.postfix.org/postconf.5.html#postscreen_reject_footer]] | |
| | Defaultwert | <code>postscreen_reject_footer = $smtpd_reject_footer</code> | |
| | **Neuer Wert** | <code>postscreen_reject_footer = \c. (postscreen) For assistance, contact YOUR postmaster or |
| administrator. He can achieve OUR postmaster via email: <postmaster@tachtler.net>. In any |
| case, please provide the following information in your problem report: This error message, |
| time ($localtime), client ($client_address), port ($client_port) and server ($server_name).</code> | |
| | Beschreibung | Optionale zusätzliche Angaben, die an jede [[http://www.postfix.org|Postfix]] ''postscreen'' Daemon **4xx** oder **5xx-Antwort** angehängt werden. \\ \\ :!: **HINWEIS** - Der obige Text dient dazu, in der [[http://www.postfix.org|Postfix]] LOG-Datei, leichter Datensätze für eine fehlgeschlagene SMTP-Sitzung zu finden. Der Text selbst ist **__nicht__ in der __eigenen__ LOG-Datei** des [[http://www.postfix.org|Postfix]] SMTP-Server protokolliert. | |
| |
| Nachfolgende Tabelle zeigt optionale Variablen, welche in den Text mit eingebaut werden können: |
| |
| ^ Variable ^ Beschreibung ^ |
| | ''client_address'' | Die Client-IP-Adresse, die in der LOG-Datei protokolliert wird. | |
| | ''client_port'' | Der Client-TCP-Port, der in der LOG-Datei protokolliert wird. | |
| | ''localtime'' | Die **lokale** Server Zeit (Mmm dd hh:mm:ss), die in der LOG-Datei protokolliert wird. | |
| | ''server_name'' | Der Hostname (aus ''myhostname'') des Servers. | |
| |
===== Schnelltests: /etc/postfix/main.cf ===== | ===== Schnelltests: /etc/postfix/main.cf ===== |
</code> | </code> |
| |
Hier kommt es auf das **Minuszeichen/Trennstrich** zwischen SMTP-Code und Hostnamen an: | Hier kommt es auf das **Minuszeichen/Trennstrich __zwischen__ SMTP-Code und Hostnamen** an: |
<code> | <code> |
220-mx1.tachtler.net... | 220-mx1.tachtler.net... |
| Dokumentation | [[http://www.postfix.org/postconf.5.html#postscreen_dnsbl_sites]] | | | Dokumentation | [[http://www.postfix.org/postconf.5.html#postscreen_dnsbl_sites]] | |
| Defaultwert | <code>postscreen_dnsbl_sites = </code> | | | Defaultwert | <code>postscreen_dnsbl_sites = </code> | |
| **Neuer Wert** | <code bash>postscreen_dnsbl_sites = zen.spamhaus.org*2, | | **Neuer Wert** | <code bash>postscreen_dnsbl_sites = |
| zen.spamhaus.org*2, |
| bl.mailspike.net*1, |
bl.spamcop.net*1, | bl.spamcop.net*1, |
b.barracudacentral.org*1</code> | | swl.spamhaus.org*-2, |
| b.barracudacentral.org*1 |
| </code> | |
| Beschreibung | Der Parameter gibt eine Liste von DNS-Blocklist-Server mit optionaler Filter und Gewichtsfaktoren (positive Gewichte für Blacklisting, negativ für Whitelisting) an. Diese Server werden parallel mit der umgekehrten Client IP-Adresse abgefragt. | | | Beschreibung | Der Parameter gibt eine Liste von DNS-Blocklist-Server mit optionaler Filter und Gewichtsfaktoren (positive Gewichte für Blacklisting, negativ für Whitelisting) an. Diese Server werden parallel mit der umgekehrten Client IP-Adresse abgefragt. | |
| interner Link | [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_action|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_action]] \\ [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_threshold|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_threshold]] \\ [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_whitelist_threshold|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_whitelist_threshold]] | | | interner Link | [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_action|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_action]] \\ [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_threshold|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_threshold]] \\ [[tachtler:postfix_centos_7_-_postscreen_einsetzen#postscreen_dnsbl_whitelist_threshold|Postfix CentOS 7 - Postscreen einsetzen - Tests "vor" SMTP-Server: 220 - /etc/postfix/main.cf - postscreen_dnsbl_whitelist_threshold]] | |
| |
| :!: **HINWEIS** - Die Nutzung der **DNSBL** - ''b.barracudacentral.org'' - **erfordert eine Anmeldung** unter nachfolgendem externen Link: |
| * [[http://barracudacentral.org/account/register|BarracudaCentral.org - Account - Register]] |
| |
==== postscreen_dnsbl_threshold ==== | ==== postscreen_dnsbl_threshold ==== |
angelegt und aufgebaut wird! | angelegt und aufgebaut wird! |
| |
===== Tests ===== | ===== Erster Test ===== |
| |
Nachfolgende Log-Einträge sollten nun bei der **ersten** Einlieferung einer e-Mail in etwa erscheinen: | Nachfolgende Log-Einträge sollten nun bei der **ersten** Einlieferung einer e-Mail in etwa erscheinen: |
</code> | </code> |
| |
**__Nachfolgende folgen die Erläuterungen zu den Log-Einträgen__**: | **__Nachfolgend die Erläuterungen zu den Log-Einträgen__**: |
| |
* <code>Sep 25 18:39:47 server60 postfix/postscreen[6218]: CONNECT from [217.91.103.190]:48590 to | * <code>Sep 25 18:39:47 server60 postfix/postscreen[6218]: CONNECT from [217.91.103.190]:48590 to |
[192.168.1.60]:25</code> | [192.168.1.60]:25</code> |
| |
| Es wurde eine Verbindung auf Port 25 von ''mx01.nausch.org'' aufgebaut. |
| |
* <code>Sep 25 18:39:53 server60 postfix/tlsproxy[6222]: CONNECT from [217.91.103.190]:48590</code> | * <code>Sep 25 18:39:53 server60 postfix/tlsproxy[6222]: CONNECT from [217.91.103.190]:48590</code> |
| |
| Die Verbindung wurde via STARTTLS fortgesetzt. |
| |
* <code>Sep 25 18:39:54 server60 postfix/tlsproxy[6222]: Anonymous TLS connection established from | * <code>Sep 25 18:39:54 server60 postfix/tlsproxy[6222]: Anonymous TLS connection established from |
[217.91.103.190]:48590: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)</code> | [217.91.103.190]:48590: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)</code> |
| |
| Die Verbindung wurde akzeptiert und der TLS-Handshake war erfolgreich. |
| |
* <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: NOQUEUE: reject: RCPT from [217.91.103.190]:48590: | * <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: NOQUEUE: reject: RCPT from [217.91.103.190]:48590: |
450 4.3.2 Service currently unavailable; from=<michael@nausch.orge>, to=<klaus@tachtler.net>, proto=ESMTP, | 450 4.3.2 Service currently unavailable; from=<michael@nausch.orge>, to=<klaus@tachtler.net>, proto=ESMTP, |
helo=<mx01.nausch.org></code> | helo=<mx01.nausch.org></code> |
| |
| **Die Verbindung wurde abgelehnt, da hier die Prüfungen durchgeführt wurden, welche einen neuen Verbindungsaufbau erfordern!** |
| |
* <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: PASS NEW [217.91.103.190]:48590</code> | * <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: PASS NEW [217.91.103.190]:48590</code> |
| |
| **Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon merkte sich in der Datei ''/var/lib/postfix/postscreen_cache'' den Verbindungsversuch.** |
| |
* <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: DISCONNECT [217.91.103.190]:48590</code> | * <code>Sep 25 18:39:55 server60 postfix/postscreen[6218]: DISCONNECT [217.91.103.190]:48590</code> |
| |
| Die Verbindung wurde abgebaut. |
| |
* <code>Sep 25 18:39:55 server60 postfix/tlsproxy[6222]: DISCONNECT [217.91.103.190]:48590</code> | * <code>Sep 25 18:39:55 server60 postfix/tlsproxy[6222]: DISCONNECT [217.91.103.190]:48590</code> |
| |
Zeile 01: Es wird eine Verbindung auf Port 25 von ''mx01.nausch.org'' aufgebaut. \\ | Die TLS-Verbindung wurde ebenfalls abgebaut. |
Zeile 02: Die Verbindung wird via STARTTLS fortgesetzt. \\ | |
Zeile 03: Die Verbindung wird akzeptiert und der TLS-Handshake war erfolgreich. \\ | |
**Zeile 04:** Die Verbindung wird abgelehnt, da hier die Prüfungen durchgeführt wurden, welche einen neuen Verbindungsaufbau erfordern! \\ | |
**Zeile 05:** Der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon merkt sich in der Datei ''/var/lib/postfix/postscreen_cache'' den Verbindungsversuch. \\ | |
Zeile 06: Die Verbindung wird abgebaut. \\ | |
Zeile 07: die TLS-Verbindung wird ebenfalls abgebaut. \\ | |
| |
* <code>Sep 25 18:40:36 server60 postfix/smtpd[6224]: connect from mx01.nausch.org[217.91.103.190] | * <code>Sep 25 18:40:36 server60 postfix/smtpd[6224]: connect from mx01.nausch.org[217.91.103.190] |
Aufgrund dessen, dass sich der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon den vorherigen Verbindungsversuch in der Datei ''/var/lib/postfix/postscreen_cache'' gemekt hat, diesen also **temporär** ge**whitelistet** hat, kann nun die Einlieferung (wie es auch ohne den [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon wäre) durchgeführt werden. | Aufgrund dessen, dass sich der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon den vorherigen Verbindungsversuch in der Datei ''/var/lib/postfix/postscreen_cache'' gemekt hat, diesen also **temporär** ge**whitelistet** hat, kann nun die Einlieferung (wie es auch ohne den [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon wäre) durchgeführt werden. |
| |
| Mit nachfolgendem Befehl kann der Inhalt der Datei, |
| * ''/var/lib/postfix/postscreen_cache'' |
| in dem sich der [[http://www.postfix.org/|Postfix]] ''postscreen''-Daemon alle Verbindungsversuche merkt, aufgelistet werden: |
| <code> |
| # postmap -s btree:/var/lib/postfix/postscreen_cache |
| 217.91.103.190 1443285593;1443202793;1445791195;1445791195;1445791195 |
| _LAST_CACHE_CLEANUP_COMPLETED_ 1443190262 |
| </code> |
| |
| Einträge können mit nachfolgendem Befehl gelöscht werden: |
| <code> |
| # postmap -d 217.91.103.190 btree:/var/lib/postfix/postscreen_cache |
| </code> |
| |
| |