ラズパイを使い始めるときに最初にすべきこと(スリープオフ、ウォッチドックタイマー、SSHなど)

IoT

ラズパイを購入してセットアップした状態はデフォルトの状態で、セキュリティ面や作業面で実施しておくべき作業があります。筆者の備忘録も兼ねてご紹介させていただきます。これでは全然足りない!という場合はぜひコメントいただけるとうれしいです!

各種ライブラリの更新

ラズパイのOSはRasberry Pi Imagerなどからダウンロードするわけですが、そのOSが公開されてから現在までにライブラリ等が更新されている場合もあるので、何はともあれ更新します。おなじみのコマンドです。

sudo apt update
sudo apt upgrade

画面スリープのオフ

ラズパイはデフォルトでは、スリープモードがオンになっています。そのため、一定時間たつとスリープモードが動作し、外部からの情報を取得できなくなってしまいます。そのためスリープモードをOFFにする必要があります。以下のようにして実行します。

  1. autostartを開く
    sudo nano /etc/xdg/lxsession/LXDE/autostart
  2. 下記を追記
    #スクリーンセーバをオフ
    @xset s off
    #X serverをオフ
    @xset s noblank
    #DPMS(Display Power Management Signaling)をオフ
    @xset -dpms 

フリーズ時の自動再起動(ウォッチドックタイマーの設定)

ラズパイはプログラムを長時間動作させることが多いので、何らかの原因でフリーズする可能性もあります。またモニターやキーボードを接続しないことも多いので、フリーズしたら自動的に再起動してくれると便利ですよね。そこで役に立つのがウォッチドックタイマーです。

  1. ウォッチドックタイマーの有効化設定
    以下のファイルを編集し、一行を追加します。
    sudo nano /boot/config.txt
    dtparam=watchdog=on #config.txtに追記 

    dtparam=watchdog=onの”=”の前後にスペースを入れると機能しないので注意してください。以下全部同じです。
  2. カーネルモジュールの設定
    以下のファイルを新規作成(下記の設定で10秒以内にハートビート(正常動作を示す信号)が来ない時は、システムが異常であると判定する。)
    sudo nano /etc/modprobe.d/bcm2835-wdt.conf
    options bcm2835_wdt heartbeat=10 nowayout=0 
  3. ハートビートを行う機能の有効化設定
    以下のファイルをファイルを編集し、一行追加します。(5秒以内の間隔でハートビートを行う)
    sudo nano /etc/systemd/system.conf RuntimeWatchdogSec=5
  4. 再起動
    sudo reboot
  5. (動作確認1)ウォッチドックタイマーが動作しているかチェック
    dmesg | grep bcm2835-wdt
  6. (動作確認2)意図的にフリーズさせて動作確認。
    下記のフォークボムコマンドを実行します。自動的に再起動されればOK
    :(){ :|:& };:

SSHの設定

  1. IPアドレスを固定
    通常の家庭用ルータのDHCPサーバの設定では、プライベートIPアドレスは動的に割り当てるようになっていると思います。ただ、今回はラズパイに通常のPCからSSHでアクセスして、プログラムを実行する必要があります。もしSSHを使わずにやろうとすると、ラズパイ設置予定箇所まで、モニターとキーボードとマウスを持っていってプログラムを実行し、その後それらを外すというとても面倒なことになります。その後プログラムを変更したくなったときも同様。大変です・・・。
    SSHをするためには対象デバイスのIPアドレスが分かっている必要があるので、DHCPによって変更されないように固定する必要があります。以下のように固定します。
    1. dhcpcd.confを開く
      sudo nano /etc/dhcpcd.conf
    2. dhcpcd.confの一番下に以下の内容を追記する
      interface wlan0 #WiFiを使う想定
      static ip_address=192.168.21.10/24 #ラズパイに使いたいIPアドレス."192.168.21"はネットワークアドレスで事前にifconfigで調べておく。「10」はラズパイのアドレス。使用されていないアドレスを使う。
      static routers=192.168.21.1 #デフォルトゲートウェイ。おそらく192.168.xx.1."ifconfig"で調べられる
      static domain_name_servers=192.168.21.1 #DHCPサーバのIPアドレス。おそらく192.168.xx.1 
    3. 設定反映のため再起動
      reboot
  2. SSHでのアクセス(パスワード認証)
    アクセス元のPCからSSHでラズパイにアクセスします。そのときのコマンドは以下になります。
    ssh ユーザ名[at]192.168.21.10 #[at]は@のことです。ポート番号はデフォルトの22を想定しています。
    このあとラズパイのセットアップ時に設定したパスワード入力を求められるので、それを入力すればラズパイにログインできます。
    従来、ユーザ名は”pi”でしたが、最近のOSのバージョンでは、セットアップ時にユーザ名も指定することになっていました。この方がセキュリティ的に安心ですね。
  3. 公開鍵認証を使ってログインに変更(オプションですが、推奨)
    パスワード認証は簡単ですが、ユーザ名・パスワード・IPアドレスを知っていれば誰でもアクセスできるので、ルータから不正アクセスされた場合は、ラズパイにログインされてしまいセキュリティ上の問題が発生します
    そのため、よりセキュリティを強固にするために公開鍵認証に変更することをおすすめします。これは主にアクセス元のPCでの作業になりますが、以下のページの「④SSHを公開鍵認証に変更」を参照してください。
    買ったらまず実施!RaspberryPiのセキュリティ対策

参考ページ

コメント

タイトルとURLをコピーしました