Linux
 Computer >> コンピューター >  >> システム >> Linux

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

SSHは、ノートパソコンやデスクトップPCからRaspberry Piを遠隔操作できる、最も人気のある方法のひとつです。本記事では、Raspberry PiへのSSH接続に2要素認証(2FA)を導入し、セキュリティを一段階強化する手順を詳しく解説します。

注意: SSH鍵ファイル(公開鍵認証)を使ってRaspberry Piにアクセスしている場合、2要素認証は適用されません。あらかじめご了承ください。

1. Raspberry Piを最新の状態に更新する

Raspberry Pi OSのセットアップが済んでいる前提で進めますが、まずはシステム全体を最新の状態にしておきましょう。ターミナルを開いて、以下のコマンドを実行します。

sudo apt update && sudo apt -y upgrade

2. SSHを有効化する

Raspberry Pi OSでは、SSHサーバーはデフォルトで無効になっています。SSH経由でRaspberry Piに接続するには、まず以下のコマンドでSSHを有効化して起動します。

sudo systemctl enable ssh
sudo systemctl start ssh
Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

これでSSHサーバーに接続できるようになりました。

チャレンジ・レスポンス認証を有効にする

2要素認証を実現するには、Raspberry Pi側がユーザーの本人確認を求め(チャレンジ)、その応答を受け取って処理する(レスポンス)仕組みが必要です。そのため、「チャレンジ・レスポンス認証」を有効にします。

まず、SSHの設定ファイルを編集用に開きます。ターミナルで次のコマンドを実行してください。

sudo nano /etc/ssh/sshd_config

ファイル内のChallengeResponseAuthenticationという項目を探し、値を「no」から「yes」に変更します。

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

変更したら、Ctrl + Oでファイルを保存し、Ctrl + Xでエディタを終了します。

ターミナルに戻り、新しい設定を反映させるためにSSHデーモンを再起動します。

sudo systemctl restart ssh

SSHの設定を変更したので、引き続きSSHで接続できるかどうかを確認しておきましょう。

接続にはRaspberry PiのIPアドレスが必要です。まだ把握していない場合は、Raspberry Pi上で以下のコマンドを実行してください。

hostname -I

これで必要なIPアドレスが表示されます。

次に、ノートパソコンやPC側でターミナルを起動し、Raspberry Piに接続します。「10.3.000.0」の部分は、ご自身の環境のIPアドレスに置き換えてください。

ssh pi@10.3.000.0

これでSSH経由での接続が完了しました。

3. 2要素認証のセットアップ

続いて、ワンタイム認証コードを生成するための認証アプリをスマートフォンにインストールします。認証アプリは多数ありますが、このチュートリアルではiOSとAndroidの両方に対応しているGoogle Authenticatorを使用します。

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

モバイルアプリをダウンロードしたら、Raspberry Pi側にもGoogle AuthenticatorのPAMモジュールをインストールする必要があります。

Raspberry Piでターミナルウィンドウを開き、以下のコマンドを実行しましょう。

sudo apt install libpam-google-authenticator

Raspberry Piとモバイルデバイスの両方にGoogle Authenticatorがインストールできたら、いよいよ2要素認証の設定に進みます。

Piとスマートフォンを連携させる

モバイルアプリとRaspberry Piを紐付けるには、Raspberry Pi上でQRコードを生成し、それをスマートフォンやタブレットでスキャンします。

QRコードを生成するには、Raspberry Piのターミナルに戻って、以下のコマンドを実行してください。

google-authenticator

すると、認証トークンを時間制限付きにするかどうか尋ねられます。時間ベースのトークンのほうが安全性が高いので、特別な理由がない限り「はい(Yes)」を選択するのがおすすめです。

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

ターミナルにQRコードが表示されます。端末によっては、コード全体が見えるようにターミナルのウィンドウサイズを調整する必要があるかもしれません。

同時に緊急用コード(スクラッチコード)もいくつか表示されます。スマートフォンを紛失・破損した場合でも、これらのコードがあればモバイルデバイスなしでSSH経由でRaspberry Piにアクセスできます。締め出しを防ぐため、必ずメモを取って安全な場所に保管しておきましょう。

