GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04LTSで2要素認証を使用してSSHを保護する方法

このチュートリアルでは、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サイトを確認してください。


Ubuntu
  1. Ubuntu18.04LTSにRedisをインストールして保護する方法

  2. Ubuntu22.04LTSでSSHサービスを有効にする方法

  3. Ubuntu16.04で2要素認証を使用してSSHを保護する

  1. Ubuntu18.04LTSにphpMyAdminをインストールして保護する方法

  2. Ubuntu18.04LTSでPritunlを使用してVPNサーバーをセットアップする方法

  3. SSHを使用してUbuntu20.04LTSのリモートサーバーに接続する方法

  1. Ubuntu20.04LTSを使用してCプログラムを作成して実行する方法

  2. Ubuntu20.04LTSでパブリックIPアドレスを見つける方法

  3. ソースコードを使用してUbuntu20.04LTSにNginxをインストールする方法