「Pam oath」の版間の差分
(→oath の設定: 情報を更新) |
(他言語へのリンクを追加) |
||
3行目: | 3行目: | ||
[[Category:認証]] |
[[Category:認証]] |
||
[[en:Pam oath]] |
[[en:Pam oath]] |
||
+ | [[zh-hans:Pam oath]] |
||
[https://www.nongnu.org/oath-toolkit/index.html OATH Toolkit] はワンタイムパスコード (OTP) を使用する2段階認証を実現します。RFC 標準になっている2つの OTP 手法に対応 ([[Wikipedia:HMAC-based_One-time_Password_Algorithm|HOTP]], [[Wikipedia:Time-based_One-time_Password_Algorithm|TOTP]])。OTP を生成するアプリケーションは iOS, Android, Blackberry などの端末で使うことができます。[[Google Authenticator]] と同じように認証メカニズムは Linux の [[PAM]] システムと統合されています。このページではインストールと設定について説明します。 |
[https://www.nongnu.org/oath-toolkit/index.html OATH Toolkit] はワンタイムパスコード (OTP) を使用する2段階認証を実現します。RFC 標準になっている2つの OTP 手法に対応 ([[Wikipedia:HMAC-based_One-time_Password_Algorithm|HOTP]], [[Wikipedia:Time-based_One-time_Password_Algorithm|TOTP]])。OTP を生成するアプリケーションは iOS, Android, Blackberry などの端末で使うことができます。[[Google Authenticator]] と同じように認証メカニズムは Linux の [[PAM]] システムと統合されています。このページではインストールと設定について説明します。 |
||
52行目: | 53行目: | ||
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}} でこれらのオプションが有効になっていることを確認します |
+ | SSH ログインが機能するためには、ファイル {{ic|/etc/ssh/sshd_config}} でこれらのオプションが有効になっていることを確認します: |
ChallengeResponseAuthentication yes |
ChallengeResponseAuthentication yes |
||
59行目: | 60行目: | ||
{{ic|sshd.service}} を[[再起動]]して、変更を有効にします。 |
{{ic|sshd.service}} を[[再起動]]して、変更を有効にします。 |
||
− | 公開鍵認証やパスワード認証が有効な場合でも、OATH のリクエスト・レスポンスを強制したい場合は、 {{ic|/etc/ssh/sshd_config}} に以下を追加します |
+ | 公開鍵認証やパスワード認証が有効な場合でも、OATH のリクエスト・レスポンスを強制したい場合は、 {{ic|/etc/ssh/sshd_config}} に以下を追加します: |
AuthenticationMethods publickey,keyboard-interactive:pam |
AuthenticationMethods publickey,keyboard-interactive:pam |
||
75行目: | 76行目: | ||
{{Warning|TOTP モード設定時のエラー {{ic|SHA512}} は開発者が修正していません。[https://gitlab.com/oath-toolkit/oath-toolkit/issues/8 Gitlab の open issue] を参照してください。}} |
{{Warning|TOTP モード設定時のエラー {{ic|SHA512}} は開発者が修正していません。[https://gitlab.com/oath-toolkit/oath-toolkit/issues/8 Gitlab の open issue] を参照してください。}} |
||
− | HOTPでログインする場合 |
+ | HOTPでログインする場合: |
$ oathtool -v -d 6 ''12345678909876543210'' |
$ oathtool -v -d 6 ''12345678909876543210'' |
||
95行目: | 96行目: | ||
''user'', ''machine'', ''DK2DEFASV26A===='' は適当な文字列に置き換えてください。生成が完了したら、お好きな画像作成アプリケーションで qrcode を視覚化して使用することができます。FreeOTP を使用して png のスクリーンショットを撮影し、必要になったときに OTP パスを表示するのが一番簡単です。 |
''user'', ''machine'', ''DK2DEFASV26A===='' は適当な文字列に置き換えてください。生成が完了したら、お好きな画像作成アプリケーションで qrcode を視覚化して使用することができます。FreeOTP を使用して png のスクリーンショットを撮影し、必要になったときに OTP パスを表示するのが一番簡単です。 |
||
− | {{Note|ユーザーの秘密鍵は、このシステムで最も重要な情報です。OTP を提供するように携帯電話をセットアップすると、その携帯電話はそのキーを持つようになります。png ファイル内の qr コードには、そのキーが含まれています。このファイルには細心の注意を払う必要があります。暗号化された媒体にのみ保存する必要があります |
+ | {{Note|ユーザーの秘密鍵は、このシステムで最も重要な情報です。OTP を提供するように携帯電話をセットアップすると、その携帯電話はそのキーを持つようになります。png ファイル内の qr コードには、そのキーが含まれています。このファイルには細心の注意を払う必要があります。暗号化された媒体にのみ保存する必要があります(あなたの携帯電話は、まともなレベルのセキュリティのために暗号化を使用する必要があります)。そうでない場合は、サードパーティ製アプリケーションからのアクセスを防ぐため、Samsung Knox のようなサンドボックス内に閉じ込めることもできません。}} |
== 参照 == |
== 参照 == |
2023年8月25日 (金) 13:35時点における版
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 - 12345678909876543210
HOTP が必要な場合は、次の設定を使用します。
/etc/users.oath
# Option User Prefix Seed HOTP user - 12345678909876543210
ファイルに 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 パスワードを使用したログイン
TOTP でログインする場合:
$ oathtool -v --totp -d 6 12345678909876543210
HOTPでログインする場合:
$ oathtool -v -d 6 12345678909876543210
上記の 12345678909876543210 は適当なシードに置き換えてください。以下のような表示がされます:
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 パスを表示するのが一番簡単です。