Google Authenticatorを使用してDebian 9でSSHの2要素認証(2FA)を設定する方法

SSHを介してサーバーにログインする方法はいくつかあります。方法には、パスワードログイン、キーベースのログイン、および2要素認証が含まれます。

2要素認証は、はるかに優れたタイプの保護です。コンピュータが侵害された場合でも、攻撃者はログインするためのアクセスコードを必要とします。

このチュートリアルでは、Google AuthenticatorとSSHを使用してDebian 9で2要素認証を設定する方法を学びます。

前提条件

  • Debian 9サーバー(またはそれ以降)。
  • sudoアクセスを持つ非rootユーザー。
  • Google認証システムアプリがインストールされたスマートフォン(AndroidまたはiOS)。Authyまたは時間ベースのワンタイムパスワード(TOTP)ログインをサポートするその他のアプリを使用することもできます。

ステップ1:Google認証システムライブラリのインストール

Debianで利用できるGoogle認証システムライブラリモジュールをインストールする必要があります。これにより、サーバーがコードを読み取って検証できるようになります。

sudo apt update
sudo apt install libpam-google-authenticator -y

ステップ2:各ユーザーのGoogle認証システムを構成する

モジュールを構成します。

google-authenticator

コマンドを実行すると、特定の質問が表示されます。最初の質問はDo you want authentication tokens to be time-based (y/n)

を押すYと、QRコード、秘密鍵、検証コード、緊急バックアップコードを取得します。

スマートフォンを取り出して、Google認証システムアプリを開きます。QRコードをスキャンするか、秘密鍵を追加して新しいエントリを追加できます。それが完了したら、バックアップコードをメモして、どこかに安全に保管してください。スマートフォンの置き忘れや破損が発生した場合は、これらのコードを使用してログインできます。

残りの質問についてはY.google_authenticatorファイルの更新Y、同じトークンの複数使用の禁止N、時間ウィンドウの拡大、およびYレート制限の有効化を求められたら、を押してください。

マシン上のすべてのユーザーに対してこの手順を繰り返す必要があります。そうしないと、このチュートリアルを完了すると、ユーザーはログインできなくなります。

ステップ3:Google認証システムを使用するようにSSHを構成する

マシン上のすべてのユーザーがGoogleオーセンティケーターアプリを設定したので、SSHを設定して、現在の認証方法に対してこの認証方法を使用するようにします。

次のコマンドを入力してsshdファイルを編集します。

sudo nano /etc/pam.d/sshd

@include common-auth以下に示すように、行を見つけてコメント化します。

# Standard Un*x authentication.
#@include common-auth

このファイルの最後に次の行を追加します。

auth required pam_google_authenticator.so

CTRL+ Xを押して保存し、終了します。

次に、次のコマンドを入力してsshd_configファイルを編集します。

sudo nano /etc/ssh/sshd_config

用語ChallengeResponseAuthenticationを見つけて、その値をに設定しますyes。また、用語を見つけてPasswordAuthenticationコメントを外し、その値をに変更しますno

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

次のステップは、ファイルの最後に次の行を追加することです。

AuthenticationMethods publickey,keyboard-interactive

CTRL+ を押して、ファイルを保存して閉じますX。Google認証システムを使用するようにSSHサーバーを構成したので、再起動します。

sudo service ssh restart

サーバーに再度ログインしてみてください。今回は認証コードを要求されます。

ssh user@serverip

Authenticated with partial success.
Verification code:

アプリが生成するコードを入力すると、正常にログインできます。

注意

電話機を紛失した場合は、ステップ2のバックアップコードを使用してください。バックアップコードを紛失した場合は.google_authenticator、Vultrコンソールからログインした後、ユーザーのホームディレクトリの下のファイルでいつでも見つけることができます。

結論

2要素認証を使用すると、サーバーのセキュリティが大幅に向上し、一般的なブルートフォース攻撃の阻止に役立ちます。



Leave a Comment

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

Debian 9にNeos CMSをインストールする方法

Debian 9にNeos CMSをインストールする方法

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

Debian JessieでCactiをセットアップする

Debian JessieでCactiをセットアップする

はじめにCactiは、RRDデータに完全に基づいたオープンソースの監視およびグラフ作成ツールです。サボテンを通じて、ほぼすべてのタイプのデビックを監視できます

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

Debian 8のFlash 5にPBXをインストールする

Debian 8のFlash 5にPBXをインストールする

PBX In A Flash 5(PIAF5)は、Vultr VPSを本格的なPBXに変えるDebian 8ベースのオペレーティングシステムです。次のような特徴があります。

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

別のシステムを使用していますか?TermRecordはPythonで記述されたシンプルなオープンソースツールで、ターミナルセッションを簡単に共有できる自己完結型に保存できます。

Debian 9にMatomo Analyticsをインストールする方法

Debian 9にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

この記事では、Vultrでテンプレートとして提供されるサーバーオペレーティングシステムの概要を説明します。CentOS CentOSはRHEL(Re

X-Cart 5をDebian 10にインストールする方法

X-Cart 5をDebian 10にインストールする方法

別のシステムを使用していますか?X-Cartは、数多くの機能と統合を備えた非常に柔軟なオープンソースのeコマースプラットフォームです。X-Cartのソースコードはホストです

MuninでDebianサーバーのステータスを監視する

MuninでDebianサーバーのステータスを監視する

Muninは、マシンのプロセスとリソースを調査する監視ツールであり、Webインターフェースを介して情報をグラフで表示します。フォローインを使用する

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

はじめにこのチュートリアルでは、CentOS、Debian、またはUbuntuを実行しているLinuxサーバーにIP範囲/サブネット全体を追加するプロセスについて説明します。プロセス

Debian 9のディアスポラでソーシャルネットワークを構築する

Debian 9のディアスポラでソーシャルネットワークを構築する

別のシステムを使用していますか?Diasporaはプライバシーを意識したオープンソースのソーシャルネットワークです。このチュートリアルでは、ディアスポラpoを設定する方法を学びます

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

別のシステムを使用していますか?Selfoss RSSリーダーは、無料でオープンソースのセルフホスト型のWebベースの多目的ライブストリーム、マッシュアップ、ニュースフィード(RSS / Atom)です。

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。