pam_usb

提供: ArchWiki
2017年10月16日 (月) 21:46時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

pam_usb は通常の USB フラッシュドライブを利用した Linux のハードウェア認証を提供します。

suディスプレイマネージャなど、PAM をサポートしている全てのアプリケーションで動作します。

インストール

pam_usbAUR パッケージをインストールしてください。

設定

pam_usb をインストールしたら以下のように設定する必要があります:

  1. デバイスとユーザーを設定
  2. システム認証の PAM を設定

デバイスとユーザーを設定

USB デバイスをコンピュータに接続して、pamusb-conf を使ってデバイスを設定ファイルに追加してください:

# pamusb-conf --add-device MyDevice
Please select the device you wish to add.
* Using "SanDisk Corp. Cruzer Titanium (SNDKXXXXXXXXXXXXXXXX)" (only option)
Which volume would you like to use for storing data ?
* Using "/dev/sda1 (UUID: <6F6B-42FC>)" (only option)
Name            : MyDevice
Vendor          : SanDisk Corp.
Model           : Cruzer Titanium
Serial          : SNDKXXXXXXXXXXXXXXXX
Volume UUID     : 6F6B-42FC (/dev/sda1)
Save to /etc/pamusb.conf ?
[Y/n] y
Done.

MyDevice は自由に名前を付けることができます。また、デバイスは好きな数だけ追加できます。

次に、pam_usb で認証したいユーザーを設定してください:

# pamusb-conf --add-user root
Which device would you like to use for authentication ?
* Using "MyDevice" (only option)
User            : root
Device          : MyDevice
Save to /etc/pamusb.conf ?
[Y/n] y
Done.

設定の確認

pamusb-check を実行することで設定が問題ないか確認することができます。このツールは認証リクエストをシミュレートします (デバイスの接続が必要です):

# pamusb-check root
* Authentication request for user "root" (pamusb-check)
* Device "MyDevice" is connected (good).
* Performing one time pad verification...
* Verification match, updating one time pads...
* Access granted.

PAM モジュールの設定

pam_usb をシステムの認証プロセスに追加するために、/etc/pam.d/system-auth を編集する必要があります。

デフォルトの PAM 設定ファイルには以下の行が含まれています:

auth    required        pam_unix.so nullok_secure

以下のように変更してください:

auth    sufficient      pam_usb.so
auth    required        pam_unix.so nullok_secure

sufficient キーワードを指定することで、pam_usb が認証を許可した場合、パスワードは要求されません。認証が失敗した場合、フォールバックとしてデフォルトのパスワードによる認証が使われます。

required キーワードに変更すると、システムにアクセスするには USB フラッシュドライブとパスワードの両方とも認証しなくてはならなくなります。

上記を設定したら、USB デバイスを接続して認証ができるはずです:

$ su
* pam_usb v.SVN
* Authentication request for user "root" (su)
* Device "MyDevice" is connected (good).
* Performing one time pad verification...
* Verification match, updating one time pads...
* Access granted.

トラブルシューティング

su で pam_usb を使えない

以下のように設定して su がパスワードを要求して、pam_usb を使わない場合:

/etc/pam.d/system-auth
auth          sufficient   pam_usb.so

/etc/pam.d/su の冒頭にも同じ行を追加してください。他の pam を使用するアプリケーションでも追加が必要になる場合があります。

参照