私は現在認証されているSMTPのためにプライベートサーバーでpostfixとSASLを使用しています。
このサーバーは純粋に個人的な目的とプライベートドメインなので、SSH公開鍵に基づいてより簡単なサーバーを使用したいと思います。そのような解決策はありますか?
答え1
SSHの公開鍵認証ではありませんが(SMTPではなくSSHプロトコルにのみ存在します)、TLSクライアント証明書。これを行うには、クライアントが有効なSSL証明書を提供する必要があります。
または、SSHに公開鍵を使用する必要がある場合は、プライベートSMTPサーバーのlocalhostですべてのメール接続を許可し、SSHを介してSMTPサーバーのポート25のSSHトンネルを設定できます。
答え2
ネットワークアプリケーションがSSHキーを使用して認証/暗号化するのを防ぐ方法はありません。ただし、これらのアプリケーションをサポートするために作成する必要がある場合は例外です(例:libsshを使用)。どのメールユーザーエージェントを使用するか、どのSMTPサーバーに接続するかを指定しませんが、デフォルトでSSHをサポートすることはほとんどありません。
ただし、もちろん、サーバーへの通常のSSH接続を使用してSMTPセッションをトンネリングすることもできます。もちろん、これは(SMTPサーバーではなく)コンピュータにユーザーを認証しますが、これは望むものではないかもしれません。
答え3
SMTPサーバーは通常、接続時にSSL証明書を検証しませんが、それを使用してチャネルを暗号化します。これにより、自己署名証明書または民間機関の証明書を使用して簡単に構成できます。 (自己署名証明書はSSH証明書と同じです。)私はTinyCAを使用して独自の証明機関を作成します。最大4096のキーサイズを使用できます。 2048以上のサイズを使用する必要があります。
MUA(メールユーザーエージェント:Firefox、Outlookなど)は自己署名証明書とうまく機能します。最初は必ず持って行かなければなりません。 startTLS と認証とともに送信ポートを使用することをお勧めします。これにより、安全な認証チャネルが提供されます。
私は自己署名証明書を使用して電子メールを読むためにDovecot IMAPとstartTLSを使用します。 1つ以上のクライアントに加えて、IMAPを使用すると、Webメールインターフェースの使用などの追加オプションも提供されます。
答え4
localhostの認証されていないリレーを許可するようにメールサーバーを設定し、メール送信用のSSHトンネルを設定します。
ssh yourserver -L 8587:localhost:587
これにより、SSHを介してローカルポート8587がサーバーポート587のサーバーに転送されます。次に、localhost
ポートを使用するようにメールクライアントを設定します8587
。
それでもSASL認証を維持することをお勧めします。