Raspbianの初期状態では、スーパーユーザーの「root」がパスワードで保護されていません。この状態では全ての操作がパスワード無しで実行可能となってしまいます。
「root」のパスワードを「passwd」コマンドで変更します。
sudo passwd root
下記のように「updated successfully」と表示されれば、「root」のパスワードの変更は正常に完了しています。
SSHのログインには認証方式として、パスワード認証方式と公開鍵認証方式の2種類があります。 Raspbianの初期状態でSSHを有効にするとパスワード認証方式になり、パスワードのリスト型(辞書)攻撃などで容易にログインできるリスクが存在します。
SSHのログインをパスワード認証方式から公開鍵認証方式へ変更することで、リスト型攻撃などの対策になります。この項目では、具体的な証明書の作成、設定方法を説明します。
下記の「ssh-keygen」コマンドで、秘密鍵と公開鍵のキーペアを作成します。
ssh-keygen -t rsa
下記のように、途中で「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]-----+
秘密鍵(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)ファイルを指定します。「ユーザー名」を入力し、「パスフレーズ」には先ほどキーペアを作成する時に指定したパスフレーズを入力します。
ここからは証明書を使った接続になりますので、「OK」ボタンを押して、Raspberry Piへ接続できることを確認してください。
最後に、パスワードでのSSH接続を無効化します。「/etc/ssh/sshd_config」設定ファイルをテキストエディタで編集します。
sudo vi /etc/ssh/sshd_config
「PasswordAuthentication no」を1行追加します。
変更を反映させるために、Raspberry Piを再起動します。
後編では、セキュリティリスクになりえる不要なサービスの確認や、OSやソフトウェアの自動アップデート環境構築などを紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.