Ist es möglich, E-Mails mithilfe von mailutils + Shell-Scripting nur in Ubuntu Server Headless 15.10 abzurufen und zu analysieren?

1366
kenneth558

In meiner Hoffnung, die Anzahl der Pakete zu minimieren, die jeweils ihre eigenen Konfigurationen benötigen, frage ich mich, ob es eine Möglichkeit gibt, E-Mails für die Analyse per Skript abzurufen, ohne weitere E-Mail-Pakete zu installieren. Dies ist ein Remote-Standort-System, das der Überwachung gewidmet ist, und verfügt über eine eigenständige Firewall. Beide Server sind Ubuntu Server Headless 15.10. Ich habe mailutils installiert und habe ein Bash-Skript, das erfolgreich E-Mails sendet, wenn dies mit dem E-Mail-Befehl echo-piped erforderlich ist.

mailutils enthält Postfix, movemail und readmsg, von denen ich hoffe, dass ich E-Mails aus dem E-Mail-Konto lesen kann, das der ISP für mich anbietet. Ich habe keine andere Verwendung und habe keinerlei E-Mails von ihm erhalten. Neben diesem Konto und Passwort gibt der ISP an, dass die E-Mail-Server pop3.walnutel.net und smtp.walnutel.net sind, port in = 110, port out = 587. Um herauszufinden, ob imap von ihnen verfügbar ist, schickte ich an imap.walnutel.net und stellte fest, dass es vorhanden ist und dieselbe IP-Adresse hat wie die beiden anderen E-Mail-Server. Das ist ungefähr alles, was ich über das E-Mail-Konto selbst weiß.

Wenn ich "entfernter Standort" sage, meine ich einfach 80 Kilometer von meinem normalen Standort entfernt und auf einem anderen ISP. Die E-Mail, die ich mir vorstelle, schicke mir eine E-Mail von meinem Google Mail-Konto an das Konto walnutel.net, wenn die Firewall mich auf eine schwarze Liste setzt, wo auch immer ich bin. Dann wird die E-Mail von meinem Firewall-Skript gelesen und analysiert, um diese IP-Adresse von der schwarzen Liste zu entfernen . Ich habe meine Firewall-Blacklist ziemlich aggressiv gemacht, was von jedem Paket, das einen Port versucht, versucht wird, dies zu tun. Die einzige Möglichkeit, eine Person von der schwarzen Liste fernzuhalten, besteht darin, den Port richtig zu klopfen, bevor 2 Minuten nach dem ersten Klopfen vergehen. Die Verzögerung von 2 Minuten ist nur zulässig, wenn der erste getestete Port auch der erste Port der Port-Klopfsequenz ist. Daher sehe ich eine echte Möglichkeit vor, dass ich mich versehentlich auf die schwarze Liste setzen könnte. Bis ich die Antwort auf diese gepostete Frage bekomme - und das Skript entwickelt wurde - habe ich das durch den Port-Knockd-Daemon ausgelöste Skript auch entfernt, wenn ein Blacklist-Eintrag für die IP-Adresse vorhanden ist, die den Klopftest bestanden hat. Ich bin zwar sehr sicher wie eben beschrieben, aber ich hoffe, einen potenziellen Kunden mit diesem System mit dem letzten Schliff für die Internetsicherheit zu beeindrucken, den diese E-Mail-Konfiguration bieten kann.

In meiner Recherche sehe ich andere, die zusätzlich installierte Pakete wie Dovecot, Fetchmail, Procmail, Mutt usw. verwenden, um sie abzurufen und zu analysieren. Ich versuche, die Installation dieser oder anderer zusätzlicher Pakete zu vermeiden. Ich finde zu wenige, wenn überhaupt, Beispiele, die nur die in mailutils enthaltenen Hilfsprogramme verwenden: postfix, movemail, readmsg. Kann jemand mich dazu bringen, E-Mail-Abfragen zum Parsing durchzuführen und dabei nicht mehr E-Mail-Abrufpakete als Mailutils und Shell- oder Python-Scripting zu verwenden?

