みなさんこんにちは。
先輩からRaspberry Pi 3B+を御馳走して頂いたので、自宅で使うためのセキュアなNASを調理していきます。
#環境と目標
- Raspberry Pi 3B+
- Raspberry Pi OS (Debian 10.4ベース)
- 500GB USB-HDD
- ファイル暗号化にはVeraCrypt
- ファイル共有にはSamba
LAN内にはWin10マシンとラズパイ、Androidスマートフォンがあり、各デバイスでNASにアクセス可能にする
#やってみよう
Raspberry Pi OSをインストールし、SSHでデフォルトユーザにログインした直後から話を進めていきます。
###前準備
まずはSambaをインストールします。
sudo apt install samba
Sambaを使用すると、WindowsやSMBプロトコルに対応したAndroidファイルマネージャなどでNASにアクセスできるようになります。
USB-HDDをマウントするためのディレクトリを作成します。
mkdir /home/pi/share
デバイス名はlsblk
で確認できます。
マウントしましょう。
sudo mount /dev/sda1 /home/pi/share
###Sambaの設定
続いてSambaの設定をしていきましょう。
/etc/samba/smb.conf がSambaの設定ファイルです。(念のためホームディレクトリ等にバックアップしておくことをお勧めします。)
Vimなどのテキストエディタで開くと、
workgroup = WORKGROUP
という行があるので
各自のワークグループ名を入力してください。
(LAN内のWindowsマシンでWin+Rキーを押して名前を指定して実行にてsysdm.cpl
で、確認できます。)
そして共有したいディレクトリを指定します。
smb.confの末尾に書きましょう。
[share] #表示名
path = /home/pi/share #共有したいディレクトリを入力
writable = yes
read only = no
force create mode = 777
create mask = 777
force directory mode = 777
directory mask = 777
以上でSambaの設定は終了です。
Windowsマシンのエクスプローラー > ネットワーク > RASPBERRYPI
からNAS内に読み書き可能なことを確認しましょう。
###Veracryptとは
AES等の暗号化アルゴリズムで暗号化されたボリュームを作成できるソフトウエアです。
パーティション自体も暗号化することができるという優れものです。
###実際にやってみましょう
Veracrypt自体はGUI、CLIどちらでも利用可能ですが、暗号化ボリュームの作成はGUIの方が分かりやすいと思うのでWindows側で進めていきます。
左上の「ボリューム」より、新規ボリュームの作成を選択します。
ここでは隠しボリュームを使用しないので、このまま次へをクリックします
ボリュームを作成する位置は、先程構築したNAS内にしましょう。
あまり大きな容量を指定するとRaspberryPiは非力なのでマウントする際に時間がかかるので容量は小さめにすることをおすすめします。
次のウィンドウで暗号化作業が始まり、完了するとNAS内に暗号化されたボリュームができていると思います。
SSHでの作業へ移ります。
###実は
Veracryptは標準のリポジトリには存在しません。(ソースコードの一部がオープンソースでないため)
なので、マウントにはZulucryptを使用します。(いちいち公式サイトに取りに行くのがめんどい)
sudo apt install zulucrypt-cli
インストールが終了したら、暗号化ボリュームをマウントするディレクトリも作成しておきましょう。
mkdir ~/volume
オープンとマウントを別々に行います。
sudo zuluCrypt-cli -O -d /(共有フォルダ)/(ボリューム名) -t vcrypt
パスワードを入力し、オープン終了までしばらく待ちます。
オープンが終了し、lsblk
で確認するとzuluCryptから始まるデバイス名が確認できると思います。
sudo mount -o uid=(uid) -o gid=(gid) /dev/mapper/(デバイス名) /home/pi/volume
でマウントします。
uidとgidはid
コマンドで確認できます。
###最後に
マウントした暗号化ボリュームをLAN上に共有してみましょう。
smb.confを開き、末尾に新しく設定を追加していきましょう。
[volume] #表示名
path = /home/pi/volume #共有したいディレクトリを入力
writable = yes
read only = no
force create mode = 777
create mask = 777
force directory mode = 777
directory mask = 777
sudo systemctl smbd nmbd
でSambaを再起動し、確認してみましょう。