前提条件
・ホスト OS Parrot Security 6.4
・Oracle VirtualBox Manager v7.1.10_Debian
・仮想環境 Ubuntu 24.04.3 LTS
・Google Authenticator 利用
手順
1 libpam-google-authenticator パッケージ インストール
sudo apt update
sudo apt install libpam-google-authenticator
2 OTP 初期化
google-authenticator
※ 動作確認で確認した感じだと実行ユーザーのみ初期化されます。
複数ユーザーで実装したい場合にはそれぞれのユーザーで実行したほうがいいと思います。
仮想環境実行だったためコマンド実行後に表示される QR が読み取れず QR の下に表示されたコードをアプリに入力しました。
↓ 下記内容を直接アプリに入力
アカウント名 : "検証環境"
鍵 : "表示されたコード"
鍵の種類 : "時間ベース"
3 認証番号入力
QR 表示されたらアプリ側で出力されている認証番号入力待機状態になっているので上記手順にて QR を読み込むかアプリに情報を直接入力後にアプリに表示される認証番号をターミナルに打ち込む。
認証番号の入力に成功すると数回 y/n 確認されるので全部 y で続行。
※ 何回か y 押すと設定完了しエマージェンシーコードがターミナル上に出力されるので忘れずにどこかにメモしておきましょう
4 GUI ログイン用 PAM 設定ファイルの編集
以下を編集します。
sudo nano /etc/pam.d/gdm-password
ファイル最上位に以下文言を追記します。
auth required pam_google_authenticator.so nullok
5 それでは再起動して二段階認証実装できてるか確認をお願いいたします。
入力欄に英語でいつもと違うこと書かれてたら認証番号入力してください。
パスワードの前に認証番号入力してそのあとにパスワードです。
動作確認時、ずっと先にパスワード入力しててログインできずに心が折れかけました。
同日 追記
ホスト OS の ParrotOS に同手順にて実装できました。
ホスト OS 実装時は QR を直接読み込んで手順実施しましたが大きく異なるようなことはありませんでした。
Debian OS ではほとんど同じ手順て実施できると思うので興味がある方はぜひやってみてください!