Edit 25.12.15: Ich habe gelernt, dass die von mir gesuchte E-Mail-Methode "bash Sockets" heißt. Unklar für mich ist noch nicht, ob ich mich unbedingt mit meinen lokalen E-Mail-Konto-Anmeldeinformationen authentifizieren muss, um E-Mails zuverlässig an mein nicht lokales Google Mail-Konto senden zu können, und ob ich SSL (TLS) verwenden muss. usw). Wenn Sie SSL / TLS für die Kommunikation mit E-Mail-Servern verwenden müssen, befürchte ich, dass es mir sehr schwer fallen wird, Beispiele für Bash-Skripte zu finden.

2
Dies ist eine (etwas) verbesserte Version von http://stackoverflow.com/questions/33412947/can-mailutils-alone-without-alpine-mutt-or-fetchmail-but-bash-ok-read-email, die sich gerade befindet halt. tripleee vor 8 Jahren 0
Postfix ist, wie bereits erwähnt, völlig unabhängig von mailutils. Sie benötigen * einige * MTA für einige Funktionen. Um diese Abhängigkeit zu erfüllen, wird Ihr Paketmanager auch das Postfix-Paket installieren. tripleee vor 8 Jahren 0
Ich werde nach einem Weg Ausschau halten. In der Zwischenzeit bin ich versucht zu warten, ob eine IP-Adresse den ersten oder zweiten Port der Port-Klopfsequenz überwindet. Falls ja, installieren Sie eines oder mehrere der Pakete, die ich erwähnt habe, und tun Sie es auf diese Weise. Ich gebe zu, dass mein Whitelisting-Skript für das Port-Knocking mir trotzdem eine E-Mail sendet, wenn es auch die IP-Adresse in der Blacklist findet. Darüber hinaus befindet sich die Blacklist in den iptables INPUT-Kettenregeln unterhalb der Whitelist. Dies bedeutet, dass jeder Whitelist-Eintrag eine identische Blacklist-Liste übertrumpft und so einen Totalausfall verhindert. (knockd sieht sogar IP-Adressen auf der schwarzen Liste) kenneth558 vor 8 Jahren 0
@Tripleee Vielen Dank für die Klarstellung, dass Postfix nicht Teil von mailutils ist. Es schien, als würde ich installiert werden, wenn ich mailutils installiere, vielleicht als Abhängigkeit, daher meine Vermutung. kenneth558 vor 8 Jahren 0
Erm; Bash ist eine Sache und Sockets sind eine Sache, und Bash hat etwas Unterstützung für Sockets, aber "Bash-Sockets" ist keine Sache und sicherlich keine "E-Mail-Methode". tripleee vor 7 Jahren 0

1 Antwort auf die Frage

1
tripleee

Gemäß dem GNU Mailutils-Handbuch verfügen alle Tools in der Suite über POP- und IMAP-Unterstützung. Daher müssen Sie dafür kein separates Tool installieren. Für Ihren eingeschränkten Anwendungsfall scheint es, als wäre sogar POP ausreichend, obwohl die meisten Erwachsenen in diesem Jahrhundert IMAP wahrscheinlich für alles verwenden würden.

Einige der Mailutils-Tools könnten Ihren Plan unterstützen - ein Sieve-Skript könnte mehr leisten, während readmsgdas aufrufende Skript die Ausführung der Nicht-E-Mail-Teile erfordert. Wenn Sie gut mit Bash sind und Sieben nicht besonders gern lernen, gehen Sie vielleicht mit readmsg?

Auf der anderen Seite, wenn Sie mit Python gehen, brauchen Sie nicht einmal mailutils- imaplibist Teil der Standardbibliothek. (Es gibt auch eine POP-Bibliothek .)

Danke euch beiden. Ich werde nach einem Weg Ausschau halten. In der Zwischenzeit bin ich versucht zu warten, ob eine IP-Adresse den ersten oder zweiten Port der Port-Klopfsequenz überwindet. Falls ja, installieren Sie eines oder mehrere der Pakete, die ich erwähnt habe, und tun Sie es auf diese Weise. Ich gebe zu, dass mein Whitelisting-Skript für das Port-Knocking mir trotzdem eine E-Mail sendet, wenn es auch die IP-Adresse in der Blacklist findet. Darüber hinaus befindet sich die Blacklist in den iptables INPUT-Kettenregeln unterhalb der Whitelist. Dies bedeutet, dass jeder Whitelist-Eintrag eine identische Blacklist-Liste übertrumpft und so einen Totalausfall verhindert. (knockd sieht sogar IP-Adressen auf der schwarzen Liste) kenneth558 vor 8 Jahren 0