最近、systemd-homedを試してYubikeyをFIDO2デバイスとして登録しました。私が作成した家で認証しようとすると、homectl authenticate <user>
Yubikeyが正しくアクティブになり、PINを要求してタッチを待ってから、通常のパスワードプロンプトが表示されます。
ただし、ttyでアカウントにログインし続けると、パスワードの入力を求められ、U2Fは完全に省略されます。それでもYubikeyの接続が失われても、以前ロックされた家のパスワードが復号化されて開きます。
認証にU2Fを強制的に使用するにはどうすればよいですか?わかりましたpam-u2f
。しかし、ここで関係があるならどうすればいいのかわかりません。 「従来の」ユーザーログインを保護するリソースをこの状況にpam-u2f
一致させることはできません。彼らは常にキーの生成から始まりますが、systemd-homed
この場合はキーを管理しているようです(これに関する明確な情報は見つかりません)。
答え1
私はそれを見つけ、誰かが同じ問題を偶然発見した場合に備えて、私の結果をあなたと共有したかったのです。
PAM構成に関するものです。 Webで見つかったさまざまな結果からわかるように、使用されているLinuxディストリビューションによって大きく異なります。私の場合、Arch Linuxでsystem-auth
ユーザー認証を担当する基本ファイルは次のとおりです。
$ cat /etc/pam.d/system-auth
#%PAM-1.0
auth required pam_faillock.so preauth
auth [success=2 default=ignore] pam_unix.so try_first_pass nullok
-auth [success=1 default=ignore] pam_systemd_home.so
auth [default=die] pam_faillock.so authfail
auth optional pam_permit.so
auth required pam_env.so
auth required pam_faillock.so authsucc
# ...
これは、このpam_unix.so
モジュール(パスワードによる認証)が最初に実行され、成功すると次の2つのモジュールをスキップすることを意味します。したがって、パスワードが正しい場合はpam_systemd_home.so
絶対に実行されないため、U2Fは照会されません。アカウントパスワードはLUKSキーで登録されているため、デフォルトのパーティションコンテナのロックを解除するのに十分です。
! ! !気づく!
PAM構成を操作するときは、常に同様に、変更が正常に確認されるまで常にルートシェルを開いたままにしてください。そうしないと、PCにアクセスできなくなる可能性があります!
FIDO2デバイスを使って認証を実装したかったので、次のようにしました。
cat /etc/pam.d/system-auth
#%PAM-1.0
auth required pam_faillock.so preauth
-auth [success=2 default=ignore] pam_systemd_home.so
auth [success=1 default=ignore] pam_unix.so try_first_pass nullok
auth [default=die] pam_faillock.so authfail
auth optional pam_permit.so
auth required pam_env.so
auth required pam_faillock.so authsucc
Nowがpam_systemd_home.so
最初に実行され、成功するとデフォルトのパスワードプロンプトがスキップされます。 LUKSの場合、FIDO2デバイスはトークンとして登録されているので、これで十分です。
"実際" 2FAが必要な場合[success=2 default=ignore]
と[success=1...
構成をrequired
。