Googleオーセンティケーターを使ってLinuxデスクトップにログインする方法
セキュリティを強化するために、Linux PCにログインするためにパスワードと同様に時間ベースの認証トークンを要求することができます。このソリューションはGoogle Authenticatorと他のTOTPアプリを使用します.
このプロセスはUbuntu 14.04で標準のUnityデスクトップとLightDMログインマネージャを使って実行されましたが、原則はほとんどのLinuxディストリビューションとデスクトップで同じです。.
SSHを介したリモートアクセスにGoogle認証システムを要求する方法を以前に説明しましたが、このプロセスも同様です。これはGoogle Authenticatorアプリを必要としませんが、Authyを含むTOTP認証スキームを実装する互換性のあるアプリならどれでも動作します。.
Google認証システムPAMをインストールする
これをSSHアクセス用に設定するときと同様に、まず適切なPAM(「プラグ可能認証モジュール」)ソフトウェアをインストールする必要があります。 PAMは、さまざまな種類の認証方法をLinuxシステムにプラグインしてそれらを要求することを可能にするシステムです。.
Ubuntuでは、次のコマンドでGoogle Authenticator PAMをインストールします。ターミナルウィンドウを開き、次のコマンドを入力してEnterキーを押し、パスワードを入力します。システムはLinuxディストリビューションのソフトウェアリポジトリからPAMをダウンロードしてインストールします。
sudo apt-get libpam-google-authenticatorをインストールしてください。
他のLinuxディストリビューションでもこのパッケージをインストールしやすいように用意しておくことをお勧めします。Linuxディストリビューションのソフトウェアリポジトリを開いて検索してください。最悪のシナリオでは、GitHubでPAMモジュールのソースコードを見つけて自分でコンパイルすることができます。.
前に指摘したように、このソリューションはGoogleのサーバーへの「電話のかけ方」には依存しません。これは標準のTOTPアルゴリズムを実装しており、コンピュータがインターネットにアクセスできない場合でも使用できます。.
認証キーを作成する
これで秘密の認証キーを作成し、それを携帯電話のGoogle Authenticatorアプリ(または同様のアプリ)に入力する必要があります。まず、Linuxシステムに自分のユーザーアカウントとしてログインします。ターミナルウィンドウを開き、 Google認証システム コマンド。タイプ よ そしてここでプロンプトに従ってください。これにより、現在のユーザーアカウントのディレクトリにGoogle認証システム情報を含む特別なファイルが作成されます。.
また、その2要素認証コードをスマートフォンのGoogle認証システムまたは同様のTOTPアプリに取り込むプロセスについても説明します。あなたのシステムはあなたがスキャンすることができるQRコードを生成することができます、またはあなたはそれを手動でタイプすることができます.
あなたの携帯電話を紛失した場合にログインに使用できるあなたの緊急スクラッチコードを書き留めておいてください.
コンピュータを使用する各ユーザーアカウントに対してこの手順を実行します。たとえば、自分のコンピュータを使用するのがあなただけの場合は、通常のユーザーアカウントで1回だけ実行できます。自分のコンピュータを使用している人が他にいる場合は、自分のアカウントにサインインして自分のアカウント用に適切な2要素コードを生成し、ログインできるようにします。.
認証を有効にする
これは、物事が少しうんざりするところです。 SSHログインに対して2ファクタを有効にする方法を説明したとき、SSHログインに対してのみそれを要求しました。これにより、認証アプリを紛失した場合や何か問題が発生した場合でも、ローカルにログインできます。.
ローカルログインに対して2要素認証を有効にするので、ここでは潜在的な問題があります。問題が発生した場合は、ログインできない可能性があります。このことを念頭に置いて、グラフィカルログインでのみ有効にする方法について説明します。あなたがそれを必要とするならば、これはあなたに脱出ハッチを与えます.
Ubuntuでのグラフィカルログインに対してGoogle認証システムを有効にする
テキストプロンプトからログインするときに要件をスキップして、グラフィカルログインのみに対して2段階認証を常に有効にできます。つまり、仮想端末に簡単に切り替えてログインして変更を元に戻すことができるので、問題が発生してもGogole Authenciatorは必要ありません。.
確かに、これはあなたの認証システムに穴を開けます、しかしあなたのシステムに物理的にアクセスする攻撃者はとにかくすでにそれを悪用することができます。そのため、2要素認証がSSH経由のリモートログインに特に効果的です。.
LightDMログインマネージャを使用するUbuntuでこれを行う方法は次のとおりです。次のようなコマンドで編集するためにLightDMファイルを開きます。
sudo gedit /etc/pam.d/lightdm
(覚えておいて、これらの特定のステップはあなたのLinuxディストリビューションとデスクトップがLightDMログインマネージャを使用する場合にだけうまくいくでしょう。)
ファイルの末尾に次の行を追加して保存します。
認証が必要ですpam_google_authenticator.so nullok
最後の「nullok」ビットは、2要素認証を設定するためにgoogle-authenticatorコマンドを実行していない場合でも、ユーザーにログインを許可するようにシステムに指示します。彼らがそれを設定したならば、彼らはタイムベースのコードを入力しなければならないでしょう - さもなければ彼らはそうしません。 Google認証コードを設定していない「nullok」ユーザーアカウントを削除すると、グラフィカルにログインできなくなります。.
次回ユーザーがグラフィカルにログインしたときに、パスワードの入力を求められた後、電話に表示されている現在の確認コードの入力を求められます。確認コードを入力しないと、ログインできません。.
ほとんどの一般的なLinuxデスクトップセッションマネージャはPAMを使用しているため、このプロセスは他のLinuxディストリビューションおよびデスクトップでもかなり似ているはずです。適切なPAMモジュールを有効にするには、似たようなもので別のファイルを編集する必要があるでしょう。.
ホームディレクトリ暗号化を使用する場合
Ubuntuの以前のリリースでは、パスワードを入力するまでホームディレクトリ全体を暗号化する簡単な「ホームフォルダ暗号化」オプションが提供されていました。具体的には、これはecryptfsを使用します。ただし、PAMソフトウェアはデフォルトでホームディレクトリに保存されているGoogle Authenticatorファイルに依存しているため、ログインする前にPAMが暗号化されていない形式で利用できることを確認しない限り、暗号化によってPAMによるファイルの読み取りが妨げられます。まだ使用されていないホームディレクトリの暗号化オプションを使用している場合は、この問題を回避するための情報.
最近のバージョンのUbuntuは代わりにフルディスク暗号化を提供しています。これは上記のオプションでうまく動作します。特別なことをする必要はありません。
助けて、壊れた!
これはグラフィカルログインで有効にしたばかりなので、問題が発生した場合は無効にするのが簡単です。 Ctrl + Alt + F2のようなキーの組み合わせを押して仮想端末にアクセスし、そこにあなたのユーザー名とパスワードでログインします。その後、sudo nano /etc/pam.d/lightdmのようなコマンドを使用して、ファイルをターミナルテキストエディタで編集用に開くことができます。 Nanoのガイドを使用して行を削除し、ファイルを保存すると、通常どおり再びログインできるようになります。.
他のPAM設定ファイルに「auth required pam_google_authenticator.so」という行を追加することで、他の種類のログイン、場合によってはすべてのシステムログインにもGoogle Authenticatorを強制することもできます。これを行う場合は注意してください。セットアッププロセスを通過していないユーザーもログインできるように、「nullok」を追加することをお勧めします。.
このPAMモジュールの使用方法と設定方法に関する詳細な文書は、GitHubのソフトウェアのREADMEファイルにあります。.