
外出先から自宅のPCを起動したい。とはいえ、PCをつけっぱなしにするのは電気がもったいないし、外から操作できる口をインターネットに開けるのは、セキュリティが気にかかる。そんな課題に、開発者のCenturySturgeon氏が、ESP32で安全にPCを遠隔起動する「Esp32WOL」を公開した。
仕組みの軸はWake-on-LAN(WoL)だ。これは、ネットワーク越しに「マジックパケット」と呼ばれる信号を送り、対応するPCの電源を入れる仕組みである。Esp32WOLは、ESP32の上でHTTPSのWebサーバーを動かし、ブラウザからこのWoLを実行できるようにする。自宅のLAN内からはもちろん、ポート開放を設定すればインターネット越しにも使える。
特徴は、外部に公開する前提でセキュリティを固めている点にある。通信はすべてHTTPSで暗号化し、起動などの操作のたびに、認証アプリが出す6桁のワンタイムパスワード(TOTP)による2要素認証を求める。パスワードは強度の高い方式でハッシュ化し、ログインに5回失敗するとサーバーを自動で停止する。自宅の固定でない公開IPアドレスにはDuckDNSで追従し、IPの変化や各種の状態はTelegramのボットで通知する。
なお、ネットワーク内の機器をスキャンする診断機能は、悪用を避けるため、あらかじめ登録した機器だけを対象とし、結果はTelegram経由でしか返さない設計だ。動かすにはESP-IDFの環境と、PCのWake-on-LAN設定、そして公開IPアドレスが要る。コードはGitHubでBSD-3-Clauseライセンスのもと公開されている。

