Postfix Einrichtung · 3 min read · Dec 31, 2025
Virtuelles Hosting Howto Mit Virtualmin Auf CentOS 5.1 - Seite 3
Konfiguration
Postfix Einrichtung
Einführung
Wir werden Postfix mit den folgenden Funktionen einrichten:
- Virtuelles Hosting
- UCE-Prävention
- Anti-Virus
- SMTP-Authentifizierung
- TLS
- RBLs
- SPF
- Angriffsminderung
Das Hinzufügen von Konten und Domains wird über Virtualmin konfiguriert, obwohl es auch manuell erfolgen kann. Die Einrichtung ist so konzipiert, dass sie ressourcenschonend ist, sodass sie auf Maschinen laufen kann, die nicht überdimensioniert sind, wodurch die Ressourcen besser genutzt werden können. Um es ressourcenschonend zu gestalten, verwenden wir keine externen Datenbanken zur Speicherung von virtuellen Benutzerinformationen, wie es die meisten anderen Anleitungen tun, und verwenden Milter für Spam- und Virenprüfungen anstelle von amavisd-new.
Die Grundlagen
Zunächst werden wir die Grundlagen wie den Hostnamen, den Mail-Ursprung, Netzwerke und das Hash-Map-Spoolverzeichnis konfigurieren. Alle diese Konfigurationsoptionen sollten zu /etc/postfix/main.cf hinzugefügt werden, sofern nicht anders angegeben. Beispielkonfigurationsdateien sind am Ende dieser Seite zum Download verfügbar.
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mydomain = example.com
myorigin = $mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
sender_canonical_maps = hash:/etc/postfix/canonical
recipient_canonical_maps = hash:/etc/postfix/canonical
virtual_alias_maps = hash:/etc/postfix/virtual
mail_spool_directory = /var/spool/mailMaildir
Wir werden das deutlich verbesserte Maildir-Format anstelle des Standard-mbox-Formats verwenden:
home_mailbox = Maildir/SASL
Um die SMTP-Authentifizierung durchzuführen, verwenden wir SASL, jedoch werden wir nicht Cyrus SASL verwenden, da dies erfordert, dass wir den saslauthd-Daemon ausführen. Stattdessen verwenden wir Dovecot SASL, da wir Dovecot für IMAP und POP3 ausführen werden, wodurch wir zwei Fliegen mit einer Klappe schlagen.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yesTLS
Wir benötigen TLS, um sicherzustellen, dass die Klartextpasswörter während der SMTP-Authentifizierung nicht über das Netzwerk übertragen werden. Server, die TLS unterstützen, können auch über eine gesicherte Verbindung mit diesem Server kommunizieren.
Anleitungen zur Erstellung Ihres Serverzertifikats, das von cacert.org signiert ist, finden Sie hier.
- TLS-Zufallsquelle festlegen:
tls_random_source = dev:/dev/urandom- Server-TLS aktivieren:
smtpd_use_tls = yes
smtpd_tls_key_file = /etc/pki/postfix/key.pem
smtpd_tls_cert_file = /etc/pki/postfix/server.pem
smtpd_tls_CAfile = /etc/pki/postfix/root.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:/var/spool/postfix/smtpd_tls_cache- Client-TLS aktivieren:
smtp_use_tls = yes
smtp_tls_key_file = /etc/pki/postfix/key.pem
smtp_tls_cert_file = /etc/pki/postfix/server.pem
smtp_tls_CAfile = /etc/pki/postfix/root.crt
smtp_tls_session_cache_database = btree:/var/spool/postfix/smtp_tls_cache
smtp_tls_note_starttls_offer = yesSpam-Prävention
- Erfordere ein gültiges EHLO / HELO:
smtpd_helo_required = yes- Verhindern von E-Mail-Adressen-Erntediensten:
disable_vrfy_command = yes- Ändern Sie die Ablehnungs-Codes in permanent (standardmäßig gibt Postfix 4xx-Fehlercodes aus, was vorübergehende Fehler impliziert; wir benötigen 5xx für permanente Fehler):
unverified_recipient_reject_code = 550
unverified_sender_reject_code = 550
unknown_local_recipient_reject_code = 550- Einrichten der Senderadressenüberprüfung:
address_verify_map = btree:/var/spool/postfix/verify
smtpd_sender_restrictions = hash:/etc/postfix/sender_access- Erstellen Sie /etc/postfix/sender_access und fügen Sie hinzu:
# Beispiel /etc/postfix/sender_access enthält häufig gefälschte Domains
aol.com reject_unverified_sender
hotmail.com reject_unverified_sender
yahoo.com reject_unverified_sender
gmail.com reject_unverified_sender
bigfoot.com reject_unverified_sender- Minderung von Angriffen durch Zombies und fehlerhafte Clients:
smtpd_error_sleep_time = 5s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20- Nur Pipelining von authentifizierten Clients zulassen:
smtpd_data_restrictions = reject_unauth_pipelining- Installieren Sie postfix-policyd-spf-perl und aktivieren Sie die SPF-Unterstützung:
wget http://www.openspf.org/blobs/postfix-policyd-spf-perl-2.005.tar.gz
tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cd postfix-policyd-spf-perl-2.005
cp postfix-policyd-spf-perl /etc/postfix/Fügen Sie dies zu /etc/postfix/master.cf hinzu:
spfpolicy unix - n n - - spawn user=nobody argv=/usr/bin/perl /etc/postfix/postfix-policyd-spf-perl- DKIM-Unterstützung hinzufügen:
Anleitungen zur Hinzufügung der DKIM-Unterstützung finden Sie hier.
- Domainkeys-Unterstützung hinzufügen:
Anleitungen zur Hinzufügung der Domainkeys-Unterstützung finden Sie hier.
- Damit alles funktioniert, hängt von der Option smtpd_recipient_restrictions ab, also setzen wir sie unten:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_recipient_access hash:/etc/postfix/access
reject_unknown_recipient_domain
reject_unknown_sender_domain
reject_unverified_recipient
reject_non_fqdn_recipient
reject_non_fqdn_sender
reject_invalid_hostname
reject_rbl_client list.dsbl.org
reject_rbl_client zen.spamhaus.org
reject_rbl_client l1.spews.dnsbl.sorbs.net
reject_rbl_client combined.njabl.org
reject_rbl_client bl.spamcop.net
reject_rhsbl_sender dsn.rfc-ignorant.org
reject_rhsbl_sender bogusmx.rfc-ignorant.org
reject_rhsbl_sender rhsbl.sorbs.net
reject_rhsbl_client dsn.rfc-ignorant.org
reject_rhsbl_client bogusmx.rfc-ignorant.org
reject_rhsbl_client rhsbl.sorbs.net
check_policy_service unix:private/spfpolicyMilters [SpamAssassin & ClamAV]
Für Ihre Spam-Klassifizierung mit SpamAssassin und Virenprüfung mit ClamAV verwenden wir die Milter-Schnittstelle von Postfix anstelle des ressourcenintensiven amavisd-new-Daemons. Dies ist eine sehr effiziente Methode, da wir nicht einmal clamd ausführen müssen; der ClamAV-Milter führt die Prüfung selbst durch.
smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sock
non_smtpd_milters = unix:/var/clamav/clmilter.socket unix:/var/run/spamass.sockDB-Dateien erstellen
postmap /etc/postfix/canonical
postmap /etc/postfix/access
postmap /etc/postfix/virtual
postmap /etc/postfix/sender_accessBeispielkonfigurationsdateien
- main.cf
- master.cf
- canonical
- virtual
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.