OPNsense - Postfix Mail-Gateway
Auf einen Blick
| Gilt für | OPNsense 26.1/26.7 mit Plugin os-postfix 1.24 (optional os-rspamd, os-redis, os-clamav, os-acme-client) |
|---|---|
| Bereich | IT-Security |
| Dauer | ca. 45 Minuten (ohne DNS-Laufzeiten) |
| Rechte | Administrator (OPNsense-WebUI), Zugriff auf die DNS-Zone der Maildomain |
| Stand | Oktober 2026 |
Mit dem Plugin os-postfix wird OPNsense zum Mail-Gateway: Postfix nimmt eingehende E-Mails aus dem Internet entgegen, prüft sie und leitet sie an den internen Mailserver (z. B. Microsoft Exchange, Kopano, Zimbra oder einen Linux-Mailserver) weiter. Ausgehende Mails des Mailservers können über die Firewall direkt oder über einen Smarthost versendet werden. Zusammen mit dem Spamfilter Rspamd (siehe OPNsense - Rspamd Spamfilter) entsteht so ein vollwertiges Spam- und Malware-Gateway vor dem eigenen Mailserver.
Diese Anleitung beschreibt Planung, Einrichtung und Absicherung des Postfix-Plugins Schritt für Schritt.
Wofür ein Mail-Gateway auf der OPNsense?
- Mailserver nicht direkt ins Internet stellen: Nur die Firewall nimmt SMTP-Verbindungen aus dem Internet an; der Mailserver bleibt im internen Netz bzw. in einer DMZ.
- Spam und Malware vor dem Mailserver abfangen: Unerwünschte Mails werden schon am Rand des Netzes abgelehnt – das entlastet den Mailserver.
- Unbekannte Empfänger früh ablehnen: Postfix prüft gegen eine Empfängerliste und verhindert so Rückläufer an gefälschte Absender (Backscatter).
- Einheitliche TLS-Verschlüsselung nach außen mit einem gültigen Zertifikat.
- Ausgehende Mails über einen Smarthost versenden, z. B. wenn die Internetleitung keine eigene feste IP-Adresse mit passendem Reverse-DNS-Eintrag hat.

