Ubuntu-Befehlszeilen-E-Mail-Tool für Server

Ubuntu-Befehlszeilen-E-Mail-Tool für Server

Ich habe angefangen, einige Skripte zu schreiben, die meine Protokolldateien sichern. Immer wenn in der Protokolldatei ein Fehler gefunden wird, möchte ich mir selbst eine E-Mail senden. Ich möchte jedoch sicherstellen, dass mein Server nicht kompromittiert ist, da ich gehört habe, dass die Installation von SMTP/Mail Hackern neue Möglichkeiten eröffnet.

Gibt es ein Tool, das keine E-Mails empfängt, sondern nur senden kann? Und welche Sicherheitsaspekte muss ich bei der Installation berücksichtigen?

Antwort1

Ich möchte jedoch sicherstellen, dass mein Server nicht kompromittiert wird, da ich gehört habe, dass die Installation von SMTP/Mail neue Möglichkeiten für Hacker eröffnet

BeliebigDer Dienst könne „Hackern neue Möglichkeiten eröffnen“, wennes ist schlecht geschrieben.Aber für E-Mail sind sowohl Postfix als auch Exim4 sehr sicher.

(Im Allgemeinen ist alles in Ordnung, solange Sie kein zehn Jahre altes Sendmail verwenden. Aktuelle Versionen sind sicher, aber ich würde Ihnen trotzdem empfehlen, sich von Sendmail fernzuhalten – die Konfigurationsdatei ist nicht gerade für Menschen lesbar.)

Gibt es ein Tool, das keine E-Mails empfängt, sondern nur versenden kann?

Jeder MTA (Postfix, Exim4, Sendmail) kann auf diese Weise arbeiten – konfigurieren Sie ihn einfach so, dass er nur auf Loopback-Adressen ( ::1und 127.0.0.1) lauscht. Sie können die SMTP-Komponente sogar vollständig deaktivieren – die meisten Unix-Programme benötigen sie nicht und senden E-Mails über /usr/sbin/sendmail1 , wodurch SMTP unnötig wird.

Gegen „Hacker“ ist das allerdings nicht wirklich notwendig. Das Schlimmste, was Sie mit einem anständigen MTA anstellen können, ist, ihn für die Weiterleitung offen zu lassen – und die Standardkonfigurationen kümmern sich bereits darum.

Eine weitere Option ist msmtp, das nicht einmal vollständige SMTP-Unterstützung bietet – es kann lediglich E-Mails über einen anderen Mailserver weiterleiten, beispielsweise den von Gmail oder Ihrem ISP. Obwohl es für einen PC nützlich ist, passt es nicht wirklich in eine Serverumgebung.


1 " /usr/sbin/sendmail" ist ein Programm, das mitgeliefert wirdalleMTAs, während "Sendmail" der Name einesSpezifischMTA.

Antwort2

Das Senden von E-Mails aus einem Shell-Skript ist relativ einfach, solange Sie einen Standard-MTA (Postfix, Exim4, Sendmail usw.) installiert haben. Im Allgemeinen können Sie zum Senden den mailBefehl mit den entsprechenden Argumenten verwenden, um den Inhalt Ihrer E-Mail an das Programm zurückzugeben. Beispiel:

echo "Error occurred in script at `date`" | mail -s "Error running script" [email protected]

Das -sArgument gibt den Betreff an und anschließend den E-Mail-Empfänger.

Ein anderes Beispiel

grep -i error /path/to/yourfile.log | mail -s "Errors from script execution" [email protected]

Prüfen Sie man mail, ob weitere Optionen verfügbar sind.

Wenn Sie Ihr Skript über Cron ausführen, können Sie sich die Ausgabe Ihres Skripts auch automatisch per E-Mail von Cron zusenden lassen. Fügen Sie diese MAILTOOption wie folgt zu Ihrer Crontab hinzu:

[email protected]

und Sie erhalten bei jeder Ausführung Ihres Skripts eine E-Mail mit der Ausgabe von stdout.

Was die Sicherheit betrifft, sind das Senden und Empfangen von E-Mails zwei völlig verschiedene Dinge. Sie können E-Mails von Ihrem Server senden, ohne einen empfangenden Mailserver zu betreiben. Führen Sie dazu einfach den SMTP-Daemon nicht aus oder blockieren Sie den Zugriff auf den eingehenden Port 25 (SMTP) über eine Firewall, wenn Sie keine E-Mails über diesen Server empfangen müssen.

verwandte Informationen