ラズパイ入手したらまずやること、デフォルトユーザーとSSHログイン認証を変更するラズパイのセキュリテイ対策(中編)(3/3 ページ)

» 2019年12月11日 09時00分 公開
前のページへ 1|2|3       

2. rootへパスワードを設定する

 Raspbianの初期状態では、スーパーユーザーの「root」がパスワードで保護されていません。この状態では全ての操作がパスワード無しで実行可能となってしまいます。

 「root」のパスワードを「passwd」コマンドで変更します。

sudo passwd root
rootにパスワードを設定

 下記のように「updated successfully」と表示されれば、「root」のパスワードの変更は正常に完了しています。

rootにパスワードを設定したときの日本語ターミナル(クリックで拡大)

3. SSHで証明書を使う

 SSHのログインには認証方式として、パスワード認証方式と公開鍵認証方式の2種類があります。 Raspbianの初期状態でSSHを有効にするとパスワード認証方式になり、パスワードのリスト型(辞書)攻撃などで容易にログインできるリスクが存在します。

 SSHのログインをパスワード認証方式から公開鍵認証方式へ変更することで、リスト型攻撃などの対策になります。この項目では、具体的な証明書の作成、設定方法を説明します。

 下記の「ssh-keygen」コマンドで、秘密鍵と公開鍵のキーペアを作成します。

ssh-keygen -t rsa
ターミナルでusermodコマンドを実行

 下記のように、途中で「Enter passphrase (empty for no passphrase):」が表示されますので、ここでパスフレーズを入力します。パスフレーズを設定することで「パスフレーズを知っている担当者のみがアクセスできる」ようになり、更にセキュリティレベルが向上します。

Generating public/private rsa key pair.
Enter file in which to save the key (/home/newpiuser/.ssh/id_rsa):
Created directory '/home/newpiuser/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/newpiuser/.ssh/id_rsa.
Your public key has been saved in /home/newpiuser/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:WmK5sUoG9LxfZyOChKWeFVxJhRcx+gPussaKNNCmOD4 newpiuser@raspberrypi
The key's randomart image is:
+---[RSA 2048]----+
|     .o+=o       |
|   . .o...       |
|  . + o.o..      |
| o * o + oE oE   |
|. * = * S        |
|o+ = o..= B .    |
|+oo.* * o +  + o |
|oE.oo= o + .     |
|..ooo..ooo..ooo. |
+----[SHA256]-----+
ターミナルでusermodコマンドを実行した結果。fingerprintやrandomart imageはそれぞれ異なる

 秘密鍵(id_rsa)と公開鍵(id_rsa.pub)の2つのファイルが、「/home/newpiuser/.ssh」に作成されます。Raspbianの初期状態では、公開鍵は「~/.ssh/authorized_keys」に配置します。また、authorized_keysファイルのパーミッションも下記のように設定します。接続元のクライアントごとに公開鍵を作成している場合は、作成するごとにauthorized_keysへ追加しておく必要があります。

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub
chmod 600 ~/.ssh/authorized_keys
ターミナルで公開鍵の配置とパーミッション設定を行う

 SSHの接続ソフトウェアとして、ここではTera Termを例に証明書のインストール方法を説明します。

 先ほど作成した秘密鍵(id_rsa)をTera Termが動作するPC側へ転送します。 少量のファイルの転送であれば、Tera TermのSSH SCP機能を利用して、ファイルの送受信が行えます。SSHで秘密鍵を作成したRaspberry Piへ接続し、「ファイル」から「SSH SCP」を選択します。

 ファイル選択画面が表示されたら、下段の「From:」へ「.ssh/id_rsa」と入力し、「Receive」ボタンを押し、秘密鍵(id_rsa)ファイルをダウンロードします。

 一度、Tera Termの接続を切断し、再度接続します。この時、「RSA/DSA/ECDSA/ED25519鍵を使う」をチェックし、「秘密鍵」ボタンを押して、先ほどダウンロードした秘密鍵(id_rsa)ファイルを指定します。「ユーザー名」を入力し、「パスフレーズ」には先ほどキーペアを作成する時に指定したパスフレーズを入力します。

Tera TermでSSH認証ダイアログ(クリックで拡大)

 ここからは証明書を使った接続になりますので、「OK」ボタンを押して、Raspberry Piへ接続できることを確認してください。

 最後に、パスワードでのSSH接続を無効化します。「/etc/ssh/sshd_config」設定ファイルをテキストエディタで編集します。

sudo vi /etc/ssh/sshd_config
ターミナルで設定ファイルの編集を行う

 「PasswordAuthentication no」を1行追加します。

テキストエディタで/etc/ssh/sshd_configを編集(クリックで拡大)

 変更を反映させるために、Raspberry Piを再起動します。


 後編では、セキュリティリスクになりえる不要なサービスの確認や、OSやソフトウェアの自動アップデート環境構築などを紹介します。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.