%20mit%20dem%20OSX-Schl%C3%BCsselbund%20zur%20Authentifizierung%20verwenden%3F.png)
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 fetchmail
Anruf 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.