web-dev-qa-db-ja.com

システム全体の2要素認証用にU2Fキー(YubiKeyなど)を構成する方法は?

公式のYubico ガイドでは、GDMログインの有効化についてのみ説明していますが、TTY、ssh、Sudoなどを含むすべてのログインで有効にするにはどうすればよいですか?

2
Hamish W

免責事項:このガイドは、コンピューターからロックアウトされる可能性があるデフォルトのPAM構成を変更します。私は、これらの指示から生じるいかなる悪事に対しても責任を負いません。いつものように、変更する前にすべてのファイルをバックアップし、必要に応じて変更を元に戻す準備ができているライブディスクを用意し、何が起こっているのかわからない場合は調査します。
YubiKey 4でこれをテストし、動作することを確認しました。ほとんどのYubiKeyを含むU2F仕様をサポートするセキュリティキーで動作するはずです。

これは、保護範囲にいくつかの変更を加えた Yubicoガイド に基づいています。


1. Yubico PPAからU2Fツールをインストールします

まず、 Yubico PPAを有効にする に、U2F PAMモジュールをインストールします。

Sudo add-apt-repository ppa:yubico/stable && Sudo apt-get update
Sudo apt-get install libpam-u2f

2.キーを設定します

Yubicoガイドはホームディレクトリに構成を作成しますが、ホームディレクトリが暗号化されている場合は、再起動時にアクセスできません。これを回避するには、暗号化されていない場所に構成を作成する必要があります。これは個人の好み次第ですが、ここでは/etcの下に作成します。

pamu2fcfg | Sudo tee /etc/u2f_keys

デバイスが点滅したら、連絡先をタッチして、キーをアカウントに関連付けます。

アカウントにさらにキーを追加する場合は、代わりに次のコマンドを実行します。

pamu2fcfg -n | Sudo tee -a /etc/u2f_keys

(複数のキーを保持することをお勧めします。プライマリキーが紛失または破損した場合でも、他のキーを使用してアカウントにアクセスできます。)

3.キー設定をテストする

この構成をテストするには、最初にSudoコマンドに対してのみ有効にします。コンピューターからキーを削除し、/etc/pam.d/Sudoを編集します。

Sudo nano /etc/pam.d/Sudo

@include common-authの下に次の行を追加します。

auth       required   pam_u2f.so authfile=/etc/u2f_keys

新しいターミナルウィンドウを開き、Sudo echo testを実行します。パスワードの入力を求められたら、コマンドは失敗します。これは、キーがコンピューターにないためです。

キーを挿入し、Sudo echo testを再度実行します。パスワードを入力し、タッチのプロンプトが表示されたらキーにタッチします。その後、端末はecho testになります。

これにより、適切な構成が確認され、すべての認証に対してこれを引き続き有効にできます。 /etc/pam.d/Sudoを再度編集し、追加した行を削除します。

4すべての認証で2FAを有効にする

これは、YDMで2FAを有効にすることをカバーするため、Yubicoガイドから逸脱する点です。一方、TTY、SSH、Sudoなどを含むすべての認証で有効にする場合、最初に/etc/pam.d/common-authを編集する必要があります。

Sudo nano /etc/pam.d/common-auth

ファイルの下部に次の行を追加します。

auth    required   pam_u2f.so nouserok authfile=/etc/u2f_keys cue
  • nouserokは、関連付けられたキーを持たないユーザーが2FAを要求されないため、ログインできることを意味します。このオプションを省略した場合、キーはログインできません。
  • authfileは、デフォルトの場所(ホームディレクトリ)ではなく、/etcでファイルを検索するようモジュールに指示します。
  • cueは、メッセージ付きのタッチを要求します(「デバイスにタッチしてください」)。

(オプションの完全なリストについては、 ユビコのドキュメント を参照してください。)

これで完了です。 2FAのキーを使用するには、ログインを試行する必要があります。以下はオプションです。

5. Sudoの2FAを無効にする

個人的には、Sudoを実行するためにキーを使用する必要はありませんでした。無効にするのは非常に簡単でしたが、少し面倒です。これを行うより良い方法があるかどうかはわかりません。 Sudo pamファイルを再度編集します。

Sudo nano /etc/pam.d/Sudo

@include common-authという行を削除します。次に、削除した行と同じ場所に/etc/pam.d/common-authの内容をコピーして貼り付けますが、U2Fモジュールを有効にする前に追加した行を削除します。この最後のポイントは非常に重要です。その行をそのままにしておくと、Sudoを実行するためのキーが必要になります。その行を削除すると、キーがSudoを実行する必要がなくなります。

Sshまたはその他の認証シナリオで2FAを無効にする場合は、この手順を調整できます。 ls /etc/pam.dを実行すると、使用可能なファイルが表示されます。各ファイルは、それらが制御するシナリオに基づいて名前が付けられます。繰り返しますが、変更を行う前に何をしているかを確認し、ファイルをバックアップしない限り、これを実行しないでください。

6.物理的アクセスの保護

もちろん、誰でもライブcd/USBドライブで起動して変更を元に戻すことでこれを無効にできるため、脅威モデルに物理アクセスが含まれる場合、完全なシステム暗号化を有効にし、USB/CD起動を無効にし、BIOSパスワードを設定しますまたは、第三者による改ざんを防ぐ別の方法。構成の中で最も弱いリンクと同じくらい安全であることに注意してください。

1
Hamish W