pam_winbind — Winbind 機構の PAM モジュール
このツールは、samba(7) システムの一部である。
pam_winbind は Winbind デーモンと通信を行なうことで、 ローカルドメインによるユーザー認証を実現する PAM モジュールである。
PAMシステム設定ファイル/etc/pam.d/serviceを以下の例のように編集する:
... auth required pam_env.so auth sufficient pam_unix2.so +++ auth required pam_winbind.so use_first_pass account requisite pam_unix2.so +++ account required pam_winbind.so use_first_pass +++ password sufficient pam_winbind.so password requisite pam_pwcheck.so cracklib password required pam_unix2.so use_authtok session required pam_unix2.so +++ session required pam_winbind.so ...
pam_winbind はセッション部分の最初のモジュールとする。その他のモジュール で必要とされるkerberosチケットを検索しても良い。
pam_winbind では PAM の設定ファイルや
pam_winbind の設定ファイルである
/etc/security/pam_winbind.conf
で設定可能な幾つかのオプションがサポートされている。
PAM 設定ファイルのオプションは、設定ファイル中のオプションに優先する。
syslog にデバッグ出力を行なう。
syslogに詳細なPAMの状態のデバッグ情報を出力する。
このオプションが設定されると、 pam_winbind
は、認証するユーザーが指定された SID もしくは NAME に所属する時のみ認証を成功させる。
SID にはグループの SID か alias の SID 、もしくはユーザーの SID を指定することも可能である。
SID の代わり名前で指定することも可能である。
この名前は、
MYDOMAIN\\mygroup
形式か、
MYDOMAIN\\myuser
形式である必要がある
(ここで、文字 '\' は winbind separator
パラメータの値に対応する)。また、
user@REALM
又は group@REALM
形式中で、UPN を使う事も可能である。この場合、pam_winbind は
内部的に SID を検索する。
名前には空白文字を含めることができないため、SID で指定することが推奨される。
wbinfo --user-sids=SID
により、あるユーザーが所属するグループの SID 一覧を表示できる。
これだけでパスワード認証と連携して動作するよう、 このオプションは、認証モジュール定義上でのみ指定しなければならない。
pam_winbind のデフォルト設定では、前のモジュールから引き渡される認証トークンを使用する。 トークンが使用できない場合、ユーザーに対してパスワードを問い合わせるが、このオプションを 使用することで、pam_winbind は前のモジュールから認証トークンが引き渡されなかった場合に、 エラー終了するようになる。
(前述の)use_first_passと、最初のパスワードが有効でなかった場合、PAMがパスワード要求の プロンプトを出すことを除いて同じ。
その前の、スタックされたpasswordモジュールによって、 提供された、新しいパスワードを設定する。このオプションが 設定されていない場合、pam_winbindは新しいパスワードを 問い合わせる。
use_authtok (1つ前の項目) オプションと同様だが、新しいパスワードが無効だった場合、 PAM は新しいパスワードを問い合わせる所が異なる。
Active Directory のドメインコントローラーと通信可能な場合、
pam_winbind は Kerberos 認証を用いて認証することが可能である。
このパラメーターを指定することで、Kerberos 認証が有効になる。
(時刻が同期されていない場合など) Kerberos 認証に失敗した場合、
winbindd は MSRPC を用いた samlogon 認証を試行する。
このパラメーターと共に、
winbind refresh tickets
が指定された場合、
Winbind 機構は、必要な時に TGT を更新することで、TGT を保持し続ける。
krb5_auth
オプションを有効にして、pam_winbind が
kerberos 認証を行うように設定された場合、Winbindd は TGT (Ticket Granting Ticket)
を資格情報キャッシュ中に保持する。資格情報キャッシュのタイプは
このオプションで制御できる。サポートされている値は
KCM
と KEYRING
(システムの Kerberos ライブラリと OS によってサポートされている場合)、
FILE
と DIR
(DIR タイプがシステムの Kerberos ライブラリでサポートされている場合)である。
FILE の場合、/tmp/krb5cc_UID 形式の認証情報キャッシュが作成される。
DIR の場合、必ず存在するディレクトリを指定する必要があり、指定した
ディレクトリ中に UID ディレクトリが作成される。すべての場合において、
UID は 数字のユーザ id に置き換えられる。詳細は Kerberos の
実装を参照のこと。
KEYRING タイプを使用する場合、サポートされている方式は 「KEYRING:persistent:UID」で、これは、UID 毎の 認証情報を格納するために、Linux のカーネル keyring を使用する。 KEYRING には固有の制限がある。たとえば、安全なカーネルメモリであれば、 大半の認可情報領域を安全にする事はできない。
KCM タイプを使用する場合、サポートされる方式は 「KCM:UID」で、これは、KEYRING と同様、UID 毎の 認証情報を格納する、Kerberos 認証情報マネージャを使用する。 これは Kereberos 認証情報マネージャが提供されている 最新の Linux ディストリビューションで推奨される方式である。 そうでない場合、もっともセキュアで一般的なな方法である KEYRING を使う事を推奨する。
また、カスタムファイルパスの定義と、数字のユーザ ID に置換するために、 "%u" を使う事も可能である。 以下は例である:
これは、指定されたディレクトリ中に認証情報キャッシュファイルを作成する。
これは、認証情報キャッシュファイルを作成する。
空にした場合、ログオン成功後に、チケットキャッシュなしで Kerberos 認証を行う。 この設定は既定値で 空 である。
krb5_auth
オプションにより、pam_winbind
が Kerberos 認証を行なうように構成されていた場合、
Winbindd は TGT を資格情報キャッシュ中に保持する。
このオプションにより資格情報キャッシュの形式を指定することが可能である。
現在のところ、サポートされている唯一の値は FILE
である。
この場合、資格情報キャッシュは /tmp/krb5cc_UID ファイル中に作成される。UID はユーザーの UID の数値である。
このオプションを空に設定した場合は、ログオン成功後にチケットキャッシュを用いた Kerberos 認証が行なわれない。
winbind offline logon
が有効な場合、Winbind 機構によるキャッシュされた
資格情報を用いたログオンが可能となる。
PAM モジュールからこの機能を用いたい場合は、このオプションを設定すること。
出力をすべて抑止する。
ユーザーのホームディレクトリを動的に作成し、このオプションは、 PAMセッションブロック内で有効である。
満了になるパスワードについての警告を、pam_winbindが開始し始める日数。 既定値は14日。
この節では、他のPAMモジュールで使うことが出来るPAMスタック中での データエクスポートについて説明する。
これはActive Directoryサーバー上でのユーザー設定中の、 プロファイルタブ中で設定されたWindowsのホームディレクトリ である。これは、ドライブにマップされた共有上のディレクトリか、 ローカルパスである。
ユーザーのログオン時に実行されるログオンスクリプトのパス。これは 通常サーバー上に格納されるスクリプトへの相対パスである。
これは認証に対して使うActive Directoryサーバーをエクスポートする。 これは後で変数として使うことが出来る。
これはユーザー設定中のプロファイルタブ中のプロファイルパス設定である。 通常、共有上のこのディレクトリとホームディレクトリは同期している。