Linux Tips

USBメモリを認証キーにするには(テキストログイン編)

北浦訓行
2006/8/3

 パスワードだけでなく、USBメモリなどを認証用のキーとして併用すれば、PCの不正使用を防ぎやすくなる。ここでは、pam_usbというPAMのモジュールによって、USBメモリを認証キーとして使用する方法を説明する。

 pam_usbは、USBメモリ上にDSAキーを生成し、ログイン時にそのキーを確認するログイン認証システムだ。これにより、DSAキー入りのUSBメモリを持っていないユーザーのログインを防止する。

 pam_usbは、プロジェクトのWebサイト(http://www.pamusb.org/)からダウンロードできる。Fedora Core 5(FC5)の場合、Fedora Extrasにパッケージが用意されているので、yumコマンドでインストールできる。

# yum install pam_usb

 インストールが完了したら、USBメモリをUSBポートに挿入する。次に、USBメモリ用のマウントポイント(ここでは/media/usb)を作成し、マウントする(USBフラッシュメモリを使うには参照)。

# mkdir /media/usb
# mount -t vfat /dev/sda1 /media/usb

 続いて、usbadmコマンドでDSAキーを生成する。ここでは、「nori」というユーザーアカウント用のDSAキーを生成する。ちなみに、DSAキーの生成は、rootで行う。

# usbadm keygen /media/usb nori 2048
[!] Directory /home/nori/.auth/ not found, creating one...
[!] Directory /media/usb/.auth/ not found, creating one...
[W] Cannot chown u(0) g(0) the directory /media/usb/.auth/
[!] Generating 2048 DSA key pair for nori@localhost.localdomain
  (ここでしばらく待つ)
[!] Extracting private key...
[+] Private key extracted.
[+] Private key successfully written.
[!] Writing public key...
[+] Public key successfully written.

 以上で、DSAキーの生成は完了だ。DSAキーは、USBメモリの.authというディレクトリの中に生成される。

# ls -al /media/usb/.auth/
合計 32
drwxr-xr-x  2 nori root  4096  7月 30 17:23 .
drwxr-xr-x 10 nori root 22016  7月 30 17:23 ..
-rwxr-xr-x  1 nori root  1192  7月 30 17:23 nori.localhost.localdomain

 次に、ログイン認証の設定を行う。コンソールのログイン設定は、/etc/pam.d/loginで行う。/etc/pam.d/loginに以下の設定を追加する。

#%PAM-1.0
auth       required     pam_usb.so force_device=/dev/sda1 mntpoint=
/media/usb !check_device fs=vfat check_if_mounted quiet
(省略)

 ここでは、さまざまなオプションを指定している。意味は以下のとおりだ。pam_usbを使用するシステムの状況に合わせて適宜変更していただきたい。pam_usbのオプションについては、Webページ(http://www.pamusb.org/options.html)で公開されている。

オプション
意味
force_device USBメモリのデバイスを明示的に指定する
mntpoint USBメモリのマウントポイントを指定する
check_device unset(!check_device)で指定すると、USBメモリの有無やシリアル番号を確認しない
fs デバイスのフォーマットを指定する
check_if_mounted USBメモリがマウントされている場合は、そのマウントポイントを使用する
quiet コンソールにpam_usb関連のメッセージを表示しない

 設定が完了したら、確認のため設定したユーザーアカウント(ここではnori)でログインしてみる。設定が間違っている場合は、コンソールからログインできなくなる可能性がある。その際は、sshやTelnetを使ってリモートログインし、/etc/pam.d/loginの設定を修正する(pam_usbを使用する前に、sshやTelnetなどでログイン可能な環境にしておく必要がある)。

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間