バックアップPAMモジュールを持つ方法

バックアップPAMモジュールを持つ方法

私は現在PAMについて学んでいます。今はOTPとパスワードを使用していますが、OTPとパスワードを使用できるようにしたいと思います。失敗した場合は、YubiKeyとパスワードを使用してください。私はArchを使用しており、pam.dディレクトリのシステム認証ファイルは次のようになります。

auth      required  pam_oath.so     usersfile=/etc/users.oath window=30 digits=6 debug
auth      required  pam_unix.so     try_first_pass nullok
auth      optional  pam_permit.so
auth      required  pam_env.so

account   required  pam_unix.so
account   optional  pam_permit.so
account   required  pam_time.so

password  required  pam_unix.so     try_first_pass nullok sha512 shadow
password  optional  pam_permit.so

session   required  pam_limits.so
session   required  pam_unix.so
session   optional  pam_permit.so

ベストアンサー1

ArchはLinux PAM(Solaris PAMおよびFreeBSD PAMとは異なり)であり、Linux PAMにはルールをスキップする方法があるため、これを達成する1つの方法は次のとおりです。

auth required pam_unix.so ... # password
auth [success=2 default=bad] pam_yubikey ...
auth [success=1 default=bad] pam_otp ...
auth required pam_deny.so
auth required pam_env.so
...

envyubikeyの場合、有効な場合は2つのルール(後続の認証設定フェーズ)を下げ、OTPの場合は1つのルールを下げる必要があり、そうでない場合は認証を拒否する必要があります。このビットdefaultのオプションや他のオプションが何であるかわからないため、[...]失敗するように設定しました。

別のオプションはサブスタックです。デフォルトのルールファイルには次の内容があります。

...
auth substack otp-foo
auth substack yubikey-foo
...

その後、添付ファイルは/etc/pam.d/{otp-foo,yubikey-foo}if-authgood-or-pam_denyを実行します。ただし、この場合は両方とも試行されます(Linux PAMはすべてのサブスタックで動作します)。 yubikeyが機能している場合は、otpチェックをスキップする前の例とは異なります。

おすすめ記事