Zum Inhalt springen

Postfix/Nachschlagetabellen: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „ TCP “ durch „ TCP
K Textersetzung - „ Postfix-“ durch „ Postfix-“
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Beschreibung ==
== Beschreibung ==
; Postfix Nachschlagetabellen
; [[Postfix]] Nachschlagetabellen
Informationen speichern und nachschlagen  
Informationen speichern und nachschlagen  
* Zugriffskontrolle
* Zugriffskontrolle
Zeile 8: Zeile 8:
; Nachschlagetabellen werden als "[https://www.postfix.org/DATABASE_README.html type:table]" angegeben
; Nachschlagetabellen werden als "[https://www.postfix.org/DATABASE_README.html type:table]" angegeben
*"Typ" ist einer der Datenbanktypen
*"Typ" ist einer der Datenbanktypen
**siehe [https://www.postfix.org/DATABASE_README.html#types Postfix-Lookup-Tabellentypen]  
**siehe [https://www.postfix.org/DATABASE_README.html#types [[Postfix]]-Lookup-Tabellentypen]  
*"table" der Name Nachschlagetabelle  
*"table" der Name Nachschlagetabelle  
* Die Postfix Dokumentation verwendet die Begriffe "Datenbank" und "Nachschlagetabelle" synonym.
* Die [[Postfix]] Dokumentation verwendet die Begriffe "Datenbank" und "Nachschlagetabelle" synonym.


; Beispiele für Nachschlagetabellen
; Beispiele für Nachschlagetabellen
Zeile 24: Zeile 24:
* Beispiel für die Anbindung komplexer Systeme mit einfachen Schnittstellen
* Beispiel für die Anbindung komplexer Systeme mit einfachen Schnittstellen


; Vorteile der Postfix-Abfrageschnittstelle (Schlüssel, Wert)
; Vorteile der [[Postfix]]-Abfrageschnittstelle (Schlüssel, Wert)
* Sie können Postfix-Nachschlagetabellen zuerst mit local implementieren Berkeley DB-Dateien und wechseln Sie dann ohne irgendwelche zu LDAP oder MySQL Auswirkungen auf die Postfix-Konfiguration selbst, wie unter " [https://www.postfix.org/DATABASE_README.html#preparing Vorbereiten von Postfix für LDAP- oder SQL-Lookups] " unter.  
* Sie können [[Postfix]]-Nachschlagetabellen zuerst mit local implementieren Berkeley DB-Dateien und wechseln Sie dann ohne irgendwelche zu LDAP oder MySQL Auswirkungen auf die [[Postfix]]-Konfiguration selbst, wie unter " [https://www.postfix.org/DATABASE_README.html#preparing Vorbereiten von [[Postfix]] für LDAP- oder SQL-Lookups] " unter.  
* Sie können Berkeley-DB-Dateien mit festen Lookup-Strings für verwenden einfache Adressumschreibungsoperationen und Sie können reguläre Ausdrücke verwenden Tabellen für die komplizierteren Arbeiten.  
* Sie können Berkeley-DB-Dateien mit festen Lookup-Strings für verwenden einfache Adressumschreibungsoperationen und Sie können reguläre Ausdrücke verwenden Tabellen für die komplizierteren Arbeiten.  
* Mit anderen Worten, Sie tun es nicht müssen alles in die gleiche Tabelle stellen.
* Mit anderen Worten, Sie tun es nicht müssen alles in die gleiche Tabelle stellen.


; Postfix-Listen versus Tabellen
; [[Postfix]]-Listen versus Tabellen
Die meisten Postfix-Nachschlagetabellen werden zum Nachschlagen von Informationen verwendet.  
Die meisten [[Postfix]]-Nachschlagetabellen werden zum Nachschlagen von Informationen verwendet.  
* Beispiele sind das Umschreiben von Adressen (der Lookup-String ist die alte Adresse, und das Ergebnis ist die neue Adresse) oder Zugriffskontrolle (die lookup string ist der Client, Absender oder Empfänger, und das Ergebnis ist eine Aktion wie "Ablehnen").  
* Beispiele sind das Umschreiben von Adressen (der Lookup-String ist die alte Adresse, und das Ergebnis ist die neue Adresse) oder Zugriffskontrolle (die lookup string ist der Client, Absender oder Empfänger, und das Ergebnis ist eine Aktion wie "Ablehnen").  


Bei manchen Tabellen muss Postfix jedoch nur wissen, ob die Nachschlageschlüssel existiert.  
Bei manchen Tabellen muss [[Postfix]] jedoch nur wissen, ob die Nachschlageschlüssel existiert.  
* Jeder nicht leere Nachschlageergebniswert kann verwendet werden hier: das Lookup-Ergebnis wird nicht verwendet.  
* Jeder nicht leere Nachschlageergebniswert kann verwendet werden hier: das Lookup-Ergebnis wird nicht verwendet.  
* Beispiele sind die [https://www.postfix.org/postconf.5.html#local_recipient_maps local_recipient_maps] , die bestimmen, welche lokalen Empfänger Postfix akzeptiert in Mail aus dem Netzwerk den [https://www.postfix.org/postconf.5.html#mydestination mydestination-] Parameter das spezifiziert, für welche Domains Postfix lokal liefert, oder die [https://www.postfix.org/postconf.5.html#mynetworks mynetworks-] Parameter, der die IP-Adressen von vertrauenswürdigen angibt Kunden oder Kundennetzwerke.  
* Beispiele sind die [https://www.postfix.org/postconf.5.html#local_recipient_maps local_recipient_maps] , die bestimmen, welche lokalen Empfänger [[Postfix]] akzeptiert in Mail aus dem Netzwerk den [https://www.postfix.org/postconf.5.html#mydestination mydestination-] Parameter das spezifiziert, für welche Domains [[Postfix]] lokal liefert, oder die [https://www.postfix.org/postconf.5.html#mynetworks mynetworks-] Parameter, der die IP-Adressen von vertrauenswürdigen angibt Kunden oder Kundennetzwerke.  
* Technisch gesehen sind dies keine Listen Tische.  
* Technisch gesehen sind dies keine Listen Tische.  
* Trotz des Unterschieds werden Postfix-Listen hier beschrieben weil sie dieselbe zugrunde liegende Infrastruktur wie Postfix verwenden Nachschlagetabellen.
* Trotz des Unterschieds werden [[Postfix]]-Listen hier beschrieben weil sie dieselbe zugrunde liegende Infrastruktur wie [[Postfix]] verwenden Nachschlagetabellen.


== Pflege von Postfix-Nachschlagetabellendateien ==
== Pflege von [[Postfix]]-Nachschlagetabellendateien ==
Wenn Sie Änderungen an einer Datenbank vornehmen, während das Mailsystem aktiv ist läuft, wäre es wünschenswert, wenn Postfix das Lesen von Informationen vermeidet während diese Informationen geändert werden.  
Wenn Sie Änderungen an einer Datenbank vornehmen, während das Mailsystem aktiv ist läuft, wäre es wünschenswert, wenn [[Postfix]] das Lesen von Informationen vermeidet während diese Informationen geändert werden.  
* Schön wäre es auch, wenn Sie können eine Datenbank ändern, ohne "postfix reload" ausführen zu müssen, um Postfix zu zwingen, die neuen Informationen zu verwenden.  
* Schön wäre es auch, wenn Sie können eine Datenbank ändern, ohne "postfix reload" ausführen zu müssen, um [[Postfix]] zu zwingen, die neuen Informationen zu verwenden.  
* Jedes Mal Sie tun "postfix reload" Postfix verliert viel Leistung.  
* Jedes Mal Sie tun "postfix reload" [[Postfix]] verliert viel Leistung.  
* Wenn Sie eine Netzwerkdatenbank wie LDAP, NIS oder SQL, muss "postfix reload" nicht ausgeführt werden.  
* Wenn Sie eine Netzwerkdatenbank wie LDAP, NIS oder SQL, muss "postfix reload" nicht ausgeführt werden.  
* Das LDAP, NIS oder SQL-Server kümmert sich um Lese-/Schreibzugriffskonflikte und gibt die neuen Daten an Postfix, sobald diese Daten verfügbar sind.  
* Das LDAP, NIS oder SQL-Server kümmert sich um Lese-/Schreibzugriffskonflikte und gibt die neuen Daten an Postfix, sobald diese Daten verfügbar sind.  
* Wenn Sie eine [https://www.postfix.org/regexp_table.5.html regexp] :, [https://www.postfix.org/pcre_table.5.html pcre] :, [https://www.postfix.org/cidr_table.5.html cidr] : oder [https://www.postfix.org/DATABASE_README.html#types texthash] : Datei dann Postfix kann die Dateiänderungen nicht sofort übernehmen.  
* Wenn Sie eine [https://www.postfix.org/regexp_table.5.html regexp] :, [https://www.postfix.org/pcre_table.5.html pcre] :, [https://www.postfix.org/cidr_table.5.html cidr] : oder [https://www.postfix.org/DATABASE_README.html#types texthash] : Datei dann [[Postfix]] kann die Dateiänderungen nicht sofort übernehmen.  
* Dies liegt daran, dass a Der Postfix-Prozess liest die gesamte Datei einmal und nie in den Speicher untersucht die Datei erneut.  
* Dies liegt daran, dass a Der [[Postfix]]-Prozess liest die gesamte Datei einmal und nie in den Speicher untersucht die Datei erneut.  
** Wenn die Datei von einem kurz laufenden Prozess wie z [https://www.postfix.org/smtpd.8.html smtpd(8)] , [https://www.postfix.org/cleanup.8.html cleanup(8)] oder [https://www.postfix.org/local.8.html local(8)] , muss nicht ausgeführt werden "postfix reload" nach einer Änderung.  
** Wenn die Datei von einem kurz laufenden Prozess wie z [https://www.postfix.org/smtpd.8.html smtpd(8)] , [https://www.postfix.org/cleanup.8.html cleanup(8)] oder [https://www.postfix.org/local.8.html local(8)] , muss nicht ausgeführt werden "postfix reload" nach einer Änderung.  
** Wenn die Datei von einem lang andauernden Prozess wie z wie [https://www.postfix.org/trivial-rewrite.8.html trivial-rewrite(8)] auf einem ausgelasteten Server erforderlich sein kann Führen Sie "postfix reload" aus.  
** Wenn die Datei von einem lang andauernden Prozess wie z wie [https://www.postfix.org/trivial-rewrite.8.html trivial-rewrite(8)] auf einem ausgelasteten Server erforderlich sein kann Führen Sie "postfix reload" aus.  
* Wenn Sie eine lokale dateibasierte Datenbank wie DBM oder ändern Berkeley DB, muss "postfix reload" nicht ausgeführt werden.  
* Wenn Sie eine lokale dateibasierte Datenbank wie DBM oder ändern Berkeley DB, muss "postfix reload" nicht ausgeführt werden.  
* Postfix verwendet Dateisperren, um Konflikte beim Lese-/Schreibzugriff zu vermeiden, und wann immer Ein Postfix-Daemon-Prozess bemerkt, dass sich eine Datei geändert hat beenden, bevor die nächste Client-Anforderung bearbeitet wird, sodass eine neue Der Prozess kann mit der neuen Datenbank initialisiert werden.  
* [[Postfix]] verwendet Dateisperren, um Konflikte beim Lese-/Schreibzugriff zu vermeiden, und wann immer Ein [[Postfix]]-Daemon-Prozess bemerkt, dass sich eine Datei geändert hat beenden, bevor die nächste Client-Anforderung bearbeitet wird, sodass eine neue Der Prozess kann mit der neuen Datenbank initialisiert werden.  


== Berkeley DB-Dateien sicher aktualisieren ==
== Berkeley DB-Dateien sicher aktualisieren ==
Zeile 73: Zeile 73:
* Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] .  
* Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] .  
* Der Name der Nachschlagetabelle, wie er in " [https://www.postfix.org/CDB_README.html cdb] :table" verwendet wird, ist der Name der Datenbankdatei ohne die Endung ".cdb".  
* Der Name der Nachschlagetabelle, wie er in " [https://www.postfix.org/CDB_README.html cdb] :table" verwendet wird, ist der Name der Datenbankdatei ohne die Endung ".cdb".  
* Diese Funktion ist mit Postfix 2.2 verfügbar und später.  
* Diese Funktion ist mit [[Postfix]] 2.2 verfügbar und später.  


  cidr  
  cidr  
Zeile 83: Zeile 83:


  Ein indizierter Dateityp, der auf Hashing basiert.  
  Ein indizierter Dateityp, der auf Hashing basiert.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für DBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] und sind privat Datenbanken werden von Postfix-Daemons verwaltet.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für DBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] und sind privat Datenbanken werden von [[Postfix]]-Daemons verwaltet.  
* Der Name der Nachschlagetabelle wie in " [https://www.postfix.org/DATABASE_README.html#types dbm] :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.  
* Der Name der Nachschlagetabelle wie in " [https://www.postfix.org/DATABASE_README.html#types dbm] :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.  


Zeile 96: Zeile 96:
  Eine Tabelle, die zuverlässig alle Anforderungen fehlschlägt.  
  Eine Tabelle, die zuverlässig alle Anforderungen fehlschlägt.  
* Die Nachschlagetabelle Der Name wird nur für die Protokollierung verwendet.  
* Die Nachschlagetabelle Der Name wird nur für die Protokollierung verwendet.  
* Diese Tabelle dient der Vereinfachung von Postfix Fehlertests.  
* Diese Tabelle dient der Vereinfachung von [[Postfix]] Fehlertests.  


  Hasch  
  Hasch  


  Ein indizierter Dateityp, der auf Hashing basiert.  
  Ein indizierter Dateityp, der auf Hashing basiert.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für Berkeley DB-Datenbanken. Öffentliche Datenbank Dateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] , und Private Datenbanken werden von Postfix-Daemons verwaltet.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für Berkeley DB-Datenbanken. Öffentliche Datenbank Dateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] , und Private Datenbanken werden von [[Postfix]]-Daemons verwaltet.  
* Die Datenbank name, wie er in " [https://www.postfix.org/DATABASE_README.html#types hash] :table" verwendet wird, ist der Name der Datenbankdatei ohne die ".db"-Suffix.  
* Die Datenbank name, wie er in " [https://www.postfix.org/DATABASE_README.html#types hash] :table" verwendet wird, ist der Name der Datenbankdatei ohne die ".db"-Suffix.  


Zeile 120: Zeile 120:


  OpenLDAP LMDB-Datenbank.  
  OpenLDAP LMDB-Datenbank.  
* Dies ist nur auf Systemen verfügbar mit Unterstützung für LMDB-Datenbanken. Öffentliche Datenbankdateien werden erstellt mit dem [https://www.postfix.org/postmap.1.html postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1)] -Befehl und private Datenbanken werden von Postfix-Daemons verwaltet.  
* Dies ist nur auf Systemen verfügbar mit Unterstützung für LMDB-Datenbanken. Öffentliche Datenbankdateien werden erstellt mit dem [https://www.postfix.org/postmap.1.html postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1)] -Befehl und private Datenbanken werden von [[Postfix]]-Daemons verwaltet.  
* Der Datenbankname, wie er in verwendet wird " [https://www.postfix.org/lmdb_table.5.html lmdb] :table" ist der Name der Datenbankdatei ohne das Suffix ".lmdb".  
* Der Datenbankname, wie er in verwendet wird " [https://www.postfix.org/lmdb_table.5.html lmdb] :table" ist der Name der Datenbankdatei ohne das Suffix ".lmdb".  
* Siehe [https://www.postfix.org/lmdb_table.5.html lmdb_table(5)] für Details.  
* Siehe [https://www.postfix.org/lmdb_table.5.html lmdb_table(5)] für Details.  
Zeile 175: Zeile 175:
  Proxy  
  Proxy  


  Postfix [https://www.postfix.org/proxymap.8.html -Proxymap(8)] -Client für gemeinsamen Zugriff auf Postfix Datenbanken.  
  [[Postfix]] [https://www.postfix.org/proxymap.8.html -Proxymap(8)] -Client für gemeinsamen Zugriff auf [[Postfix]] Datenbanken.  
* Die Namenssyntax für Nachschlagetabellen lautet " [https://www.postfix.org/proxymap.8.html Proxy] : [https://www.postfix.org/DATABASE_README.html Typ:Tabelle] ".  
* Die Namenssyntax für Nachschlagetabellen lautet " [https://www.postfix.org/proxymap.8.html Proxy] : [https://www.postfix.org/DATABASE_README.html Typ:Tabelle] ".  


Zeile 196: Zeile 196:


  Ein indizierter Dateityp, der auf Hashing basiert.  
  Ein indizierter Dateityp, der auf Hashing basiert.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für SDBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] und sind privat Datenbanken werden von Postfix-Daemons verwaltet.  
* Dies ist nur verfügbar auf Systemen mit Unterstützung für SDBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem [https://www.postfix.org/postmap.1.html Befehl postmap(1)] oder [https://www.postfix.org/postalias.1.html postalias(1) erstellt] und sind privat Datenbanken werden von [[Postfix]]-Daemons verwaltet.  
* Der Name der Nachschlagetabelle wie in " [https://www.postfix.org/DATABASE_README.html#types sdbm] :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.  
* Der Name der Nachschlagetabelle wie in " [https://www.postfix.org/DATABASE_README.html#types sdbm] :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.  


Zeile 202: Zeile 202:


  Socketmap-Client im Sendmail-Stil.  
  Socketmap-Client im Sendmail-Stil.  
* Der Name der Tabelle ist entweder inet : host : port : Name für ein TCP/IP Server oder Unix : Pfadname : Name für eine UNIX-Domäne Server.  
* Der Name der Tabelle ist entweder inet : host : port : Name für ein [[TCP]]/IP Server oder Unix : Pfadname : Name für eine UNIX-Domäne Server.  
* Siehe [https://www.postfix.org/socketmap_table.5.html socketmap_table(5)] für Details.  
* Siehe [https://www.postfix.org/socketmap_table.5.html socketmap_table(5)] für Details.  


Zeile 219: Zeile 219:
  [[TCP]]  
  [[TCP]]  


  TCP/IP-Client.  
  [[TCP]]/IP-Client.  
* Das Protokoll ist in [https://www.postfix.org/tcp_table.5.html tcp_table(5)] .  
* Das Protokoll ist in [https://www.postfix.org/tcp_table.5.html tcp_table(5)] .  
* Das Der Name der Nachschlagetabelle ist " [https://www.postfix.org/tcp_table.5.html tcp] :host:port", wobei "host" a angibt symbolischer Hostname oder eine numerische IP-Adresse und "Port" spezifiziert a symbolischer Dienstname oder eine numerische Portnummer.  
* Das Der Name der Nachschlagetabelle ist " [https://www.postfix.org/tcp_table.5.html tcp] :host:port", wobei "host" a angibt symbolischer Hostname oder eine numerische IP-Adresse und "Port" spezifiziert a symbolischer Dienstname oder eine numerische Portnummer.  
Zeile 250: Zeile 250:
* Das Ergebnis ist ein Gruppendateieintrag im Format group(5).  
* Das Ergebnis ist ein Gruppendateieintrag im Format group(5).  


Andere Nachschlagetabellentypen können je nach Art verfügbar sein Postfix wurde gebaut.  
Andere Nachschlagetabellentypen können je nach Art verfügbar sein [[Postfix]] wurde gebaut.  
* Bei einigen Postfix-Distributionen ist die Liste dynamisch erweiterbar, da die Unterstützung für Nachschlagetabellen dynamisch ist in Postfix eingebunden.  
* Bei einigen [[Postfix]]-Distributionen ist die Liste dynamisch erweiterbar, da die Unterstützung für Nachschlagetabellen dynamisch ist in [[Postfix]] eingebunden.  


[[Kategorie:Postfix/Konfiguration]]
[[Kategorie:Postfix/Konfiguration]]
[[Kategorie:Postfix/Architektur]]
[[Kategorie:Postfix/Architektur]]

Aktuelle Version vom 4. Juli 2026, 13:08 Uhr

Beschreibung

Postfix Nachschlagetabellen

Informationen speichern und nachschlagen

  • Zugriffskontrolle
  • Umschreiben von Adressen
  • Filtern von Inhalten
Nachschlagetabellen werden als "type:table" angegeben
  • "Typ" ist einer der Datenbanktypen
  • "table" der Name Nachschlagetabelle
  • Die Postfix Dokumentation verwendet die Begriffe "Datenbank" und "Nachschlagetabelle" synonym.
Beispiele für Nachschlagetabellen

/etc/postfix/main.cf

  alias_maps = hash :/etc/postfix/aliases (lokales Aliasing) 
  header_checks = regexp :/etc/postfix/header_checks (Inhaltsfilterung) 
  transport_maps = hash :/etc/postfix/transport (Routing-Tabelle) 
  virtual_alias_maps = hash :/etc/postfix/virtual (Adressumschreibung) 
Nachschlagetabellen speichern Informationen als (Schlüssel, Wert) Paare
  • Einfache, aber mächtige Schnittstelle
  • Die (Schlüssel, Wert)-Abfrageschnittstelle verbirgt vollständig die Komplexität von LDAP oder SQL vor Postfix
  • Beispiel für die Anbindung komplexer Systeme mit einfachen Schnittstellen
Vorteile der Postfix-Abfrageschnittstelle (Schlüssel, Wert)
  • Sie können Postfix-Nachschlagetabellen zuerst mit local implementieren Berkeley DB-Dateien und wechseln Sie dann ohne irgendwelche zu LDAP oder MySQL Auswirkungen auf die Postfix-Konfiguration selbst, wie unter " Vorbereiten von Postfix für LDAP- oder SQL-Lookups " unter.
  • Sie können Berkeley-DB-Dateien mit festen Lookup-Strings für verwenden einfache Adressumschreibungsoperationen und Sie können reguläre Ausdrücke verwenden Tabellen für die komplizierteren Arbeiten.
  • Mit anderen Worten, Sie tun es nicht müssen alles in die gleiche Tabelle stellen.
Postfix-Listen versus Tabellen

Die meisten Postfix-Nachschlagetabellen werden zum Nachschlagen von Informationen verwendet.

  • Beispiele sind das Umschreiben von Adressen (der Lookup-String ist die alte Adresse, und das Ergebnis ist die neue Adresse) oder Zugriffskontrolle (die lookup string ist der Client, Absender oder Empfänger, und das Ergebnis ist eine Aktion wie "Ablehnen").

Bei manchen Tabellen muss Postfix jedoch nur wissen, ob die Nachschlageschlüssel existiert.

  • Jeder nicht leere Nachschlageergebniswert kann verwendet werden hier: das Lookup-Ergebnis wird nicht verwendet.
  • Beispiele sind die local_recipient_maps , die bestimmen, welche lokalen Empfänger Postfix akzeptiert in Mail aus dem Netzwerk den mydestination- Parameter das spezifiziert, für welche Domains Postfix lokal liefert, oder die mynetworks- Parameter, der die IP-Adressen von vertrauenswürdigen angibt Kunden oder Kundennetzwerke.
  • Technisch gesehen sind dies keine Listen Tische.
  • Trotz des Unterschieds werden Postfix-Listen hier beschrieben weil sie dieselbe zugrunde liegende Infrastruktur wie Postfix verwenden Nachschlagetabellen.

Pflege von Postfix-Nachschlagetabellendateien

Wenn Sie Änderungen an einer Datenbank vornehmen, während das Mailsystem aktiv ist läuft, wäre es wünschenswert, wenn Postfix das Lesen von Informationen vermeidet während diese Informationen geändert werden.

  • Schön wäre es auch, wenn Sie können eine Datenbank ändern, ohne "postfix reload" ausführen zu müssen, um Postfix zu zwingen, die neuen Informationen zu verwenden.
  • Jedes Mal Sie tun "postfix reload" Postfix verliert viel Leistung.
  • Wenn Sie eine Netzwerkdatenbank wie LDAP, NIS oder SQL, muss "postfix reload" nicht ausgeführt werden.
  • Das LDAP, NIS oder SQL-Server kümmert sich um Lese-/Schreibzugriffskonflikte und gibt die neuen Daten an Postfix, sobald diese Daten verfügbar sind.
  • Wenn Sie eine regexp :, pcre :, cidr : oder texthash : Datei dann Postfix kann die Dateiänderungen nicht sofort übernehmen.
  • Dies liegt daran, dass a Der Postfix-Prozess liest die gesamte Datei einmal und nie in den Speicher untersucht die Datei erneut.
    • Wenn die Datei von einem kurz laufenden Prozess wie z smtpd(8) , cleanup(8) oder local(8) , muss nicht ausgeführt werden "postfix reload" nach einer Änderung.
    • Wenn die Datei von einem lang andauernden Prozess wie z wie trivial-rewrite(8) auf einem ausgelasteten Server erforderlich sein kann Führen Sie "postfix reload" aus.
  • Wenn Sie eine lokale dateibasierte Datenbank wie DBM oder ändern Berkeley DB, muss "postfix reload" nicht ausgeführt werden.
  • Postfix verwendet Dateisperren, um Konflikte beim Lese-/Schreibzugriff zu vermeiden, und wann immer Ein Postfix-Daemon-Prozess bemerkt, dass sich eine Datei geändert hat beenden, bevor die nächste Client-Anforderung bearbeitet wird, sodass eine neue Der Prozess kann mit der neuen Datenbank initialisiert werden.

Berkeley DB-Dateien sicher aktualisieren

siehe Postfix/BerkeleyDB

Lookup-Tabellentypen

Unterstützt Datenbanktypen
# postconf -m
Oft unterstützte Datenbanktypen
bbaum 
Eine sortierte, ausgewogene Baumstruktur. 
  • Dies ist nur auf verfügbar Systeme mit Unterstützung für Berkeley DB-Datenbanken.
  • Datenbankdateien sind erstellt mit dem postmap(1) oder postalias(1) Befehl.
  • Die Suche Tabellenname, wie er in " btree :table" verwendet wird, ist der Name der Datenbankdatei ohne die Endung ".db".
CDB 
Eine leseoptimierte Struktur ohne Unterstützung für inkrementelle Updates. 
  • Datenbankdateien werden mit dem Befehl postmap(1) oder postalias(1) erstellt .
  • Der Name der Nachschlagetabelle, wie er in " cdb :table" verwendet wird, ist der Name der Datenbankdatei ohne die Endung ".cdb".
  • Diese Funktion ist mit Postfix 2.2 verfügbar und später.
cidr 
Eine Tabelle, die Werte mit Classless Inter-Domain verknüpft Routing (CIDR)-Muster. 
dbm 
Ein indizierter Dateityp, der auf Hashing basiert. 
  • Dies ist nur verfügbar auf Systemen mit Unterstützung für DBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem Befehl postmap(1) oder postalias(1) erstellt und sind privat Datenbanken werden von Postfix-Daemons verwaltet.
  • Der Name der Nachschlagetabelle wie in " dbm :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.
um 
Das Array der UNIX-Prozessumgebung. 
  • Der Nachschlageschlüssel ist die Variablennamen.
  • Der Nachschlagetabellenname in " environ :table" wird ignoriert.
scheitern 
Eine Tabelle, die zuverlässig alle Anforderungen fehlschlägt. 
  • Die Nachschlagetabelle Der Name wird nur für die Protokollierung verwendet.
  • Diese Tabelle dient der Vereinfachung von Postfix Fehlertests.
Hasch 
Ein indizierter Dateityp, der auf Hashing basiert. 
  • Dies ist nur verfügbar auf Systemen mit Unterstützung für Berkeley DB-Datenbanken. Öffentliche Datenbank Dateien werden mit dem Befehl postmap(1) oder postalias(1) erstellt , und Private Datenbanken werden von Postfix-Daemons verwaltet.
  • Die Datenbank name, wie er in " hash :table" verwendet wird, ist der Name der Datenbankdatei ohne die ".db"-Suffix.
Inline (schreibgeschützt) 
Eine nicht freigegebene Nachschlagetabelle im Arbeitsspeicher. 
  • Beispiel: " inline :{ key=value , { key = text with whitespace or comma }}".
  • Schlüssel-Wert-Paare werden durch Leerzeichen oder Komma getrennt; mit einem Schlüsselwert Paar innerhalb von "{}", Leerzeichen werden nach dem öffnenden "{" ignoriert, um das "=" zwischen Schlüssel und Wert und vor dem schließenden "}".
  • Inline-Tabellen eliminieren die müssen eine Datenbankdatei für nur wenige feste Elemente erstellen.
  • Sehen auch der static : Kartentyp.
intern 
Eine nicht freigegebene Hash-Tabelle im Arbeitsspeicher. 
  • Sein Inhalt geht verloren, wenn ein Prozess endet.
lmdb 
OpenLDAP LMDB-Datenbank. 
  • Dies ist nur auf Systemen verfügbar mit Unterstützung für LMDB-Datenbanken. Öffentliche Datenbankdateien werden erstellt mit dem postmap(1) oder postalias(1) -Befehl und private Datenbanken werden von Postfix-Daemons verwaltet.
  • Der Datenbankname, wie er in verwendet wird " lmdb :table" ist der Name der Datenbankdatei ohne das Suffix ".lmdb".
  • Siehe lmdb_table(5) für Details.
ldap (schreibgeschützt) 
LDAP-Datenbankclient. 
Speicher 
Memcache-Datenbankclient. 
MySQL (schreibgeschützt) 
MySQL-Datenbank-Client. 
netinfo (schreibgeschützt) 
Netinfo-Datenbankclient. 
nis (schreibgeschützt) 
NIS-Datenbankclient. 
nisplus (schreibgeschützt) 
NIS+-Datenbankclient. 
pcre (schreibgeschützt) 
Eine Nachschlagetabelle basierend auf Perl-kompatiblen regulären Ausdrücken. 
  • Das Dateiformat ist in pcre_table(5) .
  • Die Nachschlagetabelle name, wie er in " pcre :table" verwendet wird, ist der Name des regulären Ausdrucks Datei.
Pipemap (schreibgeschützt) 
Eine Pipeline von Nachschlagetabellen. 
  • Beispiel: " Pipemap :{ Typ 1 :Name 1 , ..., type n :name n }".
  • Jede " pipemap :" Abfrage ist an den ersten Tisch gegeben.
  • Jedes Suchergebnis wird zur Abfrage für die nächste Tabelle in der Pipeline, und die letzte Tabelle erzeugt die Endergebnis.
  • Wenn eine Tabellensuche kein Ergebnis liefert, wird die Pipeline ergibt kein Ergebnis.
  • Die ersten und letzten Zeichen der " pipemap :" Tabellenname muss "{" und "}" sein.
  • Innerhalb dieser befinden sich einzelne Karten durch Komma oder Leerzeichen getrennt.
pgsql (schreibgeschützt) 
PostgreSQL-Datenbankclient. 
Proxy 
Postfix -Proxymap(8) -Client für gemeinsamen Zugriff auf Postfix Datenbanken. 
Randkarte (schreibgeschützt) 
Eine In-Memory-Tabelle, die eine zufällige Auswahl durchführt. 
  • Beispiel: " randmap :{ result 1 . ..., result n }".
  • Jede Tabellenabfrage gibt eine zufällige Auswahl aus den angegebenen Ergebnissen zurück.
  • Die ersten und letzten Zeichen des Tabellennamens " randmap :" müssen sein "{" und "}".
  • Innerhalb dieser werden einzelne Maps mit Komma getrennt oder Leerzeichen.
  • Um einem bestimmten Ergebnis mehr Gewicht zu verleihen, geben Sie es an mehrmals.
regulärer Ausdruck (schreibgeschützt) 
Eine Nachschlagetabelle, die auf regulären Ausdrücken basiert. 
  • Das Dateiformat ist in regexp_table(5) .
  • Der Name der Nachschlagetabelle, wie er in verwendet wird " regexp :table" ist der Name der Datei mit regulären Ausdrücken.
sdbm 
Ein indizierter Dateityp, der auf Hashing basiert. 
  • Dies ist nur verfügbar auf Systemen mit Unterstützung für SDBM-Datenbanken. Öffentliche Datenbankdateien werden mit dem Befehl postmap(1) oder postalias(1) erstellt und sind privat Datenbanken werden von Postfix-Daemons verwaltet.
  • Der Name der Nachschlagetabelle wie in " sdbm :table" verwendet, ist der Name der Datenbankdatei ohne das ".dir" oder ".pag"-Suffix.
Socketmap (schreibgeschützt) 
Socketmap-Client im Sendmail-Stil. 
  • Der Name der Tabelle ist entweder inet : host : port : Name für ein TCP/IP Server oder Unix : Pfadname : Name für eine UNIX-Domäne Server.
  • Siehe socketmap_table(5) für Details.
sqlite (schreibgeschützt) 
SQLite-Datenbank. 
statisch (schreibgeschützt) 
Eine Tabelle, die immer ihren Namen als Suchergebnis zurückgibt. 
  • Beispielsweise gibt " static :foobar" immer die Zeichenfolge "foobar" als zurück Suchergebnis.
  • Geben Sie " static :{ text with whitespace }" wenn das Ergebnis Leerzeichen enthält; Dieses Formular ignoriert Leerzeichen nach dem öffnenden "{" und vor dem schließenden "}".
  • Siehe auch die inline : Kartentyp.
TCP 
TCP/IP-Client. 
  • Das Protokoll ist in tcp_table(5) .
  • Das Der Name der Nachschlagetabelle ist " tcp :host:port", wobei "host" a angibt symbolischer Hostname oder eine numerische IP-Adresse und "Port" spezifiziert a symbolischer Dienstname oder eine numerische Portnummer.
Texthash (schreibgeschützt) 
Eine Tabelle, die ähnliche Ergebnisse wie hash : files erzeugt, außer nicht ausführen müssen, postmap(1) bevor Sie es können Verwenden Sie die Datei, und dass texthash : keine Änderungen nach dem erkennt Datei wird gelesen. 
  • Der Name der Nachschlagetabelle ist " texthash :filename", wobei der Dateiname wird wörtlich genommen; es wird kein Suffix angehängt.
Gewerkschaftskarte (schreibgeschützt) 
Eine Tabelle, die jede Abfrage an mehrere Nachschlagetabellen sendet und die alle gefundenen Ergebnisse verkettet, durch Komma getrennt. 
  • Die Tabelle Namenssyntax ist dieselbe wie für Pipemap-Tabellen.
Unix (schreibgeschützt) 
Eine eingeschränkte Ansicht der UNIX-Authentifizierungsdatenbank. 
  • Folgende Tabellen implementiert:
unix:passwd.byname 
Die Tabelle ist die UNIX-Kennwortdatenbank. 
  • Der Schlüssel ist ein Login Name.
  • Das Ergebnis ist ein Kennwortdateieintrag im passwd(5)-Format.
unix: group.byname 
Die Tabelle ist die UNIX-Gruppendatenbank. 
  • Der Schlüssel ist ein Gruppenname.
  • Das Ergebnis ist ein Gruppendateieintrag im Format group(5).

Andere Nachschlagetabellentypen können je nach Art verfügbar sein Postfix wurde gebaut.

  • Bei einigen Postfix-Distributionen ist die Liste dynamisch erweiterbar, da die Unterstützung für Nachschlagetabellen dynamisch ist in Postfix eingebunden.