このQRコードを使って、Raspberry PiとGoogle Authenticatorアプリを連携させます。

  1. スマートフォンまたはタブレットでGoogle Authenticatorアプリを起動します。
  2. 画面右下の「+」マークをタップします。
  3. 「QRコードをスキャン」を選択します。カメラへのアクセス許可を求められたら、許可してください。
  4. デバイスのカメラをモニターのQRコードにかざします。認識されると自動的にアカウントが作成され、認証コードの生成が始まります。
  5. Raspberry Piのターミナルに戻ると、「google_authenticator」ファイルを更新するかどうか尋ねられるので、Yキーを押します。
  6. 同じ認証トークンの複数ユーザーによる使用を禁止するかどうか尋ねられるので、Yキーを押します。
  7. 時間ずれの許容範囲(タイムスキュー)を広げるかどうか尋ねられたら、Nキーを押します。これはブルートフォース攻撃からの防御に役立ちます。
  8. 最後に、レートリミット(試行回数制限)を有効にするかどうか尋ねられます。これにより、30秒あたりのログイン試行が3回までに制限され、ブルートフォース攻撃などのパスワード総当たり攻撃から保護されます。特別な理由がない限り「Yes」を選択しましょう。

4. Linux PAMで2要素認証を有効にする

最後に、Linux Pluggable Authentication Modules(PAM)を使用して、Raspberry Piの2要素認証を有効にします。

まず、Nanoテキストエディタで「sshd」ファイルを開きます。

sudo nano /etc/pam.d/sshd

次の1行を追加します。

auth required pam_google_authenticator.so

ただし、この行を追加する位置が重要です。

① パスワード入力後(標準的な順序)

Raspberry Piのパスワードを入力したにワンタイム認証コードを求めたい場合は、@includeの行より後ろに追加します。

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

② パスワード入力前

パスワードを入力するにワンタイム認証コードを求めたい場合は、@includeの行よりに追加します。

変更が完了したら、Ctrl + Oで保存し、Ctrl + Xでエディタを終了します。

SSHデーモンを再起動して設定を反映させましょう。

sudo systemctl restart ssh

これで、SSH接続を試みるたびにワンタイム認証コードの入力が求められるようになります。

Raspberry Piに2要素認証を設定する方法|SSH接続のセキュリティを強化しよう

以上で、Raspberry Piへの2要素認証の設定は完了です。これで安心して、個人用Webサーバーや音楽サーバーの構築などに取り掛かれます。さらにSSHのセキュリティを高めたい場合は、他のセキュリティ対策テクニックも併せて検討してみてください。

  1. Raspberry PiをSpotify Connect端末にする方法|安価でポータブルな音楽ストリーミング環境の作り方

    Spotifyは膨大な楽曲ライブラリを誇る音楽ストリーミングサービスで、Webブラウザやスマートフォン・PC向けアプリなど、さまざまな方法で好きな曲を楽しめます。しかし、これらの方法では必ずしも最高の音質が得られるとは限りません。そこで活躍するのが「Spotify Connect」です。Spotify Connectを使えば、単体スピーカーやサウンドバーなど、対応するワイヤレス機器なら何でも再生デバイスとして利用でき、お気に入りの音楽を高音質で楽しめます。 このチュートリアルでは、Raspberry Piを持ち運び可能で低コストなSpotify Connectデバイスとしてセットアップする

  2. さまざまなソーシャルネットワークで2要素認証(2FA)を設定する方法

    最近では、アカウントが改ざんされたユーザーの話を聞くことがよくあります。予防策として、人気のソーシャルメディアアプリを使用する場合は、2要素認証(2FAとも呼ばれます)などの追加のセキュリティ対策を有効にすることをお勧めします。すべてのソーシャルネットワークには独自の設計があるため、このセキュリティオプションを簡単に見つけることができない場合がありますが、このガイドでは、最も人気のあるソーシャルアプリで2FAをすばやく有効にする方法を示します。 2要素認証とは 二要素認証(2FA)は、アカウントにアクセスしようとしている人が本人であることを保証するために追加された保護の追加レイヤーです。まず