Lesen Sie zuerst den vorherigen Teil
Dieser Artikel ist der siebte Beitrag in der Serie „E-Mail-Server unter Linux einrichten“.
Im vorherigen Teil haben wir behandelt, wie Dovecot mit PostgreSQL integriert wird, um die Benutzerauthentifizierung einzurichten.
Falls Sie es noch nicht überprüft haben, empfehle ich, dies zuerst zu lesen.
👉 Vorheriger Teil: Dovecot auth-sql.conf.ext Einstellungen und Passwort-Hashing
Postfix-Konfigurationsdateistruktur
Postfix ist ein SMTP-Server, der für den Versand von E-Mails verantwortlich ist und verschiedene Konfigurationsdateien verwendet, um seine Funktionsweise zu steuern.
In diesem Artikel wird die Struktur der Postfix-Konfigurationsdateien und ihre Hauptfunktionen erläutert.
Wichtige Postfix-Konfigurationsdateien
Dateiname | Rolle |
---|---|
/etc/postfix/main.cf | Wichtige Konfigurationsdatei von Postfix (E-Mail-Versand, Netzwerkeinstellungen usw.) |
/etc/postfix/master.cf | Verwaltung der Postfix-Dienste (SMTP, LMTP, SASL-Authentifizierung usw.) |
/etc/postfix/virtual | Mapping von virtuellen Benutzern (Domain) |
/etc/postfix/aliases | Verwaltung von E-Mail-Aliasen für Systembenutzer |
/etc/postfix/transport | Festlegung des E-Mail-Versandweges für bestimmte Domains/Adressen |
/etc/postfix/relay_domains | Festlegung der Relay-erlaubten Domains |
/etc/postfix/sasl_passwd | Speicherung von Authentifizierungsinformationen für den SMTP-Relay-Server |
/etc/postfix/sql/*.cf | Konfigurationsdateien zur Datenbankanbindung (PostgreSQL) |
Wichtige Postfix-Konfigurationselemente (main.cf
)
Schauen wir uns die wichtigsten Konfigurationseinstellungen an, die das Verhalten von Postfix definieren.
Der Dateipfad ist /etc/postfix/main.cf
.
1️⃣ Grundlegende E-Mail-Server-Einstellungen
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
myhostname
→ Hostname des E-Mail-Serversmydomain
→ Standard-Domain-Einstellunginet_interfaces
→ Konfiguration zum Empfangen von E-Mails über alle Netzwerk-Interfacesinet_protocols
→ Nur IPv4 verwenden (IPv6 kann deaktiviert werden)
2️⃣ E-Mail-Relay-Beschränkungen
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
permit_mynetworks
→ Relay nur in vertrauenswürdigen Netzwerken erlaubenpermit_sasl_authenticated
→ Nur SASL-authentifizierte Benutzer dürfen E-Mails relayndefer_unauth_destination
→ Unauthentifiziertes externes Relay blockieren
3️⃣ Virtuelle Benutzer und Datenbankintegration
Um Postfix PostgreSQL zur Verwaltung virtueller Domains und Mailboxen zu verwenden, müssen die folgenden Einstellungen hinzugefügt werden.
virtual_mailbox_domains = pgsql:/etc/postfix/sql/virtual_domains.cf
virtual_mailbox_maps = pgsql:/etc/postfix/sql/virtual_mailboxes.cf
virtual_alias_maps = pgsql:/etc/postfix/sql/virtual_aliases.cf
🔹 Erklärung
- virtual_mailbox_domains
→ Abfrage der empfangbaren virtuellen Domains aus der Datenbank
- virtual_mailbox_maps
→ Abfrage der Benutzer-Email-Box-Informationen aus der Datenbank
- virtual_alias_maps
→ Abfrage der E-Mail-Aliase aus der Datenbank
💡 Im Falle von MySQL
Sie könnenpgsql:
durchmysql:
ersetzen.💡 In einer Umgebung mit hohem Datenverkehr kann die Verwendung von proxy:pgsql: in Bezug auf die Leistung vorteilhaft sein. Allerdings funktioniert es in einer allgemeinen Umgebung auch ohne proxy: gut.
Postfix so einrichten, dass es die Datenbank verwendet
Um Postfix PostgreSQL verwenden zu lassen, müssen die entsprechenden Pakete installiert werden.
sudo apt update
sudo apt install postfix postfix-pgsql
postfix
→ Grundlegender Postfix SMTP-Serverpostfix-pgsql
→ Paket, das Postfix die Integration mit PostgreSQL ermöglicht
Nach der Installation müssen Sie eine Konfigurationsdatei erstellen, damit Postfix Benutzerinformationen von PostgreSQL abruft.
Postfix-Datenbankintegrationskonfiguration (Erstellen von virtual_*.cf
Dateien)
Postfix verwendet die Dateien virtual_domains.cf
, virtual_mailboxes.cf
und virtual_aliases.cf
, um Informationen aus der Datenbank abzurufen.
Diese Dateien müssen direkt erstellt werden; orientieren Sie sich an den folgenden Inhalten, um diese zu erstellen.
1️⃣ /etc/postfix/sql/virtual_domains.cf
(Domainabfrageeinstellungen)
user = mailadmin
password = yourpassword
dbname = mail
hosts = 127.0.0.1
query = SELECT domain_name FROM mail_domain WHERE domain_name='%s' AND active=true
Erklärung
user
→ PostgreSQL-Benutzerkonto (Stellen Sie sicher, dass der Benutzer, der auf die DB zugreift, zuvor in der DB erstellt wurde.)
password
→ Passwort des PostgreSQL-Kontos (Datenbankbenutzer mailadmin
Passwort)
dbname
→ Datenbankname
hosts
→ Datenbankserveradresse (lokaler Server verwenden)
query
→ Abfrage von empfangbaren Domains aus der mail_domain-Tabelle
2️⃣ /etc/postfix/sql/virtual_mailboxes.cf
(Mailboxabfrageeinstellungen)
user = mailadmin
password = yourpassword
dbname = mail
hosts = 127.0.0.1
query = SELECT home_directory FROM mail_users WHERE email='%s'
Erklärung
query
→ Abfrage des Speicherorts der E-Mails des Benutzers (gibt das Feld home_directory
aus der Tabelle mail_users
zurück)
Postfix gibt den Pfad zurück, damit die E-Mails des Benutzers im richtigen Verzeichnis gespeichert werden.
3️⃣ /etc/postfix/sql/virtual_aliases.cf
(E-Mail-Aliasabfrageeinstellungen)
user = mailadmin
password = yourpassword
dbname = mail
hosts = 127.0.0.1
query = SELECT destination_email FROM mail_alias WHERE source_email='%s'
Erklärung
query
→ Bei Vorhandensein von Aliassen wird die tatsächliche Ziel-E-Mail abgerufen, an die die E-Mail weitergeleitet wird.
Es sucht in der Tabelle mail_alias
nach der registrierten E-Mail des Aliasses und gibt sie zurück.
Sicherheitskonfiguration
Diese Konfigurationsdateien müssen aufgrund der enthaltenen Passwörter gesperrt werden.
sudo chmod 640 /etc/postfix/sql/virtual_*.cf
sudo chown root:postfix /etc/postfix/sql/virtual_*.cf
🔒 Sicherheitshinweise:
Da die Konfigurationsdateien Passwörter enthalten, müssen die Zugriffsrechte eingeschränkt werden, damit andere Benutzer sie nicht lesen können.
Setzen Sie die Berechtigung auf 640, sodass nur der Postfix-Prozess (Gruppe postfix) darauf zugreifen kann.
Postfix-Konfiguration neu laden
Nachdem die Konfiguration vollständig ist, sollten Sie Postfix neu starten, um die Änderungen zu übernehmen.
sudo systemctl restart postfix
Zusammenfassung und nächste Schritte
✅ Erklärung der Struktur und Rolle der Postfix-Konfigurationsdateien
✅ Hinzufügen von Hauptkonfigurationen in main.cf
von Postfix
✅ Konfiguration der virtual_*.cf
Dateien, um Postfix mit PostgreSQL zu integrieren
Im nächsten Teil werden wir behandeln, wie Postfix mit Dovecot integriert wird, um SMTP-Authentifizierung zu konfigurieren.
Dabei werden wir den E-Mail-Server so konfigurieren, dass er die Funktionen des Sendens und Empfangens vollständig unterstützen kann.
👉 Nächster Teil: Integration von Postfix und Dovecot sowie SMTP-Authentifizierung (Demnächst!)
Add a New Comment