Postfix relay domains: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 26: | Zeile 26: | ||
;Konfiguration aktivieren: | ;Konfiguration aktivieren: | ||
*postfix reload | *postfix reload | ||
| + | |||
| + | == Backscatter-Spam == | ||
| + | * Unerwünschtes Nebenprodukt von Spam-Wellen mit gefälschten Absenderadressen | ||
| + | * Ablauf: Ein Spammer verschickt Mails mit gefälschtem Absender (z. B. opfer@example.com) → Postfix nimmt die Mail an → stellt fest, dass der Empfänger nicht existiert → schickt eine Unzustellbarkeits-Benachrichtigung (NDR/Bounce) zurück → das Bounce geht an den gefälschten Absender | ||
| + | * Das Opfer erhält massenhaft Fehlermeldungen für Mails, die es nie verschickt hat | ||
| + | * Der eigene Mailserver landet dadurch auf Blacklists | ||
| + | |||
| + | === Warum relay_domains besonders anfällig ist === | ||
| + | * Postfix arbeitet bei Relay-Mails in zwei Phasen: | ||
| + | ;Phase 1 – SMTP-Session: Mail wird angenommen, kein Empfänger-Check | ||
| + | ;Phase 2 – Queue-Verarbeitung: Weiterleitung schlägt fehl → Bounce an den (gefälschten) Absender | ||
| + | * Ohne relay_recipient_maps akzeptiert Postfix in Phase 1 jede beliebige Empfängeradresse der Relay-Domain – auch nicht existierende | ||
| + | |||
| + | === Lösung: relay_recipient_maps === | ||
| + | * Der Empfänger-Check findet bereits in Phase 1 (SMTP-Session) statt | ||
| + | * Bei unbekannter Adresse antwortet Postfix sofort mit <code>550 User unknown</code> direkt an den sendenden Server | ||
| + | * Es wird keine Bounce-Mail erzeugt – kein Backscatter | ||
| + | |||
| + | ;Drei gängige Varianten: | ||
| + | |||
| + | ;1. Statische Hash-Tabelle: | ||
| + | * Alle gültigen Adressen werden manuell gepflegt | ||
| + | * Geeignet für kleine Umgebungen und Lab-Setups | ||
| + | <pre> | ||
| + | benutzer1@example.com OK | ||
| + | benutzer2@example.com OK | ||
| + | </pre> | ||
| + | *postmap /etc/postfix/relay_recipients | ||
| + | relay_recipient_maps = hash:/etc/postfix/relay_recipients | ||
| + | |||
| + | ;2. LDAP/AD-Abfrage: | ||
| + | * Postfix fragt direkt beim Active Directory oder LDAP-Server nach | ||
| + | * Pflegt sich selbst bei Personaländerungen – empfohlen für Umgebungen mit Exchange | ||
| + | relay_recipient_maps = ldap:/etc/postfix/ldap-relay-recipients.cf | ||
| + | |||
| + | ;3. Callout-Verification: | ||
| + | * Postfix fragt den Zielserver (z. B. Exchange) per SMTP, ob die Adresse existiert | ||
| + | * Kein extra Mapping nötig | ||
| + | * Voraussetzung: Der Zielserver muss ungültige Adressen mit 550 ablehnen | ||
| + | smtpd_recipient_restrictions = reject_unverified_recipient | ||
| + | |||
| + | {{Hinweis|Im Lab-Setup mit wenigen fiktiven Adressen ist die statische Hash-Tabelle ausreichend. In der Praxis mit Exchange oder großen Umgebungen ist die LDAP-Abfrage die wartungsfreundlichste Lösung.}} | ||
Aktuelle Version vom 6. Juni 2026, 12:10 Uhr
relay_domains (Zuständigkeit für externe Ziel-Domains)
- Definiert Domains, für die Postfix E-Mails von überall (Internet) annimmt, um sie an ein Zielsystem (z. B. internen Exchange) weiterzuleiten
- Wird genutzt, wenn Postfix als Gateway, Spam-Filter oder Backup-MX vor dem eigentlichen Mailserver agiert
- Verhindert "Relay access denied" für diese spezifischen Ziel-Domains
- Muss zwingend mit relay_recipient_maps kombiniert werden, um Backscatter-Spam an ungültige Adressen zu vermeiden
Beispiel: Relay-Domains-Tabelle erstellen
- Datei erstellen
- vi /etc/postfix/relay_domains
example.com trusted-domain.com
- Tabelle für Postfix indizieren
- postmap /etc/postfix/relay_domains
In /etc/postfix/main.cf konfigurieren
- Datei bearbeiten
- vi /etc/postfix/main.cf
- Parameter setzen
relay_domains = hash:/etc/postfix/relay_domains # Wichtig zur Vermeidung von Backscatter: relay_recipient_maps = hash:/etc/postfix/relay_recipients
Postfix neu laden
- Konfiguration aktivieren
- postfix reload
Backscatter-Spam
- Unerwünschtes Nebenprodukt von Spam-Wellen mit gefälschten Absenderadressen
- Ablauf: Ein Spammer verschickt Mails mit gefälschtem Absender (z. B. opfer@example.com) → Postfix nimmt die Mail an → stellt fest, dass der Empfänger nicht existiert → schickt eine Unzustellbarkeits-Benachrichtigung (NDR/Bounce) zurück → das Bounce geht an den gefälschten Absender
- Das Opfer erhält massenhaft Fehlermeldungen für Mails, die es nie verschickt hat
- Der eigene Mailserver landet dadurch auf Blacklists
Warum relay_domains besonders anfällig ist
- Postfix arbeitet bei Relay-Mails in zwei Phasen:
- Phase 1 – SMTP-Session
- Mail wird angenommen, kein Empfänger-Check
- Phase 2 – Queue-Verarbeitung
- Weiterleitung schlägt fehl → Bounce an den (gefälschten) Absender
- Ohne relay_recipient_maps akzeptiert Postfix in Phase 1 jede beliebige Empfängeradresse der Relay-Domain – auch nicht existierende
Lösung: relay_recipient_maps
- Der Empfänger-Check findet bereits in Phase 1 (SMTP-Session) statt
- Bei unbekannter Adresse antwortet Postfix sofort mit
550 User unknowndirekt an den sendenden Server - Es wird keine Bounce-Mail erzeugt – kein Backscatter
- Drei gängige Varianten
- 1. Statische Hash-Tabelle
- Alle gültigen Adressen werden manuell gepflegt
- Geeignet für kleine Umgebungen und Lab-Setups
benutzer1@example.com OK benutzer2@example.com OK
- postmap /etc/postfix/relay_recipients
relay_recipient_maps = hash:/etc/postfix/relay_recipients
- 2. LDAP/AD-Abfrage
- Postfix fragt direkt beim Active Directory oder LDAP-Server nach
- Pflegt sich selbst bei Personaländerungen – empfohlen für Umgebungen mit Exchange
relay_recipient_maps = ldap:/etc/postfix/ldap-relay-recipients.cf
- 3. Callout-Verification
- Postfix fragt den Zielserver (z. B. Exchange) per SMTP, ob die Adresse existiert
- Kein extra Mapping nötig
- Voraussetzung: Der Zielserver muss ungültige Adressen mit 550 ablehnen
smtpd_recipient_restrictions = reject_unverified_recipient