Wie kann ich Fetchmail (oder einen anderen E-Mail-Grabber) mit dem OSX-Schlüsselbund zur Authentifizierung verwenden?

Wie kann ich Fetchmail (oder einen anderen E-Mail-Grabber) mit dem OSX-Schlüsselbund zur Authentifizierung verwenden?

In vielen Fetchmail-Tutorials, die ich gelesen habe, heißt es, dass es sicher ist, das Passwort für Ihr E-Mail-Konto im Klartext in einer Konfigurationsdatei abzulegen. Ich bevorzuge jedoch Sicherheit durch Schichten[***dummes Beispiel:* Wenn mein Terminal läuft und jemand, der solchen E-Mail-Unsinn vermutet, rüberkommt und einfach "grep -i pass ~/.*" eingibt, dann, hoppla, gehören alle meine Datenbanken ihm! Vor allem, wenn mein E-Mail-Anbieter OpenID verwendet (oder ich dumm genug bin, dasselbe Passwort für meine Bank zu verwenden)]**.

Jetzt kann ich mich mit msmtp (im Gegensatz zu sendmail) über den OSX-Schlüsselbund authentifizieren. Gibt es einen kostenlosen/Open-Source-E-Mail-„Grabber“, mit dem ich Schlüsselbunde verwenden kann (oder mit dem ich zumindest das Passwort mit MD5 überprüfen kann)?

Antwort1

Wenn Ihnen der Mailabruf über POP3 genügt, schauen Sie sich das hervorragendempop. Es stammt vom selben Autor wie msmtp und bietet ebenfalls OSX-Schlüsselbundunterstützung zum Speichern von Authentifizierungsdaten.

Für IMAP4 können Sie das sehr schöneOfflineIMAPund verbinden Sie es mit einem OSX-Schlüsselbund mithilfe vonPython-Haken von William Snow Orvis.

Ich persönlich bevorzuge diese Tools gegenüber Fetchmail (z. B. aufgrund der Downloadgeschwindigkeit, des Funktionsumfangs und der Konfiguration), aber bei Ihnen kann das anders sein.

Antwort2

Aus rein Dienstprogrammperspektive können Sie Keychain verwenden. Ich empfehle Ihnen dringend, die gesamte security(1)Manpage zu lesen, die zusätzliche Einschränkungen enthält.

Sie können das Passwort mit dem Programm Keychain oder über die Befehlszeile eingeben:

# WARNING: exposes password in ps(1), history(1), etc.
$ security add-internet-password -a $USER -s pop3.example.com -w 'Mellon!'

Sie können dies extrahieren mit:

# Note: by default, first use will prompt
$ security find-internet-password -s pop3.example.com -a $USER -g

Wenn duImmer erlaubt, security(1)kann diese Anmeldeinformationen ohne weitere Aufforderung abrufen. Dies kann ein Risiko für Ihr System darstellen. Sie können jedoch festlegen, dass Sie vor dem Start immer nach Ihrem Kennwort gefragt werden.

Schließlich können Sie Ihren fetchmailAnruf damit mit einem Springboard-Skript umschließen, das das zu verwendende Kennwort festlegt.

user=$USER
server=pop3.example.com
# WARNING: insecure tmpfile creation and usage
# As [DAM][1] mentions, see mkstemp(3)
tmpfile=/tmp/fetchmailrc.$$ 

password=$(security find-internet-password -s $server -a $USER -g 2>&1 \
           | perl -ne '/password: "(\S*)"/ and print $1')

# create temporary fetchmailrc and pass to fetchmail, etc...
cat <<EoF > $tmpfile
poll $server with proto POP3 and options no dns
  user $user with pass '$password' is $user here 
  options keep mda '/usr/bin/procmail -d %T'
EoF

fetchmail -d -f $tmpfile
rm -f $tmpfile

Damit erreichen Sie zwar Ihr erklärtes Ziel, keine offensichtlichen Dateien mit Passwörtern herumliegen zu haben, aber ich habeBeachten Sie die SicherheitsrisikenBei dieser Konfiguration sind immer noch Fehler vorhanden, die Sie berücksichtigen sollten.

Antwort3

Wenn der Schlüsselbund das Abgreifen des Klartextkennworts erlaubt, ist dies möglich. Sie können jedoch keine MD5-Kennwörter lokal erstellen, da der Server sie in seinem eigenen Format (normalerweise Klartext) haben möchte.

Antwort4

@medina,

Anstelle von "tmpfile=/tmp/fetchmailrc.$$" würde ich die Verwendung von mktemp(1) empfehlen, sofern verfügbar.

verwandte Informationen