Raspberry PiでUSBメモリ(複数パーティション)のユーザ認証NAS(samba)を作る

“Raspberry PiでUSBメモリ(複数パーティション)のユーザ認証NASを作る”と題して今回はNASのストレージをMicro SDではなく、外付けのUSBメモリを使います。更にパーティションを2つにして使いたいと思います。ついでにセキュリティ面も考えてユーザー認証も導入しちゃいます!もちろん自己責任でお願いします。

関連

Amazon.co.jp – Raspberry Pi 3 Model B (Element14)

Raspberry.png
Raspberry PiのMicro SDを使わず、USB Memoryを使う。

はじめに

こちらで紹介する記事はRaspbianという設定ですが、Deibian系であればほとんど設定は同じ(Ubuntu Meteとか)。Raspbianのインストールは方法などにつきましてはこちらで紹介しません。Vimなどをあらかじめインストールしておくと便利かもしれないです。GUI操作ならLeafpadとかGeditとか使ってもいいかも。

Vimの編集例

$sudo vi /home/pi/system.conf

Leafpadの編集例

$sudo leafpad /home/pi/system.conf

Geditの編集例

$sudo gedit /home/pi/system.conf

使いやすい方をお使いください。私はVimを使います。もしGeditが使いたいならばvigeditに変更して実行してください。

USBメモリのパーティション設定

今回はUSBのパーティションを2つにして使いたいのでパーティションを編集する必要があります。別にCUIでもできるのですが、こればかしはGUIで編集した方がイージー!Ubuntuで有名なGPartedを使って編集します。

$sudo apt-get install gparted
$sudo gparted

USBメモリーは多分”/dev/sda”の方を編集します(それぞれの環境で違うので確認してください。通常はsdaですが)。MicroSD(“/dev/mmcblk0”)の方は絶対に編集しない方がいいです。システムはext4を使います。フォーマットするので一度中身を確かめてくださいね。

GParted.png
こんな感じで編集

IPアドレスの固定

設定済みの方はいいのですが、通常はDHCPからの取得になっていることがほとんどなのでIPアドレスを固定します。固定しないとNASのIPアドレスがちょいちょい変更されて接続できない事態が発生するからです。

私はWi-Fiモジュールを使って通信しているのでLANケーブル使ってる人と若干違うと思いますがあまり設定は変わらないので問題ありません。LANケーブル使用の場合は”iface eth0 inet static”にしてください。IPアドレス設定についてもお使いのルータに合わせて設定してください。

router.png
ルータとRaspberry Piの関係

$sudo vi /etc/network/interfaces
#変更前
#   iface wlan0 inet manual
#変更後
iface wlan0 inet static
address 192.168.11.200
netmask 255.255.255.0
gateway 192.168.11.1

アカウントの追加とグループ設定

セキュリティ認証を有効にするためにNAS専用のアカウントを作ります。別にアカウントが必要ないのであれば問題はありません。piをそのまま使えばいいと思います。ここではユーザー名を”panama“としてグループ名を”banana“にします。

group_panama.png
こんな感じ

$sudo adduser panama

ここでいろいろ聞かれますがFull NameだったりRoom Numberはエンターで飛ばしてもかまいません。次にグループを作ります。

$sudo groupadd banana

次にユーザー”panama“をグループ”banana“に追加します。piもグループに参加すると良いと思います。

$sudo usermod -G banana panama
$sudo usermod -G banana pi ←任意です。piでもNASをいじることができる。

USBメモリのマウントとその設定

USBメモリをマウントしてNASとして使えるように設定します。パーティションが2つ(“sda1” and “sda2”)があるので確認してから一度アンマウントします。

$dmesg | tail
$sudo umount /dev/sda1
$sudo umount /dev/sda2

続いてマウント先のフォルダを作成します。

$sudo mkdir /mnt/banana1 ←/mntにフォルダbanana1を作成
$sudo mkdir /mnt/banana2
$sudo chgrp banana /mnt/banana1 ←フォルダbanana1の所有権をグループbananaに変更
$sudo chgrp banana /mnt/banana2
$sudo chmod 770 /mnt/banana1 ←フォルダbanana1の読み書き権限をグループまでに制限
$sudo chmod 770 /mnt/banana2

再起動しても自動でUSBメモリをマウントするように設定します。

$sudo vi /etc/fstab
#以下を追加します
/dev/sda1     /mnt/banana1  ext4     defaults      1  0
/dev/sda2     /mnt/banana2 ext4     defaults      1  0

再起動してみて実際に自動でマウントされているか確認してみてください。

NASを設定する

今回はSambaを使ってNASとして使う。初めにSambaをインストールする必要があります。

$sudo apt-get install samba

また対象のフォルダに読み書きのアクセス権限を与えるために以下を実行します。

$sudo mkdir /mnt/banana1/smb1
$sudo mkdir /mnt/banana2/smb2
$sudo chgrp banana /mnt/banana1/smb1
$sudo chgrp banana /mnt/banana2/smb2
$sudo chmod 770 /mnt/banana1/smb1
$sudo chmod 770 /mnt/banana2/smb2

次にSambaのConfigをいじる。[global]の下に以下を追加する。また設定が正しいか確認すること。更に一番下の行に追加する。

$sudo vi /etc/samba/smb.conf
[global]
#追加
dos charset = CP932
display charset = UTF-8
dos charset = UTF-8
load printers   = no
security = user
#確認
workgroup = WORKGROUP
map to guest = bad user

#一番下に追加
[banana1]
path = /mnt/banana1/smb1
browseable = yes
writeable = yes
valid users = @banana
create mask = 770
directory mask = 770
guest ok = no

[banana2]
path = /mnt/banana2/smb2
browseable = yes
writeable = yes
valid users = @banana
create mask = 770
directory mask = 770
guest ok = no

$sudo /etc/init.d/samba restart ←sambaを再起動する。
$sudo smbpasswd -a panama ←Samba用のパスワードを設定する。

Windowsからアクセス

続いてWindowsからアクセスを行ってみる。画像にあるpanamaを無視してbanana1とbanana2が無事に作成されていることがわかる。右クリックでネットワークドライブに追加しましょう。

2016-05-18.png
アドレスバーに”\\192.168.11.200″を入力

ユーザ認証があるので先ほど設定したSambaのユーザパスワードを入力します。

2016-05-18 (4).png
セキュリティ

ログインするとこんな感じで見ることやファイルを作成することができます!

2016-05-18 (5).png
ログインすると・・・

あとがき

パスワード無しだともっと簡単に作れるんですけど、やっぱりローカル内とはいえどもAP乗っ取られたら大変ですからね一応パスワードで保護できる!みたいなことができればいいなと思って今回作ってみました。まぁいろいろと面倒ならAPだけをローカルルータとして設定して隔離してしまえばこちらはパスワード無しでもいけると思いますよ。不明な点だったり、間違ってるという点があればコメントにどうぞ。

以上

関連

Amazon.co.jp – Raspberry Piで遊ぼう! 改訂第4版

広告

名前とアドレスは任意です。ご自由にコメントを。

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中