Dies ist eine alte Version des Dokuments!
Email Versand
Der Server sollte in der Lage sein Emails bei bestimmen Vorkommnissen
zum Beispiel einem Virusfund dem Administrator zu melden.
Ich möchte hier keinen kompletten Email Server aufsetzen. Stattdessen soll der Emailserver nur lokale Email entgegennehmen und über einen externen
SMTP Server versenden.
Postfix Installation
Als Email Server verwende ich Postfix.
apt install postfix ca-certificates libsasl2-modules
Bei der Serverauswahl bitte den „internet“ Server auswählen.
Postfix Konfigurieren
Wir benötigen zwei Dateien
die main.cf als Hauptkonfigurationsdatei von Postfix und die sasl_passwd Datei für unseren Benutzernamen und das Passwort des SMTP Servers.
nano /etc/postfix/main.cf
# Allgemeine Postfix-Konfiguration myhostname = servername.mydomain.de mydomain = mydomain.de myorigin = /etc/mailname inet_interfaces = loopback-only inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost # Relaying über den Strato SMTP-Server relayhost = [smtp.strato.de]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may smtp_tls_loglevel = 1 smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt # Erhöhte Timeout-Werte smtp_connect_timeout = 60s smtp_helo_timeout = 60s smtp_send_xforward_command = no # Verhindert das Akzeptieren von eingehenden E-Mails smtpd_banner = $myhostname ESMTP Postfix smtpd_tls_security_level = none smtpd_sasl_auth_enable = no smtpd_recipient_restrictions = reject # Weiterleitung von Nachrichten, die keine lokalen Empfänger haben local_recipient_maps = # Weitere Einstellungen für Sicherheit und Performance mynetworks = 127.0.0.0/8 relay_domains = smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname
| Parameter | Wert | Erklärung |
| myhostname | mail.deinedomain.de | Der Hostname des Servers. Dies sollte dem Domainnamen deines Servers entsprechen. |
| mydomain | deinedomain.de | Der Domainname, unter dem der Server erreichbar ist. |
| myorigin | /etc/mailname | Der Ursprung der E-Mails, wenn sie gesendet werden. Normalerweise der Domainname des Servers. |
| inet_interfaces | loopback-only | Postfix hört nur auf der lokalen Netzwerk-Schnittstelle (127.0.0.1). Dies bedeutet, dass der Server keine eingehenden E-Mails akzeptiert. |
| inet_protocols | ipv4 | Postfix wird nur das IPv4-Protokoll verwenden. Verhindert, dass der Server IPv6 verwendet, wenn es nicht benötigt wird. |
| mydestination | $myhostname, localhost.$mydomain, localhost | Bestimmt, welche Domains als Ziel für eingehende E-Mails akzeptiert werden. Da `inet_interfaces = loopback-only`, sind keine externen Ziele erlaubt. |
| relayhost | [smtp.strato.de]:587 | Der Strato SMTP-Server, über den E-Mails gesendet werden. Der Port 587 ist für verschlüsseltes SMTP (TLS). |
| smtp_sasl_auth_enable | yes | Aktiviert die SASL-Authentifizierung für den ausgehenden SMTP-Verkehr, um sich beim Strato-Server anzumelden. |
| smtp_sasl_password_maps | hash:/etc/postfix/sasl_passwd | Gibt den Speicherort der Datei an, die die SMTP-Authentifizierungsdaten enthält (Benutzername und Passwort). |
| smtp_sasl_security_options | noanonymous | Verhindert anonyme Authentifizierung und stellt sicher, dass eine ordnungsgemäße Benutzeridentifikation erfolgt. |
| smtp_tls_security_level | may | TLS (Transport Layer Security) wird verwendet, wenn der SMTP-Server es unterstützt, ist aber nicht zwingend erforderlich. |
| smtp_tls_loglevel | 1 | Setzt das Log-Level für TLS-Verbindungen. Wert 1 zeigt grundlegende TLS-Fehler an. |
| smtp_tls_CAfile | /etc/ssl/certs/ca-certificates.crt | Der Pfad zu den Zertifikaten von vertrauenswürdigen Zertifizierungsstellen, um TLS-Verbindungen abzusichern. |
| smtp_connect_timeout | 60s | Legt die maximale Zeit fest, die Postfix wartet, um eine Verbindung zum SMTP-Server herzustellen, bevor ein Timeout erfolgt. |
| smtp_helo_timeout | 60s | Legt den Timeout-Wert für den `HELO`-Befehl fest, der zu Beginn der SMTP-Verbindung gesendet wird. |
| smtp_send_xforward_command | no | Verhindert das Senden des `XFORWARD`-Befehls, um unnötige Informationen zu vermeiden. |
| smtpd_banner | $myhostname ESMTP Postfix | Definiert das Banner, das der Server anzeigt, wenn er sich mit einem anderen SMTP-Server verbindet. |
| smtpd_tls_security_level | none | Deaktiviert TLS für eingehende Verbindungen (da der Server keine E-Mails von außen empfängt). |
| smtpd_sasl_auth_enable | no | Deaktiviert SASL-Authentifizierung für eingehende Verbindungen (da keine externen E-Mails empfangen werden). |
| smtpd_recipient_restrictions | reject | Verhindert das Akzeptieren von eingehenden E-Mails, indem alle Empfängeranfragen abgelehnt werden. |
| local_recipient_maps | Keine lokalen Empfänger, da der Server keine E-Mails empfängt. | |
| mynetworks | 127.0.0.0/8 | Beschränkt den Zugang zum Server nur auf die lokale Maschine (127.0.0.1). |
| relay_domains | Leere Einstellung, da der Server keine externen E-Mails empfangen kann. | |
| smtpd_helo_required | yes | Erfordert, dass der SMTP-Client beim Verbinden einen gültigen `HELO`-Befehl sendet. |
| smtpd_helo_restrictions | reject_invalid_helo_hostname | Verweigert Verbindungen mit ungültigen `HELO`-Hostnamen, um Missbrauch zu verhindern. |