—– 隠し共有にランダムなパスワードを設定するアップデート —–

 Raspbian Jessie ベースのVPNpi (VPNpi-160912.img 以降)には隠し共有( \\vpnpi1000\private )にアップデートファイル( update.tgz )を置くと自動でアップデートする機能が組み込まれています。

 この機能、リリースした後から機能追加や不具合修正ができるので大変便利な仕組みなのですが、非常に危険なシロモノでもあります。アップデートはroot権限で実行されるので仕込めば何でもできてしまいます。
 隠し共有ってのも自分一人で使っている分には便利な機能ですが、これだけマニュアルに書いてしまうと「公然の秘密」、見えないだけで隠していることにはなってないです。
 「信頼できるLAN内で使っている分には大丈夫」で始まったVPNpiですが最近のように毎日ダウンロードして頂ける(ラズパイ人気恐るべし)ところまでメジャー?になってしまうと標的型攻撃ウイルスでも作られて公然の隠し共有に悪意のアップデートファイル送り込まれたらイチコロですので対策として隠し共有にパスワード付けることにしました。

以下、アップデート方法です。

0)パスワード生成機能必須です。VPNpi-160912.img をアップデートする場合は事前にこちらのアップデートを適用してください。(トップページ http://vpnpi1000.local/ にアクセスしてパスワード自動生成があれば適用済みです)

1)update-smbpw.tgz(4KB) をダウンロードし、隠し共有 ¥¥vpnpi1000¥private にコピーしてから update.tgz にリネームします。

2)10分以内に自動アップデートが始まります。

3)アップデートは下記内容を実行します。
−1.ImageMagickパッケージをインストールします(B+で10分程度かかります)
−2.pwgenでランダムなパスワードを生成し /home/pi/.ssh/smbpw.txt に保存します。
−3.pdbedit でpiを −2.で生成したパスワードでSAMBAユーザーに追加します。
−4.隠し共有の内容を変更した設定ファイルに入替えSAMBAサービスを再起動ます。
−5. −2.のパスワードを画像化しブラウザからも見える\\vpnpi1000\system に置きます。

4)アップデート後は上記の隠し共有にアクセスするとユーザー名とパスワードを要求されます。

 隠し共有( \\vpnpi1000\private )のユーザー名は pi でパスワードは管理画面 http://vpnpi1000.local/CTRL/ の「動体検知記録」リンク先の smbpw.png をクリックすると表示されます。人間以外には読み難い画像ですが絶対に読めないわけではないのでパスワードを確認しましたら共有フォルダ\\vpnpi1000\system\ から smbpw.png を削除してください。

 SAMBAユーザーに pi を追加したことにより、pi のホームディレクトリもSAMBA共有で利用できるようになります。( pi のログインパスワードとSAMBA共有のパスワードは同期していません。それぞれホームディレクトリの.ssh/にpw.txtとsmbpw.txtに保存されています。)

 このアップデートではサーバー本体の再起動はありませんのでVPN通信等への影響はありませんが、NAS機能を使っている場合にはアップデート中に共有接続が切断されますのでご注意ください。