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
これでSSHサーバーに接続できるようになりました。
チャレンジ・レスポンス認証を有効にする
2要素認証を実現するには、Raspberry Pi側がユーザーの本人確認を求め(チャレンジ)、その応答を受け取って処理する(レスポンス)仕組みが必要です。そのため、「チャレンジ・レスポンス認証」を有効にします。
まず、SSHの設定ファイルを編集用に開きます。ターミナルで次のコマンドを実行してください。
sudo nano /etc/ssh/sshd_config
ファイル内のChallengeResponseAuthenticationという項目を探し、値を「no」から「yes」に変更します。
変更したら、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側にも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)」を選択するのがおすすめです。
ターミナルにQRコードが表示されます。端末によっては、コード全体が見えるようにターミナルのウィンドウサイズを調整する必要があるかもしれません。
同時に緊急用コード(スクラッチコード)もいくつか表示されます。スマートフォンを紛失・破損した場合でも、これらのコードがあればモバイルデバイスなしでSSH経由でRaspberry Piにアクセスできます。締め出しを防ぐため、必ずメモを取って安全な場所に保管しておきましょう。
このQRコードを使って、Raspberry PiとGoogle Authenticatorアプリを連携させます。
- スマートフォンまたはタブレットでGoogle Authenticatorアプリを起動します。
- 画面右下の「+」マークをタップします。
- 「QRコードをスキャン」を選択します。カメラへのアクセス許可を求められたら、許可してください。
- デバイスのカメラをモニターのQRコードにかざします。認識されると自動的にアカウントが作成され、認証コードの生成が始まります。
- Raspberry Piのターミナルに戻ると、「google_authenticator」ファイルを更新するかどうか尋ねられるので、Yキーを押します。
- 同じ認証トークンの複数ユーザーによる使用を禁止するかどうか尋ねられるので、Yキーを押します。
- 時間ずれの許容範囲(タイムスキュー)を広げるかどうか尋ねられたら、Nキーを押します。これはブルートフォース攻撃からの防御に役立ちます。
- 最後に、レートリミット(試行回数制限)を有効にするかどうか尋ねられます。これにより、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の行より後ろに追加します。
② パスワード入力前
パスワードを入力する前にワンタイム認証コードを求めたい場合は、@includeの行より前に追加します。
変更が完了したら、Ctrl + Oで保存し、Ctrl + Xでエディタを終了します。
SSHデーモンを再起動して設定を反映させましょう。
sudo systemctl restart ssh
これで、SSH接続を試みるたびにワンタイム認証コードの入力が求められるようになります。
以上で、Raspberry Piへの2要素認証の設定は完了です。これで安心して、個人用Webサーバーや音楽サーバーの構築などに取り掛かれます。さらにSSHのセキュリティを高めたい場合は、他のセキュリティ対策テクニックも併せて検討してみてください。
-
Raspberry PiをSpotify Connect端末にする方法|安価でポータブルな音楽ストリーミング環境の作り方
Spotifyは膨大な楽曲ライブラリを誇る音楽ストリーミングサービスで、Webブラウザやスマートフォン・PC向けアプリなど、さまざまな方法で好きな曲を楽しめます。しかし、これらの方法では必ずしも最高の音質が得られるとは限りません。そこで活躍するのが「Spotify Connect」です。Spotify Connectを使えば、単体スピーカーやサウンドバーなど、対応するワイヤレス機器なら何でも再生デバイスとして利用でき、お気に入りの音楽を高音質で楽しめます。 このチュートリアルでは、Raspberry Piを持ち運び可能で低コストなSpotify Connectデバイスとしてセットアップする
-
さまざまなソーシャルネットワークで2要素認証(2FA)を設定する方法
最近では、アカウントが改ざんされたユーザーの話を聞くことがよくあります。予防策として、人気のソーシャルメディアアプリを使用する場合は、2要素認証(2FAとも呼ばれます)などの追加のセキュリティ対策を有効にすることをお勧めします。すべてのソーシャルネットワークには独自の設計があるため、このセキュリティオプションを簡単に見つけることができない場合がありますが、このガイドでは、最も人気のあるソーシャルアプリで2FAをすばやく有効にする方法を示します。 2要素認証とは 二要素認証(2FA)は、アカウントにアクセスしようとしている人が本人であることを保証するために追加された保護の追加レイヤーです。まず