/etc/postfix/main.cf
zu erstellen.
mail.falcot.com
lauten. Dies ist die einzige standardmäßig gestellte Frage, aber die Konfigurierung, zu der sie führt, ist für die Bedürfnisse von Falcot nicht vollständig genug, weshalb die Administratoren dpkg-reconfigure postfix
aufrufen, um so weitere Parameter einstellen zu können.
localhost
, jedoch muss die Hauptdomain falcot.com
von Hand hinzugefügt werden. Allgemeiner gesagt sollte diese Frage normalerweise mit allen Domain-Namen beantwortet werden, für die dieser Rechner als MX-Server dienen soll; mit anderen Worten, allen Domain-Namen, für die der DNS angibt, dass dieser Rechner E-Mails annimmt. Diese Information geht in die Variable mydestination
der Hauptkonfigurationsdatei von Postfix — /etc/postfix/main.cf
— ein.
192.168.0.0/16
zur Standardantwort hinzugefügt. Falls diese Frage nicht gestellt wird, ist mynetworks
die relevante Variable in der Konfigurationsdatei, wie in unten stehendem Beispiel zu sehen ist.
procmail
zugestellt werden. Dieses Programm ermöglicht es Benutzern, ihre ankommende E-Mail nach Regeln, die in der Datei ~/.procmailrc
gespeichert sind, zu sortieren. Sowohl Postfix als auch Exim4 schlagen standardmäßig procmail vor, aber es gibt Alternativen wie maildrop oder Sieve-Filter.
Beispiel 11.1. Anfängliche /etc/postfix/main.cf
-Datei
# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on # fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_security_level=may smtp_tls_CApath=/etc/ssl/certs smtp_tls_security_level=may smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = mail.falcot.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = mail.falcot.com, falcot.com, localhost.localdomain, localhost relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/16 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all default_transport = smtp relay_transport = smtp inet_protocols = all myorigin = /etc/mailname
virtual_alias_domains
und das Eintragen eines Verweises auf eine Adressen-Bezugsdatei in die Variable virtual_alias_maps
aktiviert.
virtual_alias_domains = falcotsbrand.com virtual_alias_maps = hash:/etc/postfix/virtual
/etc/postfix/virtual
stellt eine Zuordnung in einer recht einfachen Syntax dar: jede Zeile enthält zwei durch Leerzeichen getrennte Felder; das erste Feld ist der Alias-Name, das zweite eine Liste der E-Mail-Adressen, an die er weiterleitet. Die spezielle Syntax @domain.com
deckt alle übrigen Aliasse in der Domain ab.
[email protected] [email protected] [email protected] [email protected], [email protected] # The alias below is generic and covers all addresses within # the falcotsbrand.com domain not otherwise covered by this file. # These addresses forward email to the same user name in the # falcot.com domain. @falcotsbrand.com @falcot.com
/etc/postfix/virtual
muss die Postfix-Tabelle /etc/postfix/virtual.db
mit sudo postmap /etc/postfix/virtual
aktualisiert werden.
virtual_mailbox_domains
einzutragen und in virtual_mailbox_maps
einen Verweis auf eine Mailbox-Bezugsdatei anzugeben. Der Parameter virtual_mailbox_base
enthält das Verzeichnis, in dem die Postfächer gespeichert werden.
virtual_mailbox_domains = falcot.org virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_mailbox_base = /var/mail/vhosts
virtual_uid_maps
(beziehungsweise virtual_gid_maps
) verweist auf die Datei, die den Bezug zwischen der E-Mail-Adresse und dem Systembenutzer (beziehungsweise der Gruppe) enthält, dem das entsprechende Postfach „gehört“. Um alle Postfächer zusammen fassen zu können, die dem selben Benutzer beziehungsweise der selben Gruppe gehören, weist man mittels der Syntax static:5000
eine feste UID/GID (hier mit dem Wert 5000) zu.
/etc/postfix/vmailbox
ist recht einfach: zwei durch Leerzeichen getrennte Felder. Das erste Feld ist eine E-Mail-Adresse innerhalb einer der virtuellen Domains, und das zweite ist der Ort des dazugehörigen Postfachs (relativ zum Verzeichnis, das in virtual_mailbox_base angegeben ist). Falls die Bezeichnung des Postfachs mit einem Schrägstrich (/
) endet, werden die E-Mails im maildir-Format gespeichert; anderenfalls wird das traditionelle mbox-Format benutzt. Das maildir-Format verwendet ein ganzes Verzeichnis zur Speicherung eines Postfachs, wobei jede individuelle Nachricht in einer eigenen Datei gespeichert wird. Dagegen ist beim mbox-Format das gesamte Postfach in einer einzigen Datei gespeichert, wobei jede Zeile, die mit „From
“ beginnt (From
gefolgt von einem Leerzeichen), den Beginn einer neuen Nachricht anzeigt.
# Jeans E-Mail ist als maildir gespeichert mit # einer Datei je E-Mail in einem gesonderten Verzeichnis [email protected] falcot.org/jean/ # Sophies E-Mail ist in einer traditionellen „mbox“-Datei gespeichert # mit allen Mails zu einer einzigen Datei verkettet [email protected] falcot.org/sophie
soft_bounce = yes
Einschränkungen zu testen und die dauerhafte Ablehnung von Anfragen zu verhindern. Wenn eine Direktive vom Typ reject mit warn_if_reject
vorangestellt wird, wird nur eine Protokollmeldung aufgezeichnet, anstatt die Anfrage abzulehnen.
smtpd_client_restrictions
bestimmt, welchen Rechnern es erlaubt ist, mit dem E-Mail-Server zu kommunizieren.
Beispiel 11.2. Beschränkungen aufgrund von Client-Adressen
smtpd_client_restrictions = permit_mynetworks, warn_if_reject reject_unknown_client_hostname, check_client_access hash:/etc/postfix/access_clientip, reject_rhsbl_reverse_client dbl.spamhaus.org, reject_rhsbl_reverse_client rhsbl.sorbs.net, reject_rbl_client zen.spamhaus.org, reject_rbl_client dnsbl.sorbs.net
permit_mynetworks
, die als erste Regel verwendet wurde, akzeptiert alle E-Mails, die von einem Rechner im lokalen Netzwerk (wie in der Konfigurationsvariablen mynetworks
festgelegt) kommen.
reject_unknown_client
den Modifikator warn_if_reject
vorangestellt haben: dieser Modifikator wandelt die Zurückweisung in eine einfache Warnung um, die in den Protokollen aufgezeichnet wird. Die Administratoren können dann die Anzahl der Nachrichten im Blick behalten, die zurückgewiesen würden, wenn die Regel tatsächlich durchgesetzt würde und später aufgrund dieser Informationen eine Entscheidung treffen, ob sie die Durchsetzung aktivieren wollen.
check_client_access
directive allows the administrator to set up a blacklist and a whitelist of email servers, stored in the /etc/postfix/access_clientip
file. Servers in the whitelist are considered as trusted, and the emails coming from there therefore do not go through the following filtering rules.
HELO
(oder EHLO
) Befehl, gefolgt vom Namen des sendenden E-Mail-Servers. Die Überprüfung der Gültigkeit dieses Namens kann interessant sein. Um die in smtpd_helo_restrictions
aufgeführten Einschränkungen vollständig durchzusetzen, muss die Option smtpd_helo_required
aktiviert sein. Andernfalls könnten Clients die Einschränkungen überspringen, indem sie keinen HELO
/EHLO
Befehl senden.
Beispiel 11.3. Beschränkungen für den in EHLO
genannten Namen
smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, warn_if_reject reject_unknown_helo_hostname, check_helo_access hash:/etc/postfix/access_helo, reject_rhsbl_helo multi.surbl.org
permit_mynetworks
, erlaubt es allen Rechnern des lokalen Netzwerks, sich ungehindert einzuführen. Dies ist wichtig, da einige E-Mail-Programme diesen Teil des SMTP-Protokolls nicht in ausreichendem Maße beachten und sich mit unsinnigen Namen einführen können.
reject_invalid_helo_hostname
rule rejects emails when the EHLO
announce lists a syntactically incorrect hostname. The reject_non_fqdn_helo_hostname
rule rejects messages when the announced hostname is not a fully-qualified domain name (including a domain name as well as a host name). The reject_unknown_helo_hostname
rule rejects messages if the announced name does not exist in the DNS. Since this last rule unfortunately leads to a lot of rejections, the administrators turned its effect to a simple warning with the warn_if_reject
modifier as a first step; they may decide to remove this modifier at a later stage, after auditing the results of this rule.
reject_rhsbl_helo
erlaubt es, eine schwarze Liste anzugeben, um den Hostnamen gegen eine RHSBL zu prüfen.
permit_mynetworks
als erster Regel hat eine interessante Nebenwirkung: die folgenden Regeln gelten nur für Rechner außerhalb des lokalen Netzwerks. Hierdurch ist es möglich, alle Rechner, die sich als Teil des falcot.com
-Netzwerks ausgeben, auf die schwarze Liste zu setzen, indem zum Beispiel die Zeile falcot.com ABGELEHNT Sie sind nicht in unserem Netzwerk!
zur Datei /etc/postfix/access_helo
hinzugefügt wird.
MAIL FROM
des SMTP-Protokolls angegeben wird; auch diese Information kann auf verschiedene Weise überprüft werden.
Beispiel 11.4. Überprüfung des Absenders
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/access_sender, reject_unknown_sender_domain, reject_unlisted_sender, reject_non_fqdn_sender, reject_rhsbl_sender rhsbl.sorbs.net
/etc/postfix/access_sender
ordnet einigen Absendern eine besondere Behandlung zu. Dies bedeutet für gewöhnlich, dass einige Absender in eine Positivliste oder eine schwarze Liste aufgenommen werden.
reject_unknown_sender_domain
rule requires a valid sender domain, since it is needed for a valid address. The reject_unlisted_sender
rule rejects local senders if the address does not exist; this prevents emails being sent from an invalid address in the falcot.com
domain, and messages emanating from [email protected]
are only accepted if such an address really exists.
reject_non_fqdn_sender
E-Mails zurück, die vorgeben, von Adressen ohne einen vollständig ausgewiesenen Domain-Namen zu kommen. In der Praxis bedeutet dies, dass E-Mails, die von benutzer@rechner
kommen, zurückgewiesen werden: die Adresse muss entweder als [email protected]
oder [email protected]
angegeben werden.
reject_rhsbl_sender
-Regel lehnt Absender ab, die auf einem (domänenbasierten) RHSBL-Dienst basieren.
RCPT TO
angegeben wird. Diese Adressen erfordern ebenfalls eine Gültigkeitsprüfung, selbst wenn dies weniger wichtig sein sollte als die Überprüfung des Absenders.
Beispiel 11.5. Überprüfung des Empfängers
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unlisted_recipient, reject_non_fqdn_recipient, permit
reject_unauth_destination
, und sie verlangt, dass externe Nachrichten an uns adressiert sein müssen; Nachrichten an eine Adresse, die von diesem Server nicht bedient wird, werden zurückgewiesen. Ohne diese Regel wird ein Server zu einem offenen Übermittler, der es Spammern erlaubt, unerwünschte E-Mails zu verschicken; diese Regel ist daher obligatorisch, und sie wird am besten ziemlich am Anfang der Liste platziert, damit nicht andere Regeln die Nachricht zulassen, bevor ihre Zieladresse überprüft worden ist.
reject_unlisted_recipient
weist Nachrichten zurück, die an nicht existierende lokale Benutzer geschickt werden, was natürlich Sinn macht. Schließlich weist die Regel reject_non_fqdn_recipient
nicht vollständig ausgewiesene Adressen zurück; dies macht es unmöglich, eine E-Mail an jean
oder jean@rechner
zu schicken, und erfordert stattdessen, die vollständige Adresse zu verwenden, wie [email protected]
or [email protected]
.
Permit
-Richtlinie am Ende ist nicht notwendig. Sie kann jedoch am Ende einer Einschränkungsliste nützlich sein, um die Standardrichtlinie auszudrücken.
DATA
wird vor dem Inhalt der Nachricht verschickt. An sich stellt er keine Information bereit, außer anzukündigen, was als nächstes kommt.Dennoch kann er Überprüfungen unterworfen werden.
reject_unauth_pipelining
bewirkt, dass die Nachricht zurückgewiesen wird, falls die aussendende Partei einen Befehl verschickt, bevor die Antwort auf den vorhergehenden Befehl gesendet worden ist. Dies schützt vor einer häufig von Spam-Robotern benutzten Optimierung, da sie sich gewöhnlich keinen Deut um Antworten scheren und sich nur darauf konzentrieren, in möglichst kurzer Zeit möglichst viele E-Mails zu verschicken.
RCPT TO
.
EHLO
-Befehls zurückgewiesen wird, Postfix den Absender und den Empfänger kennt, wenn es die Zurückweisung bekanntgibt. Es kann dann eine eindeutigere Nachricht protokollieren, als möglich gewesen wäre, falls die Übertragung gleich zu Anfang abgebrochen worden wäre. Außerdem erwarten manche SMTP-Clients keine Störungen bei den frühen SMTP-Befehlen, und diese Clients werden durch die späte Zurückweisung weniger gestört.
smtpd_delay_reject
gesteuert.
Beispiel 11.7. Inhaltsbezogene Filter aktivieren
header_checks = regexp:/etc/postfix/header_checks body_checks = regexp:/etc/postfix/body_checks
Beispiel 11.8. Beispiel einer Datei /etc/postfix/header_checks
/^X-Mailer: GOTO Sarbacane/ REJECT I fight spam (GOTO Sarbacane) /^Subject: *Your email contains VIRUSES/ DISCARD virus notification
GOTO Sarbacane
gefunden wird (ein Programm zum Versenden von Massen-E-Mails), wird die Nachricht zurückgewiesen. Der zweite Ausdruck überprüft den Nachrichtenbetreff; falls er eine Virenmeldung nennt, können wir entscheiden, die Nachricht nicht zurückzuweisen, sondern stattdessen sofort zu löschen.
check_policy_service
als zusätzliche Bedingung hinzugefügt wird:
smtpd_recipient_restrictions = permit_mynetworks, [...] check_policy_service inet:127.0.0.1:10023
postgrey
daemon and send it information concerning the relevant message. On its side, Postgrey considers the IP address/sender/recipient triplet and checks in its database whether that same triplet has been seen recently. If so, Postgrey replies that the message should be accepted; if not, the reply indicates that the message should be temporarily rejected, and the triplet gets recorded in the database.
smtpd_restriction_classes
angegeben und in der gleichen Weise wie smtpd_recipient_restrictions
festgelegt. Die Anweisung check_recipient_access
bezeichnet dann eine Tabelle, die einem bestimmten Empfänger den richtigen Satz von Beschränkungen zuordnet.
Beispiel 11.9. Beschränkungsklassen in main.cf
festlegen
smtpd_restriction_classes = greylisting, aggressive, permissive greylisting = check_policy_service inet:127.0.0.1:10023 aggressive = reject_rbl_client sbl-xbl.spamhaus.org, check_policy_service inet:127.0.0.1:10023 permissive = permit smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_recipient_access hash:/etc/postfix/recipient_access
Beispiel 11.10. Die Datei /etc/postfix/recipient_access
# Unfiltered addresses [email protected] permissive [email protected] permissive [email protected] permissive # Aggressive filtering for some privileged users [email protected] aggressive # Special rule for the mailing-list manager [email protected] reject_unverified_sender # Greylisting by default falcot.com greylisting
clamav
from the homonymous package.
clamav-milter
zu. Ein Milter (kurz für Mailfilter) ist ein speziell für die Verbindung mit E-Mail-Servern ausgelegtes Programm. Ein Milter verwendet eine standardmäßige Programmierschnittstelle (API = application programming interface), die eine deutlich bessere Leistung aufweist als Filter außerhalb der E-Mail-Server. Milter wurden ursprünglich von Sendmail eingeführt, aber Postfix ist dem bald gefolgt.
dpkg-reconfigure clamav-milter
. Wenn die Frage nach dem "Communication interface with Sendmail" gestellt wird geben Sie “inet:[email protected]
” ein.
dpkg-reconfigure clamav-base
angepasst werden.
/etc/postfix/main.cf
:
# Virus check with clamav-milter smtpd_milters = inet:[127.0.0.1]:10002
systemctl reload postfix
aufgerufen werden, damit diese Veränderung berücksichtigt wird.
include
directive it must have one.
Name: example.org Type: TXT TTL: 3600 Data: v=spf1 a mx -all
falcot.org
.
#
host -t TXT falcot.org
falcot.org descriptive text "v=spf1 ip4:199.127.61.96 +a +mx +ip4:206.221.184.234 +ip4:209.222.96.251 ~all"
postfix
kann den SPF-Record für eingehende E-Mails mit dem Paket postfix-policyd-spf-python, einem in Python geschriebenen Policy-Agent, überprüfen. Die Datei /usr/share/doc/postfix-policyd-spf-python/README.Debian
beschreibt die notwendigen Schritte, um den Agenten in Postfix zu integrieren, sodass wir ihn hier nicht wiederholen werden.
/etc/postfix-policyd-spf-python/policyd-spf.conf
, die in policyd-spf.conf(5) und /usr/share/doc/postfix-policyd-spf-python/policyd-spf.conf.commented.gz
vollständig dokumentiert ist. Die wichtigsten Konfigurationsparameter sind HELO_reject
und Mail_From_reject
, die konfigurieren, ob E-Mails zurückgewiesen (Fail
) oder mit angehängtem Header (False
) akzeptiert werden sollen, wenn die Prüfungen fehlschlagen. Letzteres ist oft nützlich, wenn die Nachricht von einem Spam-Filter weiterverarbeitet wird.
Header_Type
auf AR
gesetzt werden.
postfix
, fügt dem Header ausgehender E-Mails eine dem Domänennamen zugeordnete digitale Signatur hinzu. Die empfangende Partei kann den Nachrichtentext und die Header-Felder validieren, indem sie die Signatur gegen einen öffentlichen Schlüssel prüft, der aus den DNS-Einträgen des Absenders abgerufen wird.
opendkim-genkey -s WAHLSCHALTER -d DOMÄNE
erstellt werden. WAHLSCHALTER muss ein eindeutiger Name für den Schlüssel sein. Er kann so einfach wie "mail" oder das Erstellungsdatum sein, wenn Sie vorhaben, Schlüssel zu rotieren.
Beispiel 11.11. Erstellen Sie einen privaten Schlüssel zum Signieren von E-Mails von falcot.com
#
opendkim-genkey -s mail -d falcot.com -D /etc/dkimkeys
#
chown opendkim.opendkim /etc/dkimkeys/mail.*
/etc/dkimkeys/mail.private
und /etc/dkimkeys/mail.txt
erstellt und der entsprechende Besitz festgelegt. Die erste Datei enthält den privaten Schlüssel und die zweite den öffentlichen Schlüssel, der dem DNS hinzugefügt werden muss:
Name: mail._domainkey Type: TXT TTL: 3600 Data: "v=DKIM1; h=sha256; k=rsa; s=email; p=[...]"
-b 1024
, um eine kleinere Schlüsselgröße zu wählen. Wenn die Ausführung von opendkim-testkey
erfolgreich ist, wurde der Eintrag erfolgreich eingerichtet. Die Syntax des Eintrags wird hier erklärt:
SOCKET
und RUNDIR
in /etc/default/opendkim
ausgewählt werden. Bitte beachten Sie, dass SOCKET
über postfix
in seiner chroot-Umgebung zugänglich sein muss. Die weitere Konfiguration erfolgt in /etc/opendkim.conf
. Es folgt ein Konfigurationsauszug, der sicherstellt, dass die Domain
(Domäne) "falcot.com" und alle Subdomains (SubDomain
) mit dem Selector
(Wahlschalter) "mail" und dem einzelnen privaten Schlüssel (KeyFile
) /etc/dkimkeys/mail.private
signiert werden. Die "entspannte" Canonicalization
(Kanonisierung) sowohl für die Kopfzeile als auch für den Textkörper toleriert leichte Änderungen (z.B. durch eine Mailinglisten-Software). Der Filter läuft sowohl beim Signieren ("s") als auch beim Verifizieren ("v") Modus
. Wenn eine Signatur nicht validiert werden kann (On-BadSignature
), sollte die E-Mail unter Quarantäne gestellt werden ("q").
[...] Domain falcot.com KeyFile /etc/dkimkeys/mail.private Selector mail [...] Canonicalization relaxed/relaxed Mode sv On-BadSignature q SubDomains yes [...] Socket inet:12345@localhost [...] UserID opendkim
KeyTable
) und Domänen (SigningTable
) zu verwenden und interne oder vertrauenswürdige Hosts (InternalHosts
, ExternalIgnoreList
) anzugeben, die E-Mails ohne Anmeldeinformationen über den Server als eine der signierenden Domänen senden können.
/etc/postfix/main.cf
bewirken, dass postfix
den Filter verwendet:
milter_default_action = accept non_smtpd_milters = inet:localhost:12345 smtpd_milters = inet:localhost:12345
/etc/postfix/master.cf
hinzuzufügen.
/usr/share/doc/opendkim/
und in den Handbuchseiten opendkim(8) und opendkim.conf(5).
_dmarc
und der Aktion zu definieren, die ausgeführt werden soll, wenn E-Mails, die Ihre Domain als sendenden Host enthalten, nicht mit DKIM und SPF validiert werden können.
#
host -t TXT _dmarc.gmail.com
_dmarc.gmail.com descriptive text "v=DMARC1; p=none; sp=quarantine; rua=mailto:[email protected]"
#
host -t TXT _dmarc.yahoo.com
_dmarc.yahoo.com descriptive text "v=DMARC1; p=reject; pct=100; rua=mailto:[email protected]; ruf=mailto:[email protected];"
reject
), die vorgeben, von einem Yahoo-Konto aus gesendet zu werden, denen aber DKIM- und SPF-Prüfungen fehlen oder fehlschlagen. Google Mail (Gmail) propagiert eine sehr lockere Richtlinie, in der solche Nachrichten von der Hauptdomain weiterhin akzeptiert werden sollen (p=keine
). Für Subdomains sollen sie als Spam markiert werden (sp=quarantine
). Die im Schlüssel rua
angegebenen Adressen können verwendet werden, um aggregierte DMARC-Berichte an diese zu senden. Die vollständige Syntax wird hier erklärt:
postfix
kann diese Informationen ebenfalls nutzen. Das opendmarc-Paket enthält den notwendigen Milter. Ähnlich wie bei opendkim müssen SOCKET
und RUNDIR
in /etc/default/opendmarc
gewählt werden (bei Unix-Sockets ist darauf zu achten, dass sie sich innerhalb des Postfix-Chroots befinden). Die Konfigurationsdatei /etc/opendmarc.conf
enthält detaillierte Kommentare und wird auch in opendmarc.conf(5) erklärt. Standardmäßig werden E-Mails, die die DMARC-Validierung nicht bestehen, nicht zurückgewiesen, sondern durch Hinzufügen eines entsprechenden Header-Feldes gekennzeichnet. Um dies zu ändern, verwenden Sie RejectFailures true
.
smtpd_milters
und non_smtpd_milters
hinzugefügt. Wenn wir die Filter opendkim und opendmarc so konfiguriert haben, dass sie auf den Ports 12345 und 54321 laufen, sieht der Eintrag in /etc/postfix/main.cf
wie folgt aus:
non_smtpd_milters = inet:localhost:12345,inet:localhost:54321 smtpd_milters = inet:localhost:12345,inet:localhost:54321
/etc/postfix/master.cf
angewendet werden.
saslpasswd2
, der verschiedene Parameter akzeptiert. Die Option -u
legt die Authentifizierungs-Domain fest, die mit dem Parameter smtpd_sasl_local_domain
in der Postfix-Konfiguration übereinstimmen muss. Die Option -c
ermöglicht das Anlegen eines Benutzers und -f
gestattet es, die Datei zu bestimmen, die benutzt werden soll, wenn die SASL-Datenbank an einem anderen als dem standardmäßig vorgegebenen Ort (/etc/sasldb2
) gespeichert werden muss.
#
saslpasswd2 -u `postconf -h myhostname` -f /var/spool/postfix/etc/sasldb2 -c jean
[... geben Sie Jeans Passwort zweimal ein ...]
/etc/sasldb2
in einen symbolischen Verweis um, der auf die von Postfix verwendete Datenbank weist. Dies geschieht mit dem Befehl ln -sf /var/spool/postfix/etc/sasldb2 /etc/sasldb2
.
postfix
zur Gruppe sasl
hinzugefügt werden, damit er auf die Datenbank des SASL-Kontos zugreifen kann. Einige zusätzliche Parameter sind erforderlich, um SASL zu aktivieren, und der Parameter smtpd_recipient_restrictions
muss so eingestellt werden, dass Benutzer, die für SASL authentifiziert sind, ungehindert E-Mails versenden können.
Beispiel 11.12. SASL in /etc/postfix/main.cf
aktivieren
# Enable SASL authentication smtpd_sasl_auth_enable = yes # Define the SASL authentication domain to use smtpd_sasl_local_domain = $myhostname [...] # Adding permit_sasl_authenticated before reject_unauth_destination # allows relaying mail sent by SASL-authenticated users smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, [...]
/etc/postfix/master.cf
konfiguriert werden. Um die Authentifizierung für Port 25 (smtpd
-Dienst) überhaupt abzuschalten, fügen Sie die folgende Anweisung hinzu:
smtp inet n - y - - smtpd [..] -o smtpd_sasl_auth_enable=no [..]
AUTH
-Befehl verwenden (einige sehr alte E-Mail-Clients tun dies), kann die Zusammenarbeit mit ihnen mit der Direktive broken_sasl_auth_clients
aktiviert werden.