Postfix: Zugriff von bestimmten IP-Adressen blockieren

Postix Logo mit Schriftzug Postfix

Es gibt immer wieder EMail-Versender die mir mit ihren Spam EMails gewaltig auf die Nerven gehen. Die Absender geben an, das es sich um einen Newsletter handelt, jedoch bewirkt ein abbestellen des Newsletters nur das noch mehr „Newsletter“ zugestellt werden.

Da diese Newsletter bei mir immer von der gleichen IP-Adresse kommen habe ich mir einen gängigen Weg gesucht die Kommunikation mit dieser Adresse vollständig zu unterbinden.

1. IP-Adresse ermitteln

Im EMail-Header ist die gesuchte IP-Adresse die erste vorkommende IP-Adresse die nicht zum eigenen Server gehört.
In meinem Beispiel-EMail-Header ist es die IP-Adresse 192.0.2.85.
(Keine Sorge, der gesammte EMail-Header ist made up, er sieht nur möglichst echt aus. Die IP-Adressen sind IP-Adressen die laut RFC zu Dokumentationszwecken bestimmt sind.)

2. Datei für den Filter erstellen

Um die Datei zu erzeigen benutze ich den Editor vim. Nach dem starten des Editors mittels folgendem Befehl…:

…kann mittels Taste [i] der Eingabemodus gesartet werden.

Nach der Eingabe kann mittels Taste [ESC] und folgender Eingabe von :wq die Datei geschlossen und gespeichert werden.

Anschließend die Datei mit postmap kompilieren, so das Postfix direkt etwas mit dem Filter anfangen kann.:

Durch diesen Aufruf wird eine Datei access_client.db im Ordner etc/postfix/ angelegt.

3. Postfix konfiguration anpassen

In der Postfix Konfigurationsdatei main.cf muss unsere Datei jetzt noch der Option smtpd_sender_restrictions hinzugefügt werden.
Herzu prüfen ich mittels postconf welche Parameter aktuell für die Option „smtpd_sender_restrictions“ gesetzt sind.:

Entsprechend der Ausgabe sind auf meinem Postfix-Server für die „smtpd_sender_restrictions“ keine Optionen gesetzt.

Im Anschluss muss, zur Aktivierung der geänderten Konfiguration, der Postfix-Dienst neu geladen werden.:

Anschließend werden Die Zustellversuche vom Postfix abgelehnt. In den Logiles wird dies entsprechend mit „Client host rejected: Access denied“ vermerkt