認証のために OSX キーチェーンで fetchmail (または別の電子メール グラバー) を使用するにはどうすればよいですか?

認証のために OSX キーチェーンで fetchmail (または別の電子メール グラバー) を使用するにはどうすればよいですか?

私が読んだ多くのfetchmailチュートリアルでは、メールアカウントのパスワードを平文で設定ファイルに記述するのが安全だと書かれています。しかし、私はレイヤーを通したセキュリティを好みます。[***馬鹿げた例:* 私の端末が起動していて、誰かがそのような電子メールの不正を疑って、単に「grep -i pass ~/.*」と入力した場合、おっと、私のすべてのベースは彼らのものになります! 特に私の電子メール プロバイダーが openid を使用している場合 (または私が銀行と同じパスワードを使用するほど愚かである場合)]**。

現在、msmtp (sendmail ではなく) を使用すると、OSX キーチェーンを使用して認証できます。キーチェーンを使用できる (または少なくとも、パスワードを MD5 で処理できる) 無料またはオープンソースの電子メール「グラバー」はありますか?

答え1

POP3経由でメールを取得するだけで十分な場合は、優れたポップこれは msmtp と同じ作者によるもので、認証資格情報を保存するための OSX キーチェーン サポートも備えています。

IMAP4の場合は、非常に便利なオフラインIMAPそしてOSXキーチェーンに接続しますウィリアム・スノー・オービスのパイソンフック

個人的には、fetchmail よりもこれらのツールを好みます (ダウンロード速度、機能セット、構成などの理由により) が、結果は人によって異なる可能性があります。

答え2

単純なユーティリティの観点から言えば、はい、Keychain を使用できます。security(1)追加の注意事項が記載されているマニュアル ページ全体を読むことを強くお勧めします。

キーチェーン プログラムまたはコマンド ラインを使用してパスワードを入力できます。

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

これを次のように抽出できます:

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

もし、あんたが常に許可は、security(1)追加のプロンプトなしでこれらの資格情報を取得できます。これはシステムにとってリスクとなる可能性があります。ただし、起動前に常にパスワードの入力を求めるように選択することもできます。

fetchmail最後に、これを使用して、使用するパスワードを設定するスプリングボード スクリプトで呼び出しをラップできます。

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

これは、パスワード付きのファイルが散らばっていないというあなたの目標を達成しますが、セキュリティリスクに注意するこの構成でもまだ存在するため、考慮する必要があります。

答え3

キーチェーンがプレーンテキストのパスワードの解除を許可している場合は可能ですが、サーバーが独自の形式(通常はプレーンテキスト)を要求するため、ローカルでパスワードをMD5することはできません。

答え4

@メディナ、

利用可能な場合は、「tmpfile=/tmp/fetchmailrc.$$」の代わりに、mktemp(1) を使用することをお勧めします。

関連情報