¿Cómo puedo usar fetchmail (u otro capturador de correo electrónico) con el llavero OSX para la autenticación?

¿Cómo puedo usar fetchmail (u otro capturador de correo electrónico) con el llavero OSX para la autenticación?

Muchos tutoriales de fetchmail que he leído dicen que poner la contraseña de su cuenta de correo electrónico en texto claro en un archivo de configuración es seguro. Sin embargo, prefiero la seguridad a través de capas.[***ejemplo tonto:* si mi terminal está activa y alguien que sospecha tal tontería del correo electrónico se desliza y simplemente escribe "grep -i pass ~/.*" entonces, ¡ups, toda mi base les pertenece! especialmente si mi proveedor de correo electrónico usa openid (o soy lo suficientemente tonto como para usar la misma contraseña para mi banco)]**.

Ahora, con msmtp (a diferencia de sendmail) puedo autenticarme usando el llavero OSX. ¿Existe un 'capturador' de correo electrónico gratuito/de código abierto que me permita usar llaveros (o al menos, que me permita usar la contraseña MD5)?

Respuesta1

Si recuperar correo a través de POP3 es suficiente para usted, eche un vistazo al excelentempop. Es del mismo autor que msmtp y también admite llavero OSX para almacenar credenciales de autenticación.

Para IMAP4, podrías usar el muy agradableDesconectadoIMAPy conéctelo a un llavero OSX usandoGancho Python de William Snow Orvis.

Personalmente, prefiero esas herramientas a fetchmail (debido, por ejemplo, a la velocidad de descarga, el conjunto de funciones y la configuración), pero su kilometraje puede variar.

Respuesta2

Desde una perspectiva de utilidad simple, sí, puedes usar Keychain. Le recomiendo encarecidamente que lea la security(1)página de manual completa, que tiene advertencias adicionales.

Puede ingresar la contraseña usando el programa Llavero o mediante la línea de comando:

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

Puedes extraer esto con:

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

Si ustedPermitir siempre, security(1)podrá obtener estas credenciales sin más indicaciones. Esto puede ser un riesgo para su sistema. Sin embargo, puede optar por que esto le solicite siempre su contraseña antes de iniciar.

Finalmente, al usar esto, puede envolver su fetchmailllamada con un script de trampolín que establece la contraseña que se utilizará.

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

Si bien esto logra su objetivo declarado de no tener archivos obvios con contraseñas, lo hicetenga en cuenta los riesgos de seguridadsigue presente con esta configuración, que debes considerar.

Respuesta3

Si el llavero permite eliminar la contraseña de texto sin formato, entonces es posible, pero no se pueden usar contraseñas MD5 localmente, ya que el servidor las quiere en su propio formato (generalmente texto sin formato).

Respuesta4

@medina,

En lugar de "tmpfile=/tmp/fetchmailrc.$$", recomendaría usar mktemp(1) si está disponible.

información relacionada