ESP32で自宅PCを2要素認証つきで遠隔起動、Wake-on-LANサーバー

外出先から自宅の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ライセンスのもと公開されている。

関連情報

Architecture diagram of an ESP32 server with HTTPS+2FA, port forwarding, distributing to a Target Machine, Local Network, Telegram Bot, and IP updates (DuckDNS).

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次