Kategorien
Linux Postfix

Postfix: Zugriff von bestimmten IP-Adressen blockieren

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.)

Return-Path: <newsletter@cadbdcedcbfabdadef.de>
Delivered-To: meine-mail@example.org
Received: from mail.example.org
by mail.example.org (Dovecot) with LMTP id NfYUAK7XSFviHAAALzVKdg
for <meine-mail@example.org>; Fri, 13 Jul 2018 18:47:42 +0200
Received: by mail.example.org (Postfix, from userid 114)
id D79F53FE5E; Fri, 13 Jul 2018 18:47:41 +0200 (CEST)
Authentication-Results: mail.example.org;
dkim=pass (1024-bit key; unprotected) header.d=cadbdcedcbfabdadef.de header.i=newsletter@cadbdcedcbfabdadef.de header.b="UKjn3gGF";
dkim-atps=neutral
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail.example.org
X-Spam-Level: *
X-Spam-Status: No, score=1.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
DKIM_VALID_AU,HTML_IMAGE_RATIO_04,HTML_MESSAGE,MIME_HTML_ONLY,URIBL_BLOCKED
autolearn=no autolearn_force=no version=3.4.1
Received: from mta5085.cadbdcedcbfabdadef.com (mta5085.cadbdcedcbfabdadef.com [192.0.2.85])
by mail.example.org (Postfix) with ESMTPS id 669E73FD27
for <meine-mail@example.org>; Fri, 13 Jul 2018 18:47:39 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=teneo; d=cadbdcedcbfabdadef.de;
h=MIME-Version:From:To:Reply-To:Date:Subject:Content-Type:Content-Transfer-Encoding:Message-ID; i=newsletter@cadbdcedcbfabdadef.de;
bh=OBg4dbrG8hhFyJR7HMx+3IDg91CCOeaN9fnJCAVA6oE=;
b=UKjn3gGF5j9dxocn0xfFlMVHW+bbvUjere1rI99nga/TVlqu5OQFSOFkwJNUjgklof9Mi/9DIHrf
gafjAml+Onn6z29PSoAid1Rrn+K67B5XxKVk0qrHjSen3jMIf6SPdQRB9rQzvh7uIUAhmyLCVAnC
zbc2RugGh4/eZEvVYu4=
Received: from mta003.example.com (198.51.100.78) by mta5085.cadbdcedcbfabdadef.com id h93bqk1bessq for <meine-mail@example.org>; Fri, 13 Jul 2018 18:47:32 +0200 (envelope-from <newsletter@cadbdcedcbfabdadef.de>)
X-ARF: b98b6becf874558246b684f462613228
Feedback-ID: 5283550-b98b6becf874558246b684f462613228:b98b6becf874558246b684f462613228:newsletter:cadbdcedcbfabdadef
MIME-Version: 1.0
From: "cadbdcedcbfabdadef"<newsletter@cadbdcedcbfabdadef.de>
To: meine-mail@example.org
Reply-To: noreply@cadbdcedcbfabdadef.de
Date: 13 Jul 2018 18:47:32 +0200
Subject: Micro-SD-Karten
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64
Message-ID: <0.0.569.CF.1A41AC9425F793A.0@mta5085.cadbdcedcbfabdadef.com>

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…:

vi /etc/postfix/access_client

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

# IP Adresse und IP-Netze die ich blockiere
192.0.2.85 REJECT

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.:

postmap hash:/etc/postfix/access_client

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.:

sudo postconf -p smtpd_sender_restrictions
smtpd_sender_restrictions =

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

sudo postconf "smtpd_sender_restrictions = check_client_access hash:/etc/postfix/access_client"

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

service postfix reload

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

Jul 18 10:21:16 server postfix/smtpd[3304]: connect from mta5085.cadbdcedcbfabdadef.com[192.0.2.85]
Jul 18 10:21:16 server postfix/smtpd[3304]: NOQUEUE: reject: RCPT from mta5085.cadbdcedcbfabdadef.com[192.0.2.85]: 554 5.7.1 : Client host rejected: Access denied; from= to= proto=ESMTP helo=
Jul 18 10:21:16 server postfix/smtpd[3304]: disconnect from mta5085.cadbdcedcbfabdadef.com[192.0.2.85] ehlo=2 starttls=1 mail=1 rcpt=0/1 quit=1 commands=5/6
Jul 18 10:26:39 server postfix/anvil[3305]: statistics: max connection rate 1/60s for (smtpd:192.0.2.85) at Jul 18 10:21:16
Jul 18 10:26:39 server postfix/anvil[3305]: statistics: max connection count 1 for (smtpd:192.0.2.85) at Jul 18 10:21:16