このチュートリアルでは、SSH2要素認証を設定する方法を説明します。 Ubuntu16.04サーバー 有名なGoogle認証システムを使用します。設定すると、SSHサーバーのセキュリティが大幅に向上します。
Google認証システムの仕組み
2要素認証は、2段階認証とも呼ばれ、ログインするには2つの情報を入力する必要があります。 Google Authenticatorは、共有秘密キーと現在時刻を使用してワンタイムパスワードを生成します。正しいユーザー名とパスワードを入力する必要があるだけでなく、SSHサーバーにログインするためにGoogle認証システムによって生成されたワンタイムパスワードを入力する必要があります。
ステップ1:Ubuntu16.04サーバーにGoogle認証システムをインストールして構成する
Ubuntuサーバーにログインし、次のコマンドを実行して、デフォルトのUbuntuパッケージリポジトリからGoogle認証システムをインストールします。
sudo apt install libpam-google-authenticator
次に、google-authenticator
を実行します ホームディレクトリに新しい秘密鍵を作成するコマンド。
google-authenticator
「認証トークンを時間ベースにしますか?」と尋ねられたとき yと答えてください 。次に、 Google Authenticatorを使用してスキャンできるQRコードが表示されます モバイルアプリ。
携帯電話のGooglePlayまたはAppleAppStoreからGoogleAuthenticatorアプリをインストールし、QRコードをスキャンします。 QRコードは秘密鍵を表します。秘密鍵は、SSHサーバーとGoogle認証システムアプリでのみ認識されます。 QRコードをスキャンすると、携帯電話に6桁のワンタイムパスワードが表示されます。デフォルトでは30秒間続きます。
ターミナルウィンドウに秘密鍵、確認コード、緊急スクラッチコードが表示されます。これらの情報は、後で使用できるように安全な場所に保存することをお勧めします。
次に、 yと入力できます 残りのすべての質問に答えます。これにより、Google Authenticator構成ファイルが更新され、同じ認証トークンの複数の使用が無効になり、時間枠が長くなり、ブルートフォースログインの試行から保護するためのレート制限が有効になります。
ステップ2:Google認証システムを使用するようにSSHデーモンを構成する
SSHサーバー構成ファイルを開きます。
sudo nano /etc/ssh/sshd_config
PAM プラグ可能な認証モジュールの略です。 Linuxシステムにさまざまな認証方法をプラグインする簡単な方法を提供します。 SSHでGoogle認証システムを有効にするには、PAMとチャレンジレスポンス認証を有効にする必要があります。したがって、ファイル内で次の2行を見つけ、両方がはいに設定されていることを確認します。 。
UsePAM yes ChallengeResponseAuthentication yes
ファイルを保存して閉じます。次に、SSHデーモンを再起動します。
sudo systemctl restart ssh
次に、SSHデーモンのPAMルールファイルを編集します。
sudo nano /etc/pam.d/sshd
ファイルの最後に次のエントリを追加します。
auth required pam_google_authenticator.so
ファイルを保存して閉じます。今後、SSHデーモンはGoogle認証システムを使用します。
ステップ3:SSH2要素認証をテストする
次に、別のターミナルウィンドウを開き、SSHサーバーにログインしてみます。現在のSSHセッションを閉じないでください。問題が発生した場合は、現在のSSHセッションで修正できます。すべてが正しく設定されている場合は、ユーザーパスワードとワンタイムパスワードの両方を入力するように求められます。
また、Ubuntu16.04サーバーの各ユーザーはgoogle-authenticator
を実行する必要があることに注意してください 二要素認証を使用するには、コマンドを実行してQRコードをスキャンします。
緊急スクラッチコード
緊急スクラッチコードはバックアップコードです。電話を紛失した場合は、ワンタイムパスワードの代わりに、5つの緊急スクラッチコードのいずれかを入力して、2段階の検証を完了することができます。これらのコードは1回限りの使用であることに注意してください。
2台目の電話の使用
2台目の電話をお持ちの場合は、2台目の電話にGoogle認証システムアプリをインストールして、秘密鍵を手動で入力できます。これはQRコードをスキャンするのと同じです。
秘密鍵を変更する場合は、サーバーにログインしてgoogle-authenticator
を実行するだけです。 もう一度コマンドを実行して、~/.google_authenticator
を更新します ファイル。
時刻同期
ワンタイムパスワードは共有秘密鍵と現在の時刻を使用して計算されるため、Ubuntu16.04サーバーでNTP時刻の同期を有効にすることをお勧めします。
このチュートリアルが、Ubuntu16.04サーバーでSSH2要素認証を設定するのに役立つことを願っています。いつものように、この投稿が役に立った場合は、無料のニュースレターを購読してください。