Nach vielem hin und her hat eine KI nach genauen Angaben und vielen Fehlversuchen eine scheinbar brauchbare Konfiguration für das beschriebene Problem geliefert.

- Filter nur für eine bestimmte Empfängeradresse auf meinem Postfix
- Whitelist-Prinzip mit abschließendem REJECT

1. **Erstellen Sie die Whitelist-Datei:**

Erstellen Sie die Datei `/etc/postfix/whitelist` mit den erlaubten Absenderdomains oder -adressen:

   ```plaintext
   [email protected] OK
   example.com OK
   ```

2. **Hash-Map für die Whitelist erstellen:**

   Erstellen Sie eine Hash-Map für die Whitelist-Datei:

   ```bash
   postmap /etc/postfix/whitelist
   ```

3. **Definieren Sie die Restriction Class:**

   Fügen Sie in Ihrer `main.cf` die Definition der Restriction Class hinzu:

   ```plaintext
   smtpd_restriction_classes = restrict_example_recipient
restrict_example_recipient = check_sender_access hash:/etc/postfix/whitelist, reject
   ```

4. **Konfigurieren Sie die Empfängerrestriktionen:**

Erstellen Sie eine Datei `/etc/postfix/recipient_checks` und fügen Sie die spezifische Regel für `[email protected]` hinzu:

   ```plaintext
   [email protected] restrict_example_recipient
   ```

5. **Hash-Map für die Empfängerrestriktionen erstellen:**

   Erstellen Sie eine Hash-Map für die Empfängerrestriktionen:

   ```bash
   postmap /etc/postfix/recipient_checks
   ```

6. **Passen Sie Ihre smtpd_recipient_restrictions an:**

Fügen Sie in der `main.cf` die Anpassungen hinzu, um die Restriction Class zu verwenden:

   ```plaintext
   smtpd_recipient_restrictions =
       check_recipient_access hash:/etc/postfix/recipient_checks,
       permit_mynetworks,
       permit_sasl_authenticated,
       reject_unauth_destination
   ```

7. **Postfix-Konfiguration neu laden:**

   Laden Sie die neue Konfiguration, um die Änderungen wirksam zu machen:

   ```bash
   postfix reload
   ```

### Zusammenfassung der Konfigurationsdateien

**/etc/postfix/whitelist:**
```plaintext
[email protected] OK
example.com OK
```

**/etc/postfix/recipient_checks:**
```plaintext
[email protected] restrict_example_recipient
```

**main.cf (relevante Abschnitte):**
```plaintext
smtpd_restriction_classes = restrict_example_recipient
restrict_example_recipient = check_sender_access hash:/etc/postfix/whitelist, reject

smtpd_recipient_restrictions =
    check_recipient_access hash:/etc/postfix/recipient_checks,
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination
```

### Erläuterung

- **smtpd_restriction_classes**: Definiert eine Restriction Class mit dem Namen `restrict_example_recipient`. - **restrict_example_recipient**: Diese Klasse enthält die Regeln zur Überprüfung der Absenderadresse gegen die Whitelist und zum Verwerfen nicht erlaubter Absender. - **check_recipient_access**: Prüft, ob der Empfänger in der Datei `/etc/postfix/recipient_checks` enthalten ist. Wenn der Empfänger `[email protected]` ist, wird die `restrict_example_recipient` Restriction Class angewendet.
- **permit_mynetworks**: Erlaubt E-Mails von vertrauenswürdigen Netzwerken.
- **permit_sasl_authenticated**: Erlaubt E-Mails von authentifizierten Benutzern. - **reject_unauth_destination**: Verwirft E-Mails, die nicht für lokale Empfänger oder erlaubte Ziele bestimmt sind.

Mit dieser Konfiguration werden nur E-Mails an `[email protected]` durch die Restriction Class gefiltert, während alle anderen E-Mail-Adressen auf Ihrem Postfix-Server normal funktionieren.

Am 22.06.24 um 17:55 schrieb Denny Hanschke via postfix-users:
Okay, hab ich verstanden, welche Alternative hab ich, wenn nur noch Punkt 2 der Voraussetzung gegeben sein muss?

- der Filter sollte nur auf "[email protected]" angewendet werden

Am 22.06.24 um 14:13 schrieb Walter H. via postfix-users:
On 22.06.2024 13:07, Denny Hanschke via postfix-users wrote:
Hallo liebe Postfix-User,

ich habe ein riesen Problem. Eine Mailadresse "[email protected]" gehostet auf meinem Postfix wird in letzter Zeit mit wirklich gut gemachten Spam überrannt. Da ich keine Möglichkeit sehe diesen Spam zuverlässig zu identifizieren und dann zu blocken, kam ich auf die Idee, einfach alle eingehenden Mails an die "[email protected]" zu verwerfen, es sei denn, ich habe die Domains oder den Absender gewhitelistet.

#### Voraussetzung:
- die Umsetzung und Implementierung sollte einfach sein
- der Filter sollte nur auf "[email protected]" angewendet werden
- Möglichst entweder mit PCRE oder REGEX realisierbar
- Das Prinzip des Whitelisting mit abschießendem "REJECT" sollte zu Anwendung kommen

Als Ansatz dafür hab ich mir dafür die header-checks gedacht mit folgendem Inhalt:

# header_checks #
If /^To:.*example@meine-domain\.de/
/^From:.*@domain1\.de/            ACTION
/^From:.*@domain2\.de/            ACTION
/^From:.*liebermensch@domain3\.*/    ACTION
/.*/                                   REJECT
Endif

Hallo,

Du hast den Grundsatz hier komplett übersehen;

header_checks prüft jeweils nur eine Zeile des Mail-Headers, sprich

Du kannst mit if-Blöcken zwar arbeiten, diese funktionieren aber nur jeweils f. die selbe Zeile;

z.B.

# reject specific mails
if /^from:[[:space:]].*$/
/^from:[[:space:]][[:alnum:][:punct:][:space:]]*(\<)?(mailings\@gmx\.net|mailings\@gmx(net)?\.de|keineantwortadresse\@web\.de)(\>)?.*$/
         REJECT 5.7.1 Mail is SPAM.
/^from:[[:space:]][[:alnum:][:punct:][:space:]]*(\<)?([[:alnum:]_\.\-]+\@[[:alnum:]_\.\-]+invalid)(\>)?.*$/
         REJECT 5.7.1 Mail is SPAM. Invalid sender given.
endif

das ist hier nur eine Optimierung dahingehend, dass für alle Zeilen, welche nicht mit 'from' beginnen,
die komplexen regexp auch nicht geprüft werden;



Antwort per Email an