Como posso usar o fetchmail (ou outro captador de e-mail) com as chaves OSX para autenticação?

Como posso usar o fetchmail (ou outro captador de e-mail) com as chaves OSX para autenticação?

Muitos tutoriais do fetchmail que li dizem que é seguro colocar a senha da sua conta de e-mail em texto simples em um arquivo de configuração. No entanto, prefiro segurança através de camadas[*** exemplo bobo: * se meu terminal estiver funcionando e alguém suspeitando de tal tolice de e-mail deslizar e simplesmente digitar "grep -i pass ~/.*" então, opa, toda a minha base pertence a eles! especialmente se meu provedor de e-mail usa openid (ou sou burro o suficiente para usar a mesma senha do meu banco)]**.

Agora, com o msmtp (em oposição ao sendmail), posso autenticar usando as chaves do OSX. Existe um 'capturador' de e-mail gratuito/de código aberto que me permite usar Chaves (ou pelo menos, que me permite MD5 a senha)?

Responder1

Se recuperar e-mails via POP3 for suficiente para você, dê uma olhada no excelentempop. É do mesmo autor do msmtp e também possui suporte para chaves OSX para armazenar credenciais de autenticação.

Para IMAP4, você poderia usar o muito bomOff-lineIMAPe conecte-o a um chaveiro OSX usandoGancho Python de William Snow Orvis.

Pessoalmente, prefiro essas ferramentas ao fetchmail (devido, por exemplo, à velocidade de download, conjunto de recursos, configuração), mas sua milhagem pode variar.

Responder2

Do ponto de vista de uma utilidade simples, sim, você pode usar o Keychain. Eu recomendo fortemente que você leia toda a security(1)página do manual, que contém advertências adicionais.

Você pode inserir a senha usando o programa Keychain ou através da linha de comando:

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

Você pode extrair isso com:

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

Se vocêSempre permitir, security(1)poderá obter essas credenciais sem mais solicitações. Isso pode ser um risco para o seu sistema. No entanto, você pode optar por sempre solicitar sua senha antes de iniciar.

Finalmente, usando isso, você pode encerrar sua fetchmailchamada com um script trampolim que define a senha a ser usada.

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

Embora isso atinja seu objetivo declarado de não ter arquivos óbvios com senhas, eu fizobserve os riscos de segurançaainda presente com esta configuração, que você deve considerar.

Responder3

Se o chaveiro permitir que a senha em texto simples seja levantada, então é possível, mas você não pode usar senhas MD5 localmente, pois o servidor deseja em seu próprio formato (geralmente texto simples)

Responder4

@medina,

Em vez de "tmpfile=/tmp/fetchmailrc.$$", recomendo usar mktemp(1) se estiver disponível.

informação relacionada