私は以下のリンクをたどりました: Mutt: パスワードを安全に保存するにはどうすればいいですか?
何が足りないのかは分かりませんが、期待通りに動作していません。気づいたことは次のとおりです。
シェル プロンプトで mutt と入力すると、パスフレーズを入力する画面がポップアップ表示されます。パスフレーズを入力すると、メール クライアントがポップアップ表示され、問題なくメールを送受信できます。閉じてもう一度実行すると、パスフレーズは要求されませんが、完全に閉じてサーバーに ssh で戻り、mutt と入力すると、パスフレーズが要求されます。
私が実現しようとしているのは、パスワードを暗号化して、cronjob を実行するときに問題が発生しないようにし、パスフレーズの入力を回避できるようにすることです。これを機能させるのに誰か手伝ってくれませんか?
答え1
セキュリティ レベルが異なるさまざまなオプションがあります。最適な決定を下せるよう、いくつかのオプションの概要を説明します。復号化を自動化するには、パスフレーズをどこか (ディスク、メモリ、または別のマシン) に保存する必要があります。通常、次の点を考慮する価値があります。
- 誰がそのマシンにアクセスできますか?
- 公的にアクセス可能か、または公的にアクセス可能なサービスをホストしていますか?
オプション1:電子メールのパスフレーズを暗号化せずに muttrc ファイルに保存します。
muttrcの読み取りアクセスをcronを実行しているユーザーに制限し、基盤となるファイルシステムを暗号化します。Gmailを使用しているので、アプリパスワードを作成する侵害された場合はローテーション/取り消しが可能です。これがおそらく問題の最も簡単な解決策です。
このソリューションの欠点は、root
ユーザーまたはsudo
権限を持つすべてのユーザーがこのファイルにアクセスできることです。sudo
その可能性を減らすために、パスワードを要求するように構成できます。
オプション2:gpg パスフレーズを暗号化せずにファイルに保存します。
このオプションでは、mutt を設定して gpg を非対話的に実行します。mutt パスワードと gpg パスフレーズ ファイルの読み取りアクセスを制限する必要があります。また、物理アクセスから保護するために、基盤となるファイル システムを暗号化する必要があります。これにより、パスワードを暗号化せずに muttrc に保存するだけで、不明瞭さが増すだけです。同じ欠点が適用され、このソリューションは同様に安全であると見なされます。
非対話型ユーザーが gpg を実行するには、次のように gpg コマンドを実行する必要があります。
--batch
対話モードを無効にする--passphrase-file
gpg秘密鍵のパスワードを入力する--pinentry-mode loopback
pinentry クエリを呼び出し元にリダイレクトします。
したがって、mutttrc では次のようになります:
source "/usr/local/bin/gpg -d --batch --passphrase-file=$HOME/.passFile.txt --pinentry-mode loopback $HOME/.mutt/passwords.gpg |"
オプション3:秘密管理サービスを使用します。
この分野には実際の標準は存在せず、このスペースには多くのオプションがありますシークレット管理サービスは、シークレットの管理を一元化し、シークレットへのアクセスの監査と制御を大規模に提供します。利点と欠点は、展開と実装に応じて変化し、この領域をさらに深く掘り下げることは、主に意見に基づくものになります。
さらに、もう一つの質問がありますそれは役に立つかもしれない質問領域に大きく触れています。