Voraussetzungen und Planung
DNS-Einträge
| Eintrag | Beispiel | Zweck |
|---|---|---|
| A-Record | mx.example.com → 203.0.113.10 |
Name des Gateways |
| MX-Record | example.com MX 10 mx.example.com |
Eingehende Mails an die Firewall leiten |
| PTR (Reverse-DNS) | 203.0.113.10 → mx.example.com |
Beim Provider beauftragen; ohne passenden PTR lehnen viele Empfänger ausgehende Mails ab |
| SPF | example.com TXT "v=spf1 mx -all" |
Erlaubte Absender-Server festlegen |
| DMARC | _dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com" |
Richtlinie für SPF/DKIM-Fehler |
DKIM-Signaturen für ausgehende Mails sollte in diesem Aufbau der Mailserver (z. B. Exchange mit einem DKIM-Agent) oder der Smarthost erzeugen.
Plugins installieren
Unter System → Firmware → Plugins installieren:
- os-postfix (Pflicht)
- os-rspamd und os-redis (Spamfilter, empfohlen)
- os-clamav (Virenprüfung, optional)
- os-acme-client (Let’s-Encrypt-Zertifikat für den MX-Namen, empfohlen)
Zertifikat
Unter Services → ACME Client (siehe ACME-Client auf der OPNsense) ein Zertifikat für mx.example.com ausstellen (oder ein vorhandenes Zertifikat unter System → Trust importieren). Es wird später in Postfix als Server Certificate ausgewählt.
Schritt 1: Allgemeine Einstellungen (Services → Postfix → General)
| Einstellung | Empfehlung |
|---|---|
| Enable | aktivieren (erst nach Abschluss der Konfiguration anwenden) |
| System Hostname | mx.example.com – muss zum MX-, A- und PTR-Eintrag passen
|
| System Domain / System Origin | example.com
|
| Listen IPs / Listen Port | leer bzw. 25 (alle Schnittstellen, Zugriff wird per Firewall gesteuert)
|
| Trusted Networks | nur die Adresse des internen Mailservers zusätzlich zu den Loopback-Netzen, z. B. 127.0.0.0/8, 192.168.10.25/32. Niemals ganze Netze oder Internetadressen – sonst entsteht ein offenes Relay.
|
| SMTP Banner | optional ohne Versionsangaben |
| Message Size Limit | passend zum Mailserver, Standard 51200000 Byte (50 MB) |
| Allow TLS Only | aktivieren (SSLv2/SSLv3 aus) |
| TLS Server Compatibility / TLS Client Compatibility | Intermediate (Standard) – Modern kann ältere Gegenstellen aussperren |
| Server Certificate / Root CA | das ACME-Zertifikat für mx.example.com und dessen CA
|
| SMTP Client Security | may (opportunistisches TLS, Standard); encrypt nur, wenn alle Ziele TLS sprechen (z. B. beim Versand nur über einen Smarthost); dane bei DNSSEC-validierendem Resolver |
| Smart Host | optional: Relay für ausgehende Mails, z. B. [smtp.provider.de]:587 – eckige Klammern unterdrücken die MX-Abfrage
|
| Enable SMTP Authentication / Benutzer / Passwort | Zugangsdaten für den Smarthost |
| Enforce Recipient Relay Check | aktivieren, sobald die Empfängerliste gepflegt ist (siehe Schritt 3) |
Restriktionen
Im unteren Bereich stehen die Postfix-Prüfungen zur Verfügung. Empfehlung für ein Gateway:
| Option | Empfehlung | Wirkung |
|---|---|---|
| Reject Unauthenticated Destination | an (Standard) | Kein Relay für fremde Domains – unverzichtbar |
| Permit Trusted Networks | an (Standard) | Der interne Mailserver darf über das Gateway versenden |
| Reject Unauthenticated Pipelining | an | Blockiert schlecht programmierte Spam-Software |
| Reject Non-FQDN HELO Hostname / Reject Invalid HELO Hostname | an | Unsaubere HELO-Namen ablehnen |
| Reject Unknown Sender Domain / Reject Non-FQDN Sender | an | Absender mit nicht existierender Domain ablehnen |
| Reject Unknown Recipient Domain / Reject Non-FQDN Recipient | an | Ungültige Empfängerdomains ablehnen |
| Reject Unknown Client Hostname / Reject Unknown HELO Hostname | mit Vorsicht | Sehr streng – lehnt auch legitime Server mit fehlerhaftem DNS ab |
| Reject Unverified Recipient | optional | Prüft Empfänger live beim Mailserver (Recipient Address Verification) – erzeugt Last, ersetzt aber eine manuelle Empfängerliste |
Save klicken.
Schritt 2: Domains (Services → Postfix → Domains)
Für jede Maildomain einen Eintrag anlegen:
- Domainname:
example.com - Destination: interner Mailserver in eckigen Klammern, z. B.
[192.168.10.25](Klammern verhindern eine MX-Abfrage; ein abweichender Port wird mit:2525angehängt).
Dadurch wird die Domain als relay_domain angenommen und per Transport an den Mailserver weitergereicht. Apply klicken.
Schritt 3: Gültige Empfänger (Services → Postfix → Recipients)
Ohne Empfängerliste nimmt Postfix Mails an jede Adresse der Domain an; der Mailserver lehnt Unbekannte später ab und erzeugt Unzustellbarkeitsberichte an meist gefälschte Absender (Backscatter). Daher:
- Für jede gültige Adresse einen Eintrag mit Recipient Address (z. B.
info@example.com) und Action OK anlegen. - Unter General Enforce Recipient Relay Check aktivieren – nun werden alle nicht gelisteten Empfänger bereits beim SMTP-Dialog mit Fehler 5xx abgelehnt.
- Einzelne Adressen lassen sich mit Action REJECT gezielt sperren.
Bei vielen Postfächern ist alternativ Reject Unverified Recipient (Live-Prüfung beim Mailserver) bequemer.
Schritt 4: Weitere Funktionen nach Bedarf
| Menüpunkt | Zweck | Beispiel |
|---|---|---|
| Senders | Absender gezielt erlauben (OK) oder ablehnen (REJECT) | Lästigen Newsletter-Absender sperren |
| Recipient BCC / Sender BCC | Kopie aller Mails an/von einer Adresse an eine weitere Adresse | Archivierung oder Stellvertretung |
| Sender Canonical Rewriting | Absenderadressen umschreiben | @intern.local → @example.com
|
| Address Rewriting | Adressen allgemein umschreiben (virtual) | Alias vertrieb@example.com → sales@example.com
|
| Header Checks | Header per regulärem Ausdruck prüfen oder entfernen | /^\s*User-Agent/ IGNORE entfernt interne Client-Informationen aus ausgehenden Mails
|
Unter General lassen sich mit Masquerade Domains interne Hostnamen in ausgehenden Adressen verbergen.
Schritt 5: Spamfilter anbinden (Services → Postfix → Antispam)
Ist Rspamd eingerichtet (siehe OPNsense - Rspamd Spamfilter), im Reiter Antispam:
- Enable Rspamd Integration aktivieren – Postfix übergibt jede Mail per Milter-Protokoll an Rspamd.
- Milter Default Action: accept (Standard) stellt Mails auch zu, wenn Rspamd kurz nicht läuft; tempfail lässt sie in diesem Fall vom Absender später erneut einliefern – sicherer, aber mit Verzögerung.
Schritt 6: Firewall und Mailserver anpassen
- Firewall → Rules, Interface WAN: Pass, TCP, Quelle any, Ziel This Firewall (bzw. WAN address), Port 25.
- Eine bisherige Portweiterleitung von Port 25 direkt auf den Mailserver unter Firewall → NAT → Destination NAT entfernen – sonst umgehen Mails das Gateway.
- Interface LAN bzw. DMZ: Der Mailserver darf die Firewall auf Port 25 erreichen.
- Mailserver: Ausgehende Mails über die Firewall als Smarthost senden (bei Exchange: Sendeconnector mit Smarthost
192.168.10.1). Eingehend die Annahme nur noch vom Gateway erlauben (bei Exchange: Empfangsconnector auf die IP der Firewall beschränken). - Optional ausgehende SMTP-Verbindungen aus dem LAN direkt ins Internet blockieren – dann können nur noch Mailserver und Gateway Mails versenden, und mit Schadsoftware infizierte Clients nicht.
Schritt 7: Testen
- Log: Services → Postfix → Log File zeigt jede angenommene, abgelehnte und weitergeleitete Mail.
- Externer Test: Eine Mail von einem externen Konto senden und im Log den Weg verfolgen (status=sent mit relay=[192.168.10.25]).
- Open-Relay-Test: Mit einem Online-Relay-Test prüfen, dass Postfix keine Mails an fremde Domains annimmt.
- TLS-Test: Mit einem Online-TLS-Prüfdienst Zertifikat und Verschlüsselung von
mx.example.com:25kontrollieren. - Manueller SMTP-Dialog (von außen), z. B. mit swaks:
swaks --to info@example.com --from test@extern.de --server mx.example.com --tls
Typische Probleme und Lösungen
| Symptom | Ursache und Lösung |
|---|---|
| Relay access denied für eigene Domain | Domain unter Domains fehlt oder ist nicht aktiviert; Apply vergessen. |
| Recipient address rejected: User unknown | Empfänger fehlt in Recipients, obwohl Enforce Recipient Relay Check aktiv ist. |
| Ausgehende Mails landen beim Empfänger im Spam | PTR passt nicht zum System Hostname, SPF/DKIM/DMARC fehlen – oder Smarthost verwenden. |
| Mails bleiben in der Warteschlange (deferred) | Mailserver nicht erreichbar (Destination, Firewall-Regel), Smarthost-Zugangsdaten falsch, Port 25 ausgehend beim Provider gesperrt. |
| Legitime Absender werden abgelehnt | Zu strenge Restriktionen (Reject Unknown Client/HELO Hostname) – deaktivieren und im Log prüfen. |
| Postfix startet nicht | Zertifikat oder CA fehlt; Syntaxfehler in einem Header-Check-Ausdruck. |
Sicherheitsempfehlungen
- Trusted Networks minimal halten – nur der interne Mailserver.
- Empfängerprüfung aktivieren (Recipient-Liste oder Live-Verifikation).
- Rspamd mit Greylisting, SPF/DKIM/DMARC-Prüfung und ClamAV aktivieren.
- Updates: Postfix, Rspamd und ClamAV-Signaturen aktuell halten (OPNsense-Firmware-Updates, freshclam).
- Logs zentral auswerten, z. B. in einem Open-Source-SIEM auf Wazuh-Basis – so fallen Angriffe und Fehlkonfigurationen schnell auf.
- Hochverfügbarkeit: Bei nur einem Gateway einen zweiten MX-Eintrag mit niedrigerer Priorität (z. B. beim Provider) erwägen.
Fazit
Mit os-postfix wird die OPNsense mit überschaubarem Aufwand zum Mail-Gateway, das den internen Mailserver vom Internet abschirmt, unbekannte Empfänger früh ablehnt und den Versand sauber über TLS oder einen Smarthost abwickelt. Seine volle Stärke entfaltet das Gateway im Zusammenspiel mit Rspamd, Redis und ClamAV als mehrstufiger Spam- und Malware-Filter.
Unterstützung von m.a.x. it
Sie möchten Ihren Exchange- oder Linux-Mailserver mit einem Mail-Gateway auf OPNsense absichern oder SPF, DKIM und DMARC sauber einrichten? m.a.x. it unterstützt Sie als OPNsense-Gold-Partner mit OPNsense-Firewall-Services von m.a.x. it. Rund um Exchange und Microsoft 365 hilft Ihnen die Microsoft-365-Beratung von m.a.x. it.
Siehe auch
- OPNsense - ACME-Client für Let's Encrypt-Zertifikate
- OPNsense - Rspamd Spamfilter
- OPNsense - Plugin-Liste
- OPNsense - Stunnel-Plugin
- SMTP
- MX-Record
- SPF
- DKIM
- DMARC
- STARTTLS
- Let's Encrypt
Links und Quellen
- OPNsense-Doku – Mail-Gateway einrichten
- Postfix – offizielle Dokumentation
- Quellcode des Plugins os-postfix
- m.a.x. it – OPNsense-Firewall-Services
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
