「Google Authenticator」の版間の差分
(同期) |
|||
2行目: | 2行目: | ||
[[en:Google Authenticator]] |
[[en:Google Authenticator]] |
||
[[ru:Google Authenticator]] |
[[ru:Google Authenticator]] |
||
− | [https://github.com/google/google-authenticator Google Authenticator] はワンタイムパスコード (OTP) による2段階認証を提供します。OTP 生成アプリケーションは iOS, Android, Blackberry で利用できます。[[S/KEY 認証]]と同じように認証機構は Linux の PAM システムに統合されています。このガイドではこの機構をインストール・設定する方法を示します。 |
+ | [https://github.com/google/google-authenticator Google Authenticator] はワンタイムパスコード (OTP) による2段階認証を提供します。OTP 生成アプリケーションは iOS, Android, Blackberry で利用できます。[[S/KEY 認証]]と同じように認証機構は Linux の [[PAM]] システムに統合されています。このガイドではこの機構をインストール・設定する方法を示します。 |
==インストール== |
==インストール== |
||
[[AUR]] から {{AUR|libpam-google-authenticator}} パッケージをインストールしてください。開発版は {{AUR|google-authenticator-libpam-git}} でインストールできます。 |
[[AUR]] から {{AUR|libpam-google-authenticator}} パッケージをインストールしてください。開発版は {{AUR|google-authenticator-libpam-git}} でインストールできます。 |
||
+ | |||
+ | インストールしたら次のコマンドを実行します: |
||
+ | |||
+ | # libtool --finish /usr/lib/security |
||
==PAM の設定== |
==PAM の設定== |
||
38行目: | 42行目: | ||
==秘密鍵ファイルの生成== |
==秘密鍵ファイルの生成== |
||
+ | |||
+ | {{Tip|QR コードを生成するには {{Pkg|qrencode}} をインストールします。認証アプリで QR コードをスキャンすれば自動的に鍵が設定されます。}} |
||
2段階認証を使用したい場合はユーザーのホームフォルダに秘密鍵ファイルを生成する必要があります。''google-authenticator'' を使うことでとても簡単に生成することができます: |
2段階認証を使用したい場合はユーザーのホームフォルダに秘密鍵ファイルを生成する必要があります。''google-authenticator'' を使うことでとても簡単に生成することができます: |
||
85行目: | 91行目: | ||
Password: <password> |
Password: <password> |
||
$ |
$ |
||
+ | |||
+ | ==デスクトップログイン== |
||
+ | Google Authenticator の PAM プラグインをコンソールのログインや [[GDM]] のログインで使うこともできます。以下を {{ic|/etc/pam.d/login}} または {{ic|/etc/pam.d/gdm-password}} ファイルに追加してください: |
||
+ | |||
+ | auth required pam_google_authenticator.so |
2016年5月29日 (日) 21:10時点における版
Google Authenticator はワンタイムパスコード (OTP) による2段階認証を提供します。OTP 生成アプリケーションは iOS, Android, Blackberry で利用できます。S/KEY 認証と同じように認証機構は Linux の PAM システムに統合されています。このガイドではこの機構をインストール・設定する方法を示します。
インストール
AUR から libpam-google-authenticatorAUR パッケージをインストールしてください。開発版は google-authenticator-libpam-gitAUR でインストールできます。
インストールしたら次のコマンドを実行します:
# libtool --finish /usr/lib/security
PAM の設定
大抵は2段階認証が必要になるのはリモートログインのときだけです。該当する PAM 設定ファイルは /etc/pam.d/sshd
です。Google Authenticator をあらゆるところで使いたい場合、/etc/pam.d/system-auth
に変更を加えます。ただし、その場合は自分を締め出してしまわないように細心の注意を払って下さい。このガイドでは /etc/pam.d/sshd
を編集するので、ローカルセッションではとりあえず安全に設定することができます (絶対安全というわけではありません)。
Unix パスワードと OTP の両方を入力するために pam_google_authenticator.so
を以下のように /etc/pam.d/sshd
の system-remote-login 行の上に追加します:
auth required pam_google_authenticator.so auth include system-remote-login account include system-remote-login password include system-remote-login session include system-remote-login
こうすると Unix パスワードの前に OTP を尋ねるようになります。2つのモジュールの順番を入れ替えると訊かれる順序が逆になります。
OTP または Unix パスワードのどちらかでログインできるようにするには:
auth sufficient pam_google_authenticator.so
/etc/ssh/sshd_config
でチャレンジレスポンス認証を有効にします:
ChallengeResponseAuthentication yes
そして sshd
の設定をリロードしてください:
# systemctl reload sshd
秘密鍵ファイルの生成
2段階認証を使用したい場合はユーザーのホームフォルダに秘密鍵ファイルを生成する必要があります。google-authenticator を使うことでとても簡単に生成することができます:
$ google-authenticator Do you want authentication tokens to be time-based (y/n) y <Here you will see generated QR code> Your new secret key is: ZVZG5UZU4D7MY4DH Your verification code is 269371 Your emergency scratch codes are: 70058954 97277505 99684896 56514332 82717798 Do you want me to update your "/home/username/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n If the computer that you are logging into is not hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
緊急時のスクラッチコードを安全なところに保管しておくことを推奨します (例: コードを印刷して金庫にしまう)。携帯電話 (つまり OTP 生成ツール) をなくしてしまったときの唯一の (SSH による) ログイン手段となります。コードは ~/.google_authenticator
にも保存されるので、ログインしている間はいつでも確認することが可能です。
OTP 生成ツールの設定
Android マーケット か F-Droid から携帯電話に生成ツール (例: FreeOTP) をインストールしてください。アプリケーションメニューから適切なボタンをクリックして新しいアカウントを作成し、秘密鍵ファイルを生成したときに表示される URL から QR コードをスキャンするか、秘密鍵を手動で入力します (上の例では 'ZVZG5UZU4D7MY4DH')。
これで30秒ごとに新しく生成されるパスコードトークンをあなたの携帯で見ることができます。
テスト
他のマシンや他のターミナルウィンドウからホストに SSH で接続して認証システムが動作しているか確認してください:
$ ssh hostname login as: <username> Verification code: <generated/backup-code> Password: <password> $
デスクトップログイン
Google Authenticator の PAM プラグインをコンソールのログインや GDM のログインで使うこともできます。以下を /etc/pam.d/login
または /etc/pam.d/gdm-password
ファイルに追加してください:
auth required pam_google_authenticator.so