GSSAPIは、Kerberos V5に特化しています。 STARTTLSクライアントサイド認証は、実際にはテストしていません。
STARTTLSが有効なとき、 PLAIN SASLメカニズム(導入されている場合)も利用可能になります。 なぜなら、接続が暗号化されていない場合、線上にクリアテキストのパスワードを通すべきではないからです。
IMAPプロトコルは、SASLを使用しないユーザ認証もサポートしています。 これは、'LOGIN'コマンド経由によるものです(LOGIN SASLメカニズムと間違えないでください)。 IMAP LOGINコマンド(PLAINと同じ)は、パスワードをクリアテキストで、サーバに送信します。
PAMは、プラグ可能な認証モジュールをあらわし、 アプリケーションがユーザ認証を使用可能とする、共通なAPIの提供を目的とします PAMを、SASLレイヤ下の補足レイヤとして考えることができます。 PAMに関する更なる情報は、 http://www.kernel.org/pub/linux/libs/pam/FAQ をご覧ください。 PAMモジュールを使用することで、システム上の全ての他のアプリケーションは、 それを利用できます。例えば login,xlock など。
他の方法である、pwcheckは、少々、Cyrus SASLライブラリに特化しています。 それは、PAMより一般的ではない一方、とてもシンプルです。 IMAPサーバは、userid と、一致するパスワードをUnixドメインパイプの方へ単純に送信します。 pwcheckは、userid と パスワードを受け取ったとき、それとともに認証を試行し、 -- どんな認証を使用していても -- パスワードがあっているかどうか、単純に "yes"か"no"を返します。
PLAINや、LOGINを使用した場合、ユーザのパスワードが、 ネットワークでの平凡な探知をできないように、ネットワークの流れを暗号化すべきであることを、 覚えて置いてください。
最も簡単なユーザ認証方法は、libsasl認証データベースを使用し、 "saslpasswd"ユーティリティを使用してユーザを生成することです。 "sasl_pwcheck_method:sasldb" をセットします。 Make sure Cyrus can read "/etc/sasldb": Cyrusが"/etc/sasldb" を確実に読めるようにします:
chown cyrus /etc/sasldb*
"/etc/shadow"から、ユーザを認証したい場合、 cyrusユーザがシャドウパスワードを読むことができないため、事態はさらに複雑化します。 それは、libsaslをpwcheckをサポートするように設定し、 また、"sasl_pwcheck_method: pwcheck" をセットすることを暗示します。 SASLライブラリは、ユーザ認証する際、外部ユーティリティをrootとして呼び出します。
Cyrus IMAP は、SASLライブラリがKERBEROS_V4 サポートでコンパイルされた場合、 Kerberos v4 をサポートします。
サーバのKerberos v4アイデンティティを生成し、 "srvtab"ファイルにサーバのキーを追加します。 ファイルは、cyrus ユーザが読めるようになっていなければなりません。 サーバのKerberosアイデンティティは、"imap.HOST@REALM"で、 この、"HOST" は、マシンホスト名の最初のコンポーネントで、 "REALM"は、マシンのKerberos領域です。
ksrvutil -f /var/imap/srvtab add
ここは、"ksrvutil"リクエストの情報です。 値を埋めるか、RETURN を押して応答します。 この例では、ホスト名が、"foobar"で、領域が、"ANDREW.CMU.EDU"です。
Name: imap Instance: foobar Realm: ANDREW.CMU.EDU Version number: New principal: imap.foobar@ANDREW.CMU.EDU; version 0 Is this correct? (y,n) [y] Password: Verifying, please re-enter Password: Key successfully added. Would you like to add another key? (y,n) [y] n
Kerberized POP の導入を検討しているなら、Kerberosアイデンティティ"pop.HOST@REALM" を作成し、"srvtab"ファイルにキーを追加します。
"srvtab" ファイルをcyrus ユーザの所有にします:
chown cyrus /var/imap/srvtab
srvtab: /var/imap/srvtab
IMAPサーバ上のcyrusユーザで、 "krbck"(imapディレクトリ内で見つかる)プログラムを実行する。 このプログラムは、いくつかのKerberos v4共通の設定間違いを診断します。
SASLライブラリがGSSAPIをサポートしてコンパイルされている場合、 Cyrus IMAP は、Kerberos v5 をサポートします。
サーバ用Kerberos v5 アイデンティティを生成します。 Kerberos v5 キーは一般的に "/etc/krb5.keytab" に保存されます。
chown cyrus /etc/krb5.keytab