Edited at

Raspberry Piを使ってファイルサーバーを立てる

More than 1 year has passed since last update.

備忘録。(参考)


環境


  • Raspberry Pi3 Model B


    • raspbian jessie 4.9.35-v7+ #1014



  • MicroSD 8GB

  • AirMac Timecapsule


手順


Sambaのインストールと設定

sudo apt-get install samba


smb.confの設定

sudo vim /etc/samba/smb.conf

[global]に以下を追記します。


smb.conf

interfaces 192.168.1. 127.0.0.1/8 wlan0

bind interfaces only = yes
hosts allow = 192.168.1. fe80::/10
security = user

interfacesのIP(192.168.1.)およびIF名(wlan0)は環境の構成に合わせて変更してください。

今回はRaspberry Pi本体が無線LANに接続しているのでwlan0を指定しています。(IF名はifconfigで確認してください。)

hosts allowの記述は手元のMacがIPv6で接続しようとしたらしく、それが原因で弾かれていたようなのでfe80::/10を追記しました。

次にsmb.confの末尾に以下を追記します。


smb.conf

[public]

comment = Public
path = /home/samba/public
public = yes
read only = no
browsable = yes
force user = pi

force userのユーザーは適宜Raspberry Piで使用しているログインユーザー名に変更してください。


共有ディレクトリの作成

sudo mkdir /home/samba

sudo mkdir /home/samba/public
sudo chown pi /home/samba/public

chownのユーザーは適宜Raspberry Piで使用しているログインユーザー名に変更してください。


Sambaの再起動

参考サイトではserviceを使っていますが、Raspbianではうまくいかないのでsystemctlを使用して個別に再起動してください。

sudo systemctl restart smbd

sudo systemctl restart nmbd


ufwのインストールと設定(任意)

sudo apt-get install ufw


ufwの設定

インターネットに接続しているのにファイアウォールを設定していないというノーガード状態だったのでついでに実施しました。

(同一ネットワーク内からのアクセスのみ許可。)

ufw allow from 192.168.1.0/24 to any port 137

ufw allow from 192.168.1.0/24 to any port 138
ufw allow from 192.168.1.0/24 to any port 39
ufw allow from 192.168.1.0/24 to any port 445

homebridgeなど、他にポートを使っている機能があればallowするのを忘れずに!

ufw allow from 192.168.1.0/24 to any port 22

また、下記のように再設定用のシェルを用意しておくと楽かもしれません。


reconfig_ufw.sh

#!/bin/sh

# 初期化
ufw reset
# SSHの許可
ufw allow from 192.168.1.0/24 to any port 22
# Sambaの許可
ufw allow from 192.168.1.0/24 to any port 137
ufw allow from 192.168.1.0/24 to any port 138
ufw allow from 192.168.1.0/24 to any port 39
ufw allow from 192.168.1.0/24 to any port 445
# Homebridgeの許可
ufw allow from 192.168.1.0/24 to any port 51826
# 定義再読み込み
ufw enable
ufw reload

pi@raspberrypi:~ $ sudo ./script/reconfig_ufw.sh 

Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user6.rules' to '/lib/ufw/user6.rules.20170717_050548'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20170717_050548'
Backing up 'user.rules' to '/lib/ufw/user.rules.20170717_050548'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20170717_050548'
Backing up 'before.rules' to '/etc/ufw/before.rules.20170717_050548'
Backing up 'after.rules' to '/etc/ufw/after.rules.20170717_050548'

Rules updated
Rules updated
Rules updated
Rules updated
Rules updated
Rules updated
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Firewall reloaded


ufwの再起動

sudo systemctl restart ufw


接続


Macの場合


  1. Finderを開いてcommand + K

  2. サーバーアドレスにsmb://Raspberry PiのIPを入力して「接続」をクリック。(Avahiが入っているのならばsmb://raspberrypi.localでもOK)

  3. ユーザー認証を求められるので「ゲスト」を選択

  4. ディレクトリが表示されるので「public」を選択

  5. ディレクトリが表示されたらOK


Windowsの場合



  1. Win + Eでエクスプローラーを開く

  2. 「ネットワーク」を選択

  3. 「RASPBERRYPI」をダブルクリック

  4. 「public」をダブルクリック

  5. フォルダの中身が表示されればOK


転送速度

Rasberry Piの接続形式がIEEE802.11b/g/nなので転送速度は1.2MB/s程度が限界のようです。

まあメインはAirMac側のHDDなので十分ではありますが。

Raspberry Piのボードが11ac/USB3に対応したらUSB-HDD/SSDを繋げて本格的なNASも作れそうです。