Google AuthenticatorをSSH用の2FAに設定しましたが、うまく機能しましたが、Android用のAuthenticatorアプリはオープンソースではなくなりました。良い実際のオープンソースの代替案はありますか?
答え1
FreeOTPを試してください。 HOTPとTOTPをサポートします。
答え2
Aegis authenticator
Androidバージョンは無料でシンプルで便利な機能(インポート/エクスポート、バイオメトリックロック解除、QRコードスキャンまたは手動入力、マテリアルデザイン...)を備えています。
f-froidで使用できます。https://f-droid.org/fr/packages/com.beemdevelopment.aegis/
答え3
認証。クラウドベースのマルチデバイス同時使用アプリケーションは、LINUXを含むほとんどの最新プラットフォームで利用できます。 Google OTPトークンと互換性があります。
私は主にログイン、su、lightdmのためにUBUNTUシステムでこれを使用していますが、PAMモジュールを使用すると、他の多くのプロトコル(公開鍵を持つsshdなど)もサポートしています。
設定ガイドは次のとおりです。2FA存在するUbuntuジェミーとパム:
GOOGLE AUTHENTICATORは設定されたユーザーにのみ機能します(〜/ .google_authenticatorが存在します)(テストプロセス)
以下は、Google Authenticator を使用して /etc/pam.d/login ファイルに対して PAM を設定する手順です。ユーザーがトークンファイルを構成しない場合は、セキュリティ文字をバイパスします。
次のコマンドを使用して、PAM と Google Authenticator に必要なパッケージをインストールします。
sudo apt-get install libpam-google-authenticator
テキストエディタを使用して/etc/pam.d/loginファイルを編集します。
sudo nano /etc/pam.d/login
ファイルの下部に次の行を追加します。
auth required pam_google_authenticator.so nullok
ファイルを保存してテキストエディタを終了します。
その後、/etc/pam.d/suファイルと/etc/pam.d/lightdmファイルに対して手順2〜3を繰り返して設定を完了できます。
SSH構成の場合、ChallengeResponseAuthentication yesおよびUsePAM yesパラメーターを調整します。必要な追加のSSHパラメータの詳細については、次を参照してください。
https://www.techrepublic.com/article/enable-ssh-2fa-ubuntu-server/
SSH、2FA、公開鍵認証
目的の結果が公開鍵認証を使用してsshを呼び出すときにGoogle Authenticatorで2FAをスキップする場合は、「auth require pam_google_authenticator.so nullok」行を/etc/pam.d/sshdの末尾に配置する必要があります。ファイルは次のようになります。
@include 一般認証アカウントに pam_nologin.so が必要 @include 一般アカウント セッションオプション pam_motd.so motd=/run/motd.dynamic オプション pam_motd.so noupdate セッション オプション pam_mail.soenv #[1] セッション pam_limits.so 必要 セッションには pam_env.so 必要 #[1] セッション pam_env.so 必要 user_readenv=1 envfile =/etc/default/locale セッション[success=okignore=ignore module_unknown=ignoredefault=bad] pam_selinux.so open @include 一般パスワード認証が必要 pam_google_authenticator.so nullok
公開鍵認証を使用するときにrootユーザーに対して2FAを強制するには、/etc/pam.d/sshdファイルを変更し、@include common-auth行の後にauth必須pam_google_authenticator.so nullok行を追加します。これにより、公開鍵を使用してもGoogle Authenticator PAMモジュールが常に呼び出されます。 /etc/pam.d/sshd は次のようになります:
@include common-auth auth には pam_google_authenticator.so が必要です。 nullok アカウントには pam_nologin.so が必要です。 @include common-account セッションが必要です。 [success=okignore=ignore module_unknown=ignore default=bad] pam_selinux.so セッションを閉じるには、 pam_loginuid.so セッションが必要です(オプション pam_key)。強制撤回 @include 公開セッション セッション オプション pam_motd.so motd=/run/motd.dynamic オプション pam_motd.so noupdate セッション オプション pam_mail.soenv # [1] セッションが必要 pam_limits.so セッションが必要 pam_env.so # [1] ] セッションが必要pam_env.so user_readenv=1 envfile=/etc/default/locale セッション [success=okignore=無視 module_unknown=ignoredefault=悪い] pam_selinux.so open @include common-password
これを変更したら、sshdサービスを再起動してrootとして再度ログインしてみてください。公開鍵認証を使用しても、Google OTP 認証コードを入力するよう求められます。
このユースケースでは、有効な〜/ .google_authenticatorファイルを持つユーザーに対してのみ2FAを有効にするため、複雑なPAM設定を調整する必要はありません。