Mobile-OTP を使ってワンタイムパスワード
OTP(ワンタイムパスワード)は一回しか使えないために,万一漏れたとしてもそのパスワードを使うことができずセキュリティ的に良いですよね.ということで,Mobile OTP (http://motp.sourceforge.net/) をFreeBSD にインストールして OTP で ssh パスワード認証してみた.
MobileOTPの強みは,OTP生成を iPhone や Andoroid 上のアプリケーションで実施できる点.(もちろん,事前にシークレットキー/PIN コードの設定や,時刻同期してないとダメ)
以下に FreeBSD 上の PAM を使って sshd の認証に,この Mobile-OTP を使うまでのログを残す.
pam-script のインストールとpamの設定
PAM-script(sorceforge) からソースコードをダウンロードする
http://sourceforge.net/projects/pam-script/
伸長して README を読むと /etc/pam.d/sshd に
auth sufficient /usr/local/lib/pam_script.so onerr=fail dir=/usr/local/otp
と書けば良いことがわかる.
また,実行されるスクリプト名は pam_script_auth する必要があることもわかる(これは次項で使う)
Mobile OTP のインストールと設定
Mobile OTP の公式ページからソースコードをダウンロードする
http://motp.sourceforge.net/PAM-script.zip
伸長して README を読むと以下の手順であることがわかる
- /usr/local/otp に一式を置く
- otp-secret を書く
pam-scrip より,実行スクリプトは名前を pam_script_auth にしないといけないので,そうする.
otp-secret には iPhone 等にインストールしてある MobileOTP アプリで生成したシークレットキーを記入し,PINコードは適切に4桁の数字を入れる(MobileOTPアプリでOTPを生成するときにPINコードが必要なので,コレばかりは覚えておく必要がある)