Raspberry Piとvolumioで音楽サーバーを構築する


2021/5/5 ファイアウォールの設定を追加しました。

目次

こんな人向け

  • ラズベリーパイでなにかしたいけど何から始めればいいかわからない
  • LAN上にファイルサーバーおいてみたい
  • 勉強がてらなにか作ってみたい

今回の目的(やること)

  • volumioと外付けHDDで音楽サーバーを構築する
  • 構築した音楽サーバーに外部ネットワークからアクセスし、ファイル管理や音楽再生を行う。

Raspberry Piの購入~構築

まずRaspberry PiとHDDを用意します。

Rasberry Piは、volumioの場合は以下のものがあれば十分です。

  1. 必須

    1. Rasberry Pi本体
    2. micro SD(64GB)
    3. 電源ケーブル
    4. スピーカー
    5. HDDとつなぐUSBケーブル
    6. LANケーブル
    7. SDカードリーダー
  2. あるとより良い

    1. ヒートシンク
    2. ハイレゾ機材
    3. ケース

判断に困ったらAmazonで各種セットが揃ってるものを買ってもいいです。
必須のもののうち、5~7以外とハイレゾ機材以外は揃います。

volumio構築

初めに、SDカードのフォーマットをします。
SD card Formatter(https://www.sdcard.org/ja/downloads-2/formatter-2/)を使いましょう。

その後は、https://volumio.org/get-started/からvolumioのimgファイルを落とし、
balenaEtcher等でSDカードに書き込みを行います。

volumio初期設定

ラズパイにLANケーブルを指し、電源をつけましょう。

その後volumio.localへとアクセスすると、下記のような初期設定画面が表示されます。
(画像はstep2です)

step1
言語設定

step2
volumioにアクセスする際のURLを設定します。
今回は初期設定のまま変えません。

step3

ラズパイのデジタル音声信号をアナログへと変換する際の設定です。
DACがある場合はそれらを選択。
機材がないならそのまま進みましょう。

step4

このままNextで次に進みます。

翻訳した文章は以下です。

ユーザーエクスペリエンスを調整しましょう

簡素化されたオプションセットのみを備えた
使いやすいシステムを好むのか、
それともすべての高度な機能を完全に制御したいのか

この設定は、後でシステム設定で変更できます

オプションのフルセットが欲しい

step5
ネットワークへの接続です。
無線LANを使っている場合、自分の使っているものを使用してください。

step6
自前のファイルサーバー等がある場合、ここから選択できます。

step7
volumioが気に入ったら寄付しましょう。

volumioの設定を変更する

上記で最低限の設定は終了しました。

しかし、Raspberry Piはデフォルトの状態ではセキュリティが強固とは言えず、万が一侵入を許した場合データを盗み見られたり攻撃に使われる可能性もあります。
そのため、ファイルサーバーとしてのvolumioの設定をするのと並行で、
セキュリティ強化も行っていきます。

volumioのIPアドレス固定

サーバーとして扱うため、IPアドレスは固定している方が望ましいです。
再生するだけならvolumio.localへとアクセスすれば良いですが、ネットワークからvolumioに音楽を入れるときにいちいちIPアドレスを調べてsambaにアクセスするのは面倒です。

volumio.localへとアクセスし、設定のネットワークから、自動IPをOFFにします。
固定IPアドレスに192.168.XX.YY
ゲートウェイに、ルータで使用しているIPアドレスを入れます。
XXにはルータで使用しているのと同じ数字を入れてください。
コマンドプロンプトからipconfigで出力されるデフォルトゲートウェイのところと同じです。
YYには2~254のうち、他のネットワークで使用されていない任意の数字を入れてください。

SSH通信によるteratermでの接続を可能にする

このあと行う各種設定のために、まずはteratermからログインできるようにする必要があります。
ただし初期設定ではteratermによるSSHログインはできません。
http://volumio.local/dev
にアクセスして、sshをENABLEにしましょう。
teratermから入るときは、
ホスト:固定したIPアドレス
ユーザ名:volumio
パスフレーズ:volumio(あとで変更します。)

テキストエディタの導入

次に、設定ファイルを編集するためのエディタを入れます。
apt-get update
apt-get install vim(vimのかわりにnanoでも可)

volumioのPW変更

下記コマンドを実行して、デフォルトのパスワード(volumio)から新しいパスワードへと変更します。

sudo passwd volumio

smb.confの設定(sambaにパスワードをかける)

teratermで以下のファイルを開きます・
sudo vi /etc/samba/smb.conf
各セクション([]で囲まれているやつ)のguest okをnoへと変更。
以下に例を示します。

[USB]
        comment = Volumio Internal Music Folder
        path = /mnt/USB
        read only = no
        guest ok = no #デフォだとyesのため、noへと変更する

その後、下記コマンドを実行して任意のユーザーにsambaにアクセスする権限

pdbedit -a USERNAME #入力後、sambaに入るためのパスワードを入力。

ファイアウォールの起動

このままではWi-Fiに接続している人なら誰でもvolumio.localにアクセスできてしまいます。
特定のIPアドレスからの接続のみ許可しましょう。

sudo ufw status # 現在のファイアウォールの確認 inactiveと出力されるはず
sudo ufw enable # Filewallの起動
sudo ufw allow from 192.168.xx.xx # 接続を許可したいIPアドレス

ファイアウォールの初期設定では許可していないものは弾きます。

ファイル再生できることを確認

volumio.localにアクセスし、ラズパイ(もしくはラズパイに接続したHDD)の音楽ファイルが再生できれば設定はひとまず終了です。

今後について

セキュリティはまだ完全ではありません。
今後設定するとすれば以下のものが考えられます。
用途に合わせてセキュリティを強固にしましょう。

  • 公開鍵認証の設定
  • ポート番号の変更