このチュートリアルでは、Ubuntu 16.04 LTSで2要素認証を使用してSSHを保護する方法を示します。知らない人のために、2要素認証を使用してSSHを保護するGoogle Authenticator 2段階認証(2要素認証とも呼ばれます。TFAと略されます)は、コンピューターまたはネットワーク内のサービスにアクセスしようとしているエンティティのIDを検証する2段階のプロセスです。これは次のような特殊なケースです。両方のステップで、3つの認証要素(知識要素、所有要素、継承要素)のいずれか1つのみを含む可能性のある多要素認証。
この記事は、少なくともLinuxの基本的な知識があり、シェルの使用方法を知っていること、そして最も重要なこととして、サイトを独自のVPSでホストしていることを前提としています。インストールは非常に簡単で、ルートアカウントで実行されていますが、そうでない場合は、'sudo
を追加する必要があります。 ‘ルート権限を取得するコマンドに。 Ubuntu 16.04(Xenial Xerus)サーバーで2要素認証を使用した安全なSSHを段階的に説明します。
前提条件
- 次のオペレーティングシステムのいずれかを実行しているサーバー:Ubuntu 16.04、およびLinuxMintなどの他のDebianベースのディストリビューション。
- 潜在的な問題を防ぐために、OSの新規インストールを使用することをお勧めします。
- サーバーへのSSHアクセス(またはデスクトップを使用している場合はターミナルを開く)
non-root sudo user
またはroot user
へのアクセス 。non-root sudo user
として行動することをお勧めします ただし、ルートとして機能するときに注意しないと、システムに害を及ぼす可能性があるためです。
Ubuntu16.04LTSで2要素認証を使用したセキュアSSH
手順1.まず、次のapt-get
を実行して、すべてのシステムパッケージが最新であることを確認します。 ターミナルのコマンド。
sudo apt-get update sudo apt-get upgrade
ステップ2.Google認証システムをインストールします。
Ubuntuにパッケージをインストールするには、次のコマンドを実行します。
apt-get install libpam-google-authenticator
次のステップは、確認コードを取得することです。サーバーの簡単な質問に答えるだけで、確認コードとスクラッチコードを取得するのは非常に簡単なコマンドです。次のコマンドを実行することで、その手順を実行できます。
google-authenticator
いくつかの質問に答えるように求められます。最初の2つの質問にyes(y)で答えてください:
Do you want authentication tokens to be time-based (y/n) y
端末に大きなQRコードが生成されます。Android/ iOS / WindowsPhoneまたはタブレットのオーセンティケーターアプリケーションでコードをスキャンするか、秘密を入力できます画面上に生成されたキー。
緊急スクラッチコードも生成されます。モバイルデバイスを紛失した場合の認証に次のコードを使用できます:
Your emergency scratch codes are: 80461001 68335920 89765548 12485672 11145603
次の質問に「はい」と答えて、rootユーザーの認証設定を保存します:
Do you want me to update your "/root/.google_authenticator" file (y/n) y
次に、ワンタイムパスワードを生成するようにオーセンティケーターを構成できます。最後の30秒間は、生成されたすべてのパスワードを1回使用できます。yと答えてファイルを作成します。これらの設定を保存します:
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
デバイス間で時間の同期に問題がある場合は、次の設定を使用できるため、このオプションは使用しません:
By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n
次の設定はブルートフォース攻撃を防ぎます。正しいパスワードを入力するチャンスは30秒あたり3回だけです:
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
おめでとうございます!キーの生成とクライアントへの追加が完了しましたが、これらの設定を有効にするには、追加の構成が必要です。
次のステップは、openSSHで認証設定を構成することです。これを行うには、「/etc/pam.d/sshd
」を開きます。 」ファイルを作成し、ファイルの最後に次の行を追加します。
### nano /etc/pam.d/sshd auth required pam_google_authenticator.so
変更を保存し、「/etc/ssh/sshd_config
」を開きます 」ファイルを作成し、チャレンジ/レスポンス認証を有効にします:
### nano /etc/ssh/sshd_config ChallengeResponseAuthentication yes
最後に、ファイルを保存してSSHサーバーを再起動し、変更を有効にします。
systemctl restart ssh
おめでとうございます。SSHの保護に成功しました。Ubuntu16.04LTS(Xenial Xerus)システムで2要素認証を使用した安全なSSHのためにこのチュートリアルを使用していただき、ありがとうございます。追加のヘルプや役立つ情報については、お勧めしますSSHの公式Webサイトを確認してください。