/ etc / Aliase vs virtusertable


7

Ich habe einen Mailserver, auf dem Sendmail ausgeführt wird und der mehrere Maildomänen hostet. So werden beispielsweise E-Mails an @ aaa.com und @ bbb.com an denselben Server gesendet. Während dieser ganzen Zeit verwalte ich /etc/mail/virtusertabledie Zuordnungen verschiedener Benutzer verschiedener Mail-Domänen zu verschiedenen lokalen Konten.

Aber jetzt habe ich gerade herausgefunden, /etc/aliasesdass ich ähnliche Dinge tun könnte.

  • Was ist die unterschiedliche Rolle von /etc/aliasesund /etc/mail/virtusertable?
  • Was aliaseskann man aber nicht virtusertableund umgekehrt?

Ich habe im Internet gesucht, kann aber keine Website finden, die die Unterschiede sehr detailliert vergleicht.

Antworten:


6

Hauptunterschiede zwischen virtusertable und Aliasnamen in sendmail

virtusertableBietet eine Eins-zu-Eins-Zuordnung der Empfängeradresse. aliasesStellen Sie eine bis viele Zuordnungen bereit (praktisch für Mailinglisten).

aliasesEmpfänger "domänenlos" zuordnen (Empfänger in lokalen E-Mail-Domänen mit entferntem Domain-Teil der E-Mail). virtusertableordnet die vollständige Empfängeradresse zu.

virtusertable behandelt die Neuzuordnung von "allen anderen / verbleibenden Adressen in der E-Mail-Domäne".

Die Zuordnung "virtusertable to alias" kann verwendet werden, um eine zu viele Zuordnungen zu erhalten.


Hinweis auf Assistentenebene : Es ist möglich, sendmail.cf Aliase für vollständige E-Mails (Benutzerteil und Domäne) verarbeiten zu lassen, sendmail.cf, das mit den von sendmail.org bereitgestellten m4-Dateien erstellt wurde, verarbeitet dies jedoch nicht. Die Umsetzung wird es nicht sehr kompliziert sein , aber IMHO einige unerwartete „Nebenwirkungen“ sind garantiert => richtige Testphase wird LONG .


Ihre Antwort gibt den wichtigsten Unterschied zwischen den beiden Konfigurationsdateien an. Scharf und klar.
Sylye

5

Kurze Antwort:

Beim Aliasing wird ein lokaler Empfängername auf dem System in einen anderen konvertiert, und Aliasing tritt nur bei lokalen Namen auf . Das heißt, das usernamemuss über getpwnam aus der Passwortdatenbank verfügbar sein :

zB die lokale Passwortdatei / etc / passwd, NIS und LDAP.

Die sendmail- virtusertableFunktion ermöglicht die Unterstützung für virtuelle Benutzer, dh, sie ordnet Nicht-Systembenutzer zu.


Ich habe hier folgendes zitiert . Sehr gut erklärt, bitte schauen Sie.

/ etc / mail / aliasnamen

Diese Datenbankdatei enthält eine Liste virtueller Postfächer, die zu Benutzern, Dateien, Programmen oder anderen Aliasnamen erweitert werden. Hier einige Einträge zur Veranschaulichung des Dateiformats:

root: localuser
ftp-bugs: joe,eric,paul
bit.bucket:  /dev/null
procmail: "|/usr/local/bin/procmail"

Der Postfachname auf der linken Seite des Doppelpunkts wird auf die Ziele auf der rechten Seite erweitert. Der erste Eintrag erweitert das Stammpostfach auf das lokale Benutzerpostfach, das dann in der Datenbank / etc / mail / aliases nachgeschlagen wird. Wird keine Übereinstimmung gefunden, wird die Nachricht an localuser übermittelt. Der zweite Eintrag zeigt eine Mailingliste. Mail an FTP-Bugs wird auf die drei lokalen Postfächer Joe, Eric und Paul erweitert. Ein entferntes Postfach kann als user@example.com angegeben werden. Der dritte Eintrag zeigt, wie E-Mails in eine Datei geschrieben werden, in diesem Fall / dev / null. Der letzte Eintrag zeigt, wie E-Mails über eine UNIX®-Pipe an ein Programm / usr / local / bin / procmail gesendet werden. Weitere Informationen zum Format dieser Datei finden Sie unter Aliase (5).

/ etc / mail / virtusertable

