「Pam oath」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→PAM の設定: 記事を追加) |
Kusanaginoturugi (トーク | 投稿記録) (→PAM の設定: 一部飜訳) |
||
39行目: | 39行目: | ||
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6 |
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6 |
||
+ | SSH ログインが機能するためには、ファイル {{ic|/etc/ssh/sshd_config}} でこれらのオプションが有効になっていることを確認します: |
||
− | For SSH login to work, make sure these options are enabled in the file {{ic|/etc/ssh/sshd_config}}: |
||
ChallengeResponseAuthentication yes |
ChallengeResponseAuthentication yes |
||
UsePAM yes |
UsePAM yes |
||
− | + | {{ic|sshd.service}} を[[再起動]]して、変更を有効にします。 |
|
+ | 公開鍵認証やパスワード認証が有効な場合でも、OATH のリクエスト・レスポンスを強制したい場合は、 {{ic|/etc/ssh/sshd_config}} に以下を追加します: |
||
− | If you want to force OATH request-response even if there is a working public key authentication and password authentication also add the following in {{ic|/etc/ssh/sshd_config}}: |
||
AuthenticationMethods publickey,keyboard-interactive:pam |
AuthenticationMethods publickey,keyboard-interactive:pam |
||
52行目: | 52行目: | ||
PasswordAuthentication yes |
PasswordAuthentication yes |
||
− | {{Tip| |
+ | {{Tip|ローカルログインの場合は、{{ic|/etc/pam.d/login}} を編集してください。}} |
== oath パスの記録 == |
== oath パスの記録 == |
2023年6月8日 (木) 17:54時点における版
OATH Toolkit はワンタイムパスコード (OTP) を使用する2段階認証を実現します。RFC 標準になっている2つの OTP 手法に対応 (HOTP, TOTP)。OTP を生成するアプリケーションは iOS, Android, Blackberry などの端末で使うことができます。Google Authenticator と同じように認証メカニズムは Linux の PAM システムと統合されています。このページではインストールと設定について説明します。
インストール
oath-toolkit パッケージをインストールしてください。
oath の設定
oath のシードは16進数の数字で、ユーザーごとに一意である必要があります。新しいシードを生成するには、以下のコマンドラインを使用します:
$ openssl rand -hex 10
12345678909876543210
oath はユーザーごとに必要で、設定ファイル /etc/users.oath
の中にリンクします。root でファイルを作成して、ユーザーのシードを記述してください:
/etc/users.oath
# Option User Prefix Seed HOTP/T30/6 user - 1ab4321412aebcw
ファイルは root からしかアクセスできないようにします:
# chmod 600 /etc/users.oath # chown root /etc/users.oath
PAM の設定
特定のサービスだけで oath を有効にするには、例えば ssh なら /etc/pam.d/sshd
ファイルを編集してファイルの先頭に以下の行を追加します:
auth sufficient pam_oath.so usersfile=/etc/users.oath window=30 digits=6
これで正しい oath コードを入力したときに認証が通るようになります。認証を必須にして pam スタックの処理を止めるようにしたい場合は以下のように設定します:
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6
SSH ログインが機能するためには、ファイル /etc/ssh/sshd_config
でこれらのオプションが有効になっていることを確認します:
ChallengeResponseAuthentication yes UsePAM yes
sshd.service
を再起動して、変更を有効にします。
公開鍵認証やパスワード認証が有効な場合でも、OATH のリクエスト・レスポンスを強制したい場合は、 /etc/ssh/sshd_config
に以下を追加します:
AuthenticationMethods publickey,keyboard-interactive:pam KbdInteractiveAuthentication yes PasswordAuthentication yes
oath パスの記録
現在の oath パスが必要な場合は以下のコマンドを実行:
oathtool -v -d6 1ab4321412aebcw
上記の 1ab4321412aebcw は適当なシードに置き換えてください。以下のような表示がされます:
Hex secret: 1ab4321412aebc Base32 secret: DK2DEFASV26A==== Digits: 6 Window size: 0 Start counter: 0x0 (0) 820170
最後の数字は実際にログインに使用することができます。また、Base32 secret は qr コードを生成するのに必要な文字列です。qr コードを生成するには qrencode パッケージをインストールして次のコマンドを実行:
qrencode -o user.png 'otpauth://totp/user@machine?secret=DK2DEFASV26A===='
user, machine, DK2DEFASV26A==== は適当な文字列に置き換えてください。生成が完了したら、お好きな画像作成アプリケーションで qrcode を視覚化して使用することができます。FreeOTP を使用して png のスクリーンショットを撮影し、必要になったときに OTP パスを表示するのが一番簡単です。