Problem: Sendmail Auf Ubuntu Konfigurieren
Sendmail ist ein Mail Transfer Agent für Linux-Systeme, aber die Einrichtung auf Ubuntu kann schwierig sein. Eine korrekte Konfiguration ist nötig, damit E-Mails richtig gesendet und empfangen werden können und Zustellungsprobleme oder Sicherheitslücken vermieden werden.
Sendmail Auf Ubuntu Installieren
Schritte Zur Installation Von Sendmail
So installieren Sie Sendmail auf Ubuntu:
-
Öffnen Sie ein Terminal auf Ihrem Ubuntu-System.
-
Installieren Sie Sendmail mit apt-get:
sudo apt-get install sendmail -
Geben Sie Ihr System-Passwort ein, wenn Sie dazu aufgefordert werden.
-
Warten Sie, bis die Installation abgeschlossen ist.
-
Prüfen Sie, ob Sendmail installiert ist:
sendmail -vDies zeigt die Version von Sendmail an, falls die Installation korrekt war.
-
Überprüfen Sie den Status des Sendmail-Dienstes:
sudo systemctl status sendmailDies zeigt an, ob Sendmail aktiv ist und läuft.
Nach diesen Schritten haben Sie Sendmail auf Ihrem Ubuntu-System installiert.
Tipp: Sendmail Konfigurieren
Nach der Installation von Sendmail müssen Sie es möglicherweise konfigurieren. Bearbeiten Sie dazu die Sendmail-Konfigurationsdatei:
sudo nano /etc/mail/sendmail.mc
Nehmen Sie Ihre Änderungen vor und erstellen Sie die Konfiguration neu:
sudo make -C /etc/mail
sudo systemctl restart sendmail
Grundlegende Sendmail-Konfiguration
Sendmailconfig Ausführen
Der Befehl sendmailconfig richtet die Basiskonfiguration für Sendmail ein. Hier ist, was Sie über diesen Befehl wissen müssen:
-
Um sendmailconfig auszuführen, verwenden Sie:
sudo sendmailconfig -
Dieser Befehl aktualisiert die Konfigurationsdateien von Sendmail.
-
Er stellt Fragen zu Ihrer Mail-Einrichtung und erstellt die Konfiguration basierend auf Ihren Antworten.
-
Das Tool zielt darauf ab, eine funktionsfähige Konfiguration für gängige Setups zu erstellen.
-
Es aktualisiert Dateien wie /etc/mail/sendmail.cf und /etc/mail/submit.cf.
-
Der Befehl fragt möglicherweise nach dem vollqualifizierten Domainnamen (FQDN) Ihres Systems.
-
Er könnte Sie auffordern, zwischen IPv4- und IPv6-Protokollen zu wählen.
-
Sie müssen möglicherweise Änderungen an bestehenden Konfigurationsdateien bestätigen.
Der Hauptzweck dieses ersten Konfigurationsschritts ist:
-
Eine funktionierende Sendmail-Basiskonfiguration einzurichten.
-
Benutzern zu helfen, die mit der Konfigurationsstruktur von Sendmail nicht vertraut sind.
-
Einen Ausgangspunkt für weitere Anpassungen zu schaffen, falls nötig.
-
Die Wahrscheinlichkeit von Fehlkonfigurationen zu verringern, die Sicherheits- oder Funktionsprobleme verursachen könnten.
Denken Sie daran: Obwohl sendmailconfig einen guten Ausgangspunkt bietet, müssen Sie möglicherweise weitere Änderungen für spezifische Anforderungen oder erweiterte Setups vornehmen.
Tipp: Sichern Sie Ihre Konfiguration
Bevor Sie sendmailconfig ausführen, ist es ratsam, Ihre bestehenden Sendmail-Konfigurationsdateien zu sichern. Sie können dies tun, indem Sie die Hauptkonfigurationsdateien kopieren:
sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.backup
sudo cp /etc/mail/submit.cf /etc/mail/submit.cf.backup
So können Sie Änderungen bei Bedarf rückgängig machen.
Sendmail-Konfigurationsdateien Finden Und Bearbeiten
Wichtige Konfigurationsdateien
Sendmail verwendet mehrere Konfigurationsdateien, um sein Verhalten zu steuern. Die Hauptdateien, die Sie kennen sollten, sind:
-
/etc/mail/sendmail.conf: Diese Datei enthält allgemeine Einstellungen für Sendmail. Sie steuert Optionen wie die maximale Nachrichtengröße, die Anzahl der Queue-Runner und den Speicherort der Sendmail-Verzeichnisse.
-
/etc/cron.d/sendmail: Diese Datei richtet geplante Aufgaben für Sendmail ein. Sie enthält Einträge zum Ausführen der Queue und zum Aktualisieren der Sendmail-Datenbanken in Intervallen.
-
/etc/mail/sendmail.mc: Dies ist die Hauptkonfigurationsdatei für Sendmail. Sie ist in der m4-Makrosprache geschrieben und definiert die meisten Betriebsparameter von Sendmail. Nach dem Bearbeiten dieser Datei müssen Sie sie in sendmail.cf kompilieren, damit die Änderungen wirksam werden.
So bearbeiten Sie diese Dateien:
-
Öffnen Sie ein Terminal auf Ihrem Ubuntu-System.
-
Verwenden Sie einen Texteditor mit Root-Rechten, um die Datei zu öffnen. Zum Beispiel:
sudo nano /etc/mail/sendmail.mc -
Nehmen Sie Ihre Änderungen in der Datei vor.
-
Speichern Sie die Datei und schließen Sie den Editor.
-
Falls Sie sendmail.mc bearbeitet haben, kompilieren Sie sie zu sendmail.cf:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf -
Starten Sie Sendmail neu, um die Änderungen anzuwenden:
sudo systemctl restart sendmail
Denken Sie daran, diese Dateien zu sichern, bevor Sie Änderungen vornehmen. So können Sie zu einer funktionierenden Konfiguration zurückkehren, falls nötig.
Tipp: Verwenden Sie Versionskontrolle Für Das Konfigurationsmanagement
Erwägen Sie die Verwendung eines Versionskontrollsystems wie Git zur Verwaltung Ihrer Sendmail-Konfigurationsdateien. Dieser Ansatz ermöglicht es Ihnen, Änderungen zu verfolgen, einfach zu früheren Versionen zurückzukehren und mit Teammitgliedern bei der Verwaltung komplexer Konfigurationen zusammenzuarbeiten. Hier ist ein grundlegender Workflow:
-
Initialisieren Sie ein Git-Repository in Ihrem /etc/mail-Verzeichnis:
cd /etc/mail sudo git init -
Fügen Sie Ihre Konfigurationsdateien zum Repository hinzu:
sudo git add sendmail.mc sendmail.cf -
Committen Sie Ihre Änderungen:
sudo git commit -m "Initial commit of Sendmail configuration" -
Erstellen Sie vor Änderungen einen neuen Branch:
sudo git checkout -b new-config-changes -
Nach dem Vornehmen und Testen Ihrer Änderungen committen Sie diese:
sudo git commit -am "Updated SMTP relay settings" -
Wenn die Änderungen wie erwartet funktionieren, mergen Sie sie zurück in den Hauptbranch:
sudo git checkout main sudo git merge new-config-changes
Diese Methode bietet ein Sicherheitsnetz und eine klare Historie Ihrer Konfigurationsänderungen.
Sendmail-Konfiguration Testen
Eine Test-E-Mail Senden
Nach der Einrichtung von Sendmail testen Sie, ob es korrekt funktioniert. Sie können eine Test-E-Mail über die Kommandozeile senden. So geht's:
-
Öffnen Sie ein Terminal auf Ihrem Ubuntu-System.
-
Verwenden Sie diesen Befehl, um eine Test-E-Mail zu senden:
echo "Dies ist eine Test-E-Mail von Sendmail" | sendmail -v ihre_email@example.comErsetzen Sie "ihre_email@example.com" durch Ihre E-Mail-Adresse.
-
Das Flag
-vzeigt den E-Mail-Übertragungsprozess an. -
Überprüfen Sie Ihren E-Mail-Posteingang auf die Testnachricht.
So bestätigen Sie die E-Mail-Zustellung:
-
Suchen Sie nach der Test-E-Mail in Ihrem Posteingang.
-
Falls Sie sie nicht sehen, prüfen Sie Ihren Spam-Ordner.
-
Überprüfen Sie die E-Mail-Header, um zu bestätigen, dass sie über Ihren Sendmail-Server gesendet wurde.
-
Überprüfen Sie die Sendmail-Logs auf Fehlermeldungen:
sudo tail -f /var/log/mail.logDieser Befehl zeigt Echtzeit-Log-Einträge an.
Falls die Test-E-Mail nicht ankommt oder Sie Fehler in den Logs sehen, überprüfen Sie Ihre Sendmail-Konfiguration oder prüfen Sie Ihre Netzwerkeinstellungen.
Tipp: Verwendung Eines Test-Skripts
Erstellen Sie ein einfaches PHP-Skript, um die Sendmail-Funktionalität zu testen:
<?php
$to = "ihre_email@example.com";
$subject = "Test-E-Mail von Sendmail";
$message = "Dies ist eine Test-E-Mail, die mit PHP und Sendmail gesendet wurde.";
$headers = "From: webmaster@example.com";
if(mail($to, $subject, $message, $headers)) {
echo "E-Mail erfolgreich gesendet.";
} else {
echo "E-Mail-Versand fehlgeschlagen.";
}
?>
Speichern Sie dieses Skript und führen Sie es über Ihren Webserver aus, um die Sendmail-Integration mit PHP zu testen.
Fehlersuche Bei Der E-Mail-Zustellung
Falls Ihre Test-E-Mail nicht ankommt, probieren Sie diese Schritte:
-
Überprüfen Sie Ihre Firewall-Einstellungen, um sicherzustellen, dass Port 25 (SMTP) offen ist.
-
Stellen Sie sicher, dass Ihre DNS-Einstellungen korrekt sind.
-
Überprüfen Sie die Sendmail-Queue auf feststeckende Nachrichten:
sudo mailq -
Falls Nachrichten feststecken, versuchen Sie die Queue zu leeren:
sudo sendmail -q
Diese Schritte können helfen, häufige Probleme zu finden, die die E-Mail-Zustellung verhindern.
SMTP-Relay Zu Sendmail Hinzufügen
SMTP-Authentifizierung Einrichten
Um SMTP-Relay zu Sendmail hinzuzufügen, müssen Sie die SMTP-Authentifizierung einrichten. Dieser Prozess beinhaltet das Erstellen eines Authentifizierungsverzeichnisses und das Generieren einer Authentifizierungsdatenbank. So geht's:
-
Erstellen Sie ein Authentifizierungsverzeichnis:
sudo mkdir /etc/mail/auth sudo chmod 700 /etc/mail/authDies erstellt ein Verzeichnis zum Speichern von Authentifizierungsinformationen.
-
Erstellen Sie eine Datei zum Speichern Ihrer SMTP-Server-Zugangsdaten:
sudo nano /etc/mail/auth/client-info -
Fügen Sie Ihre SMTP-Server-Informationen zur Datei hinzu:
AuthInfo:ihr.smtp.server "U:benutzername" "P:passwort" "M:PLAIN"Ersetzen Sie "ihr.smtp.server", "benutzername" und "passwort" durch Ihre tatsächlichen SMTP-Server-Details.
-
Generieren Sie die Authentifizierungsdatenbank:
sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-infoDieser Befehl erstellt eine Datenbankdatei, die Sendmail verwenden kann.
-
Setzen Sie die korrekten Berechtigungen für die Dateien:
sudo chmod 600 /etc/mail/auth/client-info sudo chmod 600 /etc/mail/auth/client-info.dbDies beschränkt den Zugriff auf diese Dateien.
Nach Abschluss dieser Schritte haben Sie die Authentifizierung für SMTP-Relay eingerichtet. Der nächste Schritt ist, Ihre Sendmail-Konfiguration zu ändern, um diese Authentifizierung beim Senden von E-Mails über Ihren SMTP-Server zu verwenden.
Tipp: Sichern Sie Ihre Authentifizierungsinformationen
Um die Sicherheit zu erhöhen, können Sie Ihre client-info-Datei verschlüsseln:
-
Installieren Sie GPG:
sudo apt-get install gnupg -
Generieren Sie einen GPG-Schlüssel:
gpg --gen-key -
Verschlüsseln Sie die client-info-Datei:
gpg -e -r "Ihr Name" /etc/mail/auth/client-info -
Löschen Sie die Originaldatei:
sudo shred -u /etc/mail/auth/client-info
Dieser Ansatz fügt Ihren SMTP-Zugangsdaten Verschlüsselung hinzu und macht sie sicherer.
Die Datei sendmail.mc Ändern
SMTP-Konfiguration Hinzufügen
Um Sendmail so einzurichten, dass es Ihr SMTP-Relay verwendet, müssen Sie die Datei sendmail.mc ändern. Diese Datei enthält die Haupteinstellungen für Sendmail. So fügen Sie die SMTP-Konfiguration hinzu:
-
Öffnen Sie die Datei sendmail.mc:
sudo nano /etc/mail/sendmail.mc -
Fügen Sie diese Zeilen vor dem Abschnitt MAILER_DEFINITIONS hinzu:
define(`SMART_HOST',`ihr.smtp.server')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnlErsetzen Sie 'ihr.smtp.server' durch Ihre SMTP-Server-Adresse.
-
Speichern und schließen Sie die Datei.
Nach dem Hinzufügen dieser Zeilen müssen Sie die Datei sendmail.cf aktualisieren. Sendmail liest diese Datei beim Start. So aktualisieren Sie sie:
-
Führen Sie diesen Befehl aus:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cfDieser Befehl wandelt die Datei sendmail.mc in sendmail.cf um.
-
Starten Sie Sendmail neu, um die Änderungen anzuwenden:
sudo systemctl restart sendmail
Diese Änderungen weisen Sendmail an, Ihren SMTP-Server als Smart Host zu verwenden, Authentifizierungsmethoden zu aktivieren und die zuvor eingerichteten Authentifizierungsinformationen zu verwenden.
Testen Sie Ihr Setup nach diesen Änderungen, um sicherzustellen, dass Sendmail korrekt mit Ihrem SMTP-Relay funktioniert.
Tipp: SMTP-Konfiguration Überprüfen
Nach dem Ändern der Datei sendmail.mc und dem Neustart von Sendmail können Sie die SMTP-Konfiguration überprüfen, indem Sie die Mail-Logs prüfen. Verwenden Sie den folgenden Befehl, um die neuesten Log-Einträge anzuzeigen:
sudo tail -f /var/log/maillog
Suchen Sie nach Zeilen, die eine erfolgreiche Verbindung zu Ihrem SMTP-Server anzeigen, und nach Authentifizierungsnachrichten. Dies kann Ihnen helfen zu erkennen, ob es Probleme mit Ihrer Konfiguration gibt.
Sendmail-Dienst Neu Starten
Konfigurationsänderungen Anwenden
Nach dem Ändern Ihrer Sendmail-Konfiguration starten Sie den Sendmail-Dienst neu, um diese Änderungen anzuwenden. So geht's:
-
Starten Sie den Sendmail-Daemon neu:
sudo systemctl restart sendmail -
Für ältere Ubuntu-Versionen verwenden Sie:
sudo service sendmail restart
So prüfen Sie, ob Sendmail mit den neuen Einstellungen läuft:
-
Überprüfen Sie den Status des Sendmail-Dienstes:
sudo systemctl status sendmail -
Suchen Sie nach "Active: active (running)" in der Ausgabe.
-
Überprüfen Sie die Sendmail-Logs auf Fehlermeldungen:
sudo tail -f /var/log/mail.log -
Senden Sie eine Test-E-Mail, um die neue Konfiguration zu bestätigen:
echo "Test-E-Mail" | sendmail -v ihre_email@example.com -
Überwachen Sie die Mail-Queue, um zu sehen, ob E-Mails verarbeitet werden:
mailq
Falls Sie Fehler sehen oder E-Mails nicht gesendet werden, überprüfen Sie Ihre Konfigurationsänderungen und prüfen Sie die Log-Dateien für weitere Informationen.
Testen Sie Ihr Sendmail-Setup nach jeder Konfigurationsänderung, um sicherzustellen, dass es korrekt funktioniert.
Tipp: Fehlersuche Bei Sendmail-Startproblemen
Falls Sendmail nach Konfigurationsänderungen nicht startet, probieren Sie diese Schritte:
- Prüfen Sie auf Syntaxfehler in Ihrer Konfigurationsdatei:
sendmail -bt < /dev/null - Überprüfen Sie das Sendmail-Log auf spezifische Fehlermeldungen:
sudo grep sendmail /var/log/syslog - Überprüfen Sie die Berechtigungen für Konfigurationsdateien:
sudo ls -l /etc/mail/sendmail.cf
Sendmail Auf Ubuntu Absichern
Best Practices Für Sendmail-Sicherheit
Um Ihr Sendmail-Setup auf Ubuntu abzusichern, befolgen Sie diese Praktiken:
SPF (Sender Policy Framework) konfigurieren:
-
Erstellen Sie einen SPF-Eintrag in den DNS-Einstellungen Ihrer Domain:
v=spf1 ip4:ihre_server_ip ~allErsetzen Sie "ihre_server_ip" durch die IP-Adresse Ihres Servers.
-
Installieren Sie den SPF-Milter:
sudo apt-get install spf-milter -
Fügen Sie diese Zeile zu Ihrer Datei sendmail.mc hinzu:
INPUT_MAIL_FILTER(`spf', `S=local:/var/run/spfd.sock, F=T, T=R:2m') -
Starten Sie Sendmail neu, um die Änderungen anzuwenden.
DKIM (DomainKeys Identified Mail) konfigurieren:
-
Installieren Sie OpenDKIM:
sudo apt-get install opendkim opendkim-tools -
Generieren Sie DKIM-Schlüssel:
sudo opendkim-genkey -D /etc/dkimkeys/ -d ihredomain.com -s default -
Fügen Sie dies zu Ihrer Datei sendmail.mc hinzu:
INPUT_MAIL_FILTER(`opendkim', `S=local:/var/run/opendkim/opendkim.sock, F=T, T=R:2m') -
Konfigurieren Sie OpenDKIM und starten Sie den Dienst neu.
Anti-Spam-Maßnahmen implementieren:
-
Installieren Sie SpamAssassin:
sudo apt-get install spamassassin -
Fügen Sie dies zu Ihrer Datei sendmail.mc hinzu:
MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m') -
Konfigurieren Sie SpamAssassin und starten Sie den Dienst neu.
-
Aktualisieren Sie Ihre Spam-Regeln:
sudo sa-update
Erstellen Sie Ihre Datei sendmail.cf neu und starten Sie Sendmail nach diesen Änderungen neu. Diese Maßnahmen helfen, Ihr E-Mail-System vor Spam und Spoofing-Versuchen zu schützen.
Tipp: Regelmäßige Sicherheitsüberprüfungen
Führen Sie Sicherheitsüberprüfungen Ihres Sendmail-Setups durch:
-
Prüfen Sie auf Open Relay:
telnet localhost 25 HELO example.com MAIL FROM: test@example.com RCPT TO: test@example.comFalls dies erfolgreich ist, könnte Ihr Server ein Open Relay sein.
-
Überprüfen Sie Ihre Zugriffskontrolllisten in /etc/mail/access.
-
Halten Sie Ihr System und Sendmail mit den neuesten Sicherheitspatches aktuell.