Diese Datenbankdatei ordnet E-Mail-Adressen für virtuelle Domänen und Benutzer realen Postfächern zu. Diese Postfächer können lokal, remote, in / etc / mail / alias definierte Aliase oder Dateien sein. Dadurch können mehrere virtuelle Domänen auf einem Computer gehostet werden.

Das folgende Beispiel zeigt, wie Sie benutzerdefinierte Einträge in diesem Format erstellen:

root@example.com                root
postmaster@example.com          postmaster@noc.example.net
@example.com                    joe

Diese Datei wird in einer ersten Übereinstimmungsreihenfolge verarbeitet. Wenn eine E-Mail-Adresse mit der Adresse links übereinstimmt, wird sie dem rechts aufgeführten lokalen Postfach zugeordnet. Das Format des ersten Eintrags in diesem Beispiel ordnet eine bestimmte E-Mail-Adresse einem lokalen Postfach zu, während das Format des zweiten Eintrags eine bestimmte E-Mail-Adresse einem Remote-Postfach zuordnet. Schließlich stimmt jede E-Mail-Adresse von example.com, die keinem der vorherigen Einträge entspricht, mit der letzten Zuordnung überein und wird an die lokale Mailbox Joe gesendet.

Nun etwas detailliertere Antworten auf Ihre Fragen:

  • Die Aliase-Datenbankdatei enthält eine Liste virtueller Postfächer, die auf Benutzer, Dateien, Programme oder andere Aliase erweitert werden.
  • Diese Virtuser-Datenbankdatei ordnet E-Mail-Adressen für virtuelle Domänen und Benutzer realen Postfächern zu. Diese Postfächer können lokal, remote, in / etc / mail / alias definierte Aliase oder Dateien sein. Dadurch können mehrere virtuelle Domänen auf einem Computer gehostet werden.
  • Die virtmailertable-Funktion sendmail konfiguriert dagegen die Unterstützung für die virtuelle Benutzertabelle. Die virtuelle Benutzertabelle ordnet eingehende E-Mails, die für someuser @ host bestimmt sind , someotheruser @ otherhost zu . Man kann sich dies als eine erweiterte Mail-Alias-Funktion vorstellen, die nicht nur den Zielbenutzer, sondern auch die Zieldomäne verwendet. Der Schlüsselteil (links) muss entweder eine vollständige Adresse (Benutzer, Host und Domänenname) oder eine Adresse ohne Hostteil (nur eine Domäne) sein.

1
Einige Jahre später, aber immer noch ganz oben in den Google-Ergebnissen für einige Keywords. Deshalb: Ihre Antwort ist nicht ganz richtig. Ich habe definitiv "virtuelle" Benutzer in der linken Spalte meiner Aliase-Datei (dh Benutzer, die nicht vorhanden sind /etc/passwd, /etc/shadowund dergleichen). Dies ist keine neue Funktionalität. Ich benutze diese Konfiguration seit einigen Jahren ohne Probleme.
Binarus

@Binarus, hi, die Antwort oben, wenn Sie genauer lesen, ist voller Zitate und wenig von meiner eigenen Erfindung. Trotzdem habe ich den Teil "Lokaler Benutzername" etwas näher erläutert, um dies zu verdeutlichen. Zu Ihrem speziellen Fall kann ich nichts sagen.
Diamant

In Bezug auf meinen Fall: zum Beispiel in virtusertable: foo@mydomain.com list-01und in aliases: list-01: john,fred. Auf dass Systeme, list-01ist nicht in jedem Passwort oder Benutzerdatenbank (weder /etc/passwdnoch SASL noch irgendeine andere). Es scheint, dass aliasesalle "virtuellen" Benutzer, die von "produziert" werden, virtusertablewie erwartet behandelt werden.
Binarus

1
Nachdem ich viel Zeit beim Versuch verloren habe, sendmail entsprechend zu konfigurieren, kann ich mit Sicherheit feststellen, dass dieses BSD-Handbuch zumindest für sendmail unter Linux in meiner Version eindeutig falsch ist . Beispielsweise wird eindeutig angegeben, dass die tatsächlichen Postfächer (rechte Seite) in den virtusertableDosen-Dateien sein können. Wenn ich das versuche, werden von sendmail Fehler protokolliert, die genau das Gegenteil angeben: "Kann nicht an Dateien senden." (Der genaue Wortlaut ist möglicherweise ungenau und kann derzeit nicht erneut getestet werden.) Aber der Kilometerstand kann je nach BSD variieren - ich kann das nicht testen.
Binarus

2

Der Hauptunterschied, an den ich mich erinnere, besteht darin, dass er virtusertablesowohl Domäneninformationen als auch Benutzerinformationen enthalten kann. das ist; foo@example.comund foo@example.co.uksind sowohl gültig als auch verschieden auf der linken Seite virtusertable, aber zusammen werden aliasessie einen duplicate alias nameFehler erzeugen .

Das lässt immer noch eine ganze Gruppe von Einträgen übrig, die legitimerweise in beide eingehen können; Mein Gefühl ist, dass man, aliaseswo immer möglich, verwenden sollte, um virtusertablefür die Dinge zu gehen, die domänenspezifisch sind.

bangal (siehe auch) stellt einige wichtigere Unterschiede fest, z. B. die Möglichkeit, E-Mails an Pipes und Dateien zu senden.


Punkt 1: virtualusertable wird ebenfalls rekursiv durchsucht. Ich habe gerade getestet. Wenn ich foo6@aaa.com auf foo@yahoo.com und foo7@aaa.com auf foo6@aaa.com zeige, kann das Senden einer E-Mail an foo7@aaa.com foo@yahoo.com erreichen. Punkt 2: I. habe getestet, wie 'foo@aaa.com' in / etc / alias auf foo verweist, und es funktioniert. (aaa.com mx-Datensatz wird bereits so eingestellt, dass er auf diesen Server verweist). Die E-Mail hat mein Konto-Postfach in "foo" erreicht. Es scheint also, dass beide Funktionen tatsächlich in Virtusertabellen und Aliasnamen funktionsfähig sind.
Sylye

Sie haben Recht mit Punkt 1; Ich habe nach einer aktuellen Referenz gesucht, und die Details zum einzelnen Durchgang sind verschwunden. das ist gut. Vielen Dank! Für Punkt 2 ist Ihr Test unzureichend: Sie benötigen einen zweiten Aliase-Eintrag für foo@bbb.com, der auf den Benutzer verweist bar(sofern barvorhanden und bbb.comauch lokal verfügbar), um zu bestätigen, dass die Domäneninformationen in ordnungsgemäß berücksichtigt werden aliases. Es würde mich sehr interessieren, die Ergebnisse dieses Tests zu erfahren.
MadHatter

1
Um Ihnen die Mühe zu ersparen, habe ich diesen Test durchgeführt: Sie können nicht aliaseswie gewohnt verwenden virtusertable, um damit umzugehen foo@example.comund foo@example.org anders .
MadHatter

Sie sind richtig , dass Aliase nicht umgehen kann foo@example.comund foo@example.organders. @Andrzej A. Filip hat darauf hingewiesen. Wenn Sie jedoch das Format foo@aaa.comin Aliase verwenden, wird es akzeptiert, ohne dass Sie einen Fehler erhalten :) Natürlich ist es sinnlos, den Domainnamen in Aliase zu setzen, da er nicht unterschieden werden kann. Sehr geschätzt für Ihre Eingabe!
Sylye

1

Versuche dies:

Wenn Ihr MTA-Server der primäre MX für eine Reihe von DOMAINS ist, leiten Sie diese über virtusertable weiter. Mit Virtusertable können Sie einzelne Ziel-E-Mails wie "Missbrauch @ ..." und "Postmaster @" abholen und alles andere an eine einzelne Mailbox oder einen anderen Server mit einem anderen Namen weiterleiten, wobei jedoch alles vom "@" erhalten bleibt . Zum Beispiel:

    abuse@xyz.com:         helpdesk                   <--- which could be in /etc/aliases to a list
    postmaster@xyz.com:    adminteam@vendor.xyz       <--- specific destination
    @xyz.com:              %1@customer2.server.com    <--- route everything else to another host`

Ihre / etc / aliases-Datei dient wirklich zum Einrichten einfacher Ziele von einem Benutzer zu einem anderen oder von einem Benutzer zu einer Gruppe anderer Benutzer:

    root:       sa@system.com           <--- route all root mail to sysadmin
    sales:      jdoe,mdoe,sone,mike@somewhere.com,sally@elsewhere.com  <-- to a list
    nobody:     /dev/null               <--- anything sent to "nobody" disappears forever

Aliase ist nicht sehr gut im Umgang mit mehreren Domänen, andererseits ist virtusertable sehr gut darin.

Sie müssen Ihre MX-Einträge entsprechend einrichten usw.

Prost, David

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.