秋 NAS は俺に喰わせろ!

no extension

勤務先で LAN 上の NAS やクラウド・ストレージの構成を見直す動きが出ていて「そういや私が簡易 NAS を導入したのっていつだっけ?」と過去記事を漁ってみたら3年半も前だったよ。

その半年後に田舎に帰郷 (かえ) る羽目になったのだが,当時は Windows を捨てる準備に入ろうかというところで,バックアップと書き戻し用に(OS を跨いで)アクセスできる共有ストレージが欲しかったんだよね。

導入して良かった点は LAN 上の NAS とクラウド・ストレージ・サービスを連携させることで,そこそこ安全で快適な環境を手に入れられたことだろう。 とはいえ RAID 0 すら組んでない簡易設備でこのまま運用を続けるのはもう限界だろうと思い直したわけだ。

で,まぁ,あれこれ迷った挙句に買ったのは Synology DS220j ってやつ。 今回もドスパラさんのお世話になりました。 HDD 2基と3点セットになってるやつをポチった。

本当はポチってから数日あけて来ることを想定してたんだけど,金曜の夜にポチって中1日で(松江みたいな片田舎まで)届くとは思わざりき(笑)

秋 NAS 来た! | Flickr

ありがたいことに「NAS 初心者ガイド」という日本語の冊子がついていた。 これのおかげでセットアップ自体は比較的スムーズにできた。 ブラウザで Web Assistant を開いたときに最初はうまく検出できなかったくらい(ブラウザを立ち上げ直したら上手くいった)かな?

RAID (Redundant Arrays of Inexpensive Disks)

RAID は SHR (Synology Hybrid RAID) にした。 RAID 1 とかだと ストレージの容量やメーカーを揃える必要があるが, SHR はその辺は柔軟に運用できるらしい。

QuickConnect は無効にした

最初は Synology アカウントを取得して QuickConnect も使ってたんだが,どうにも気持ち悪いので QuickConnect はいったん無効にした。 Synology アカウントは有効にしてるので,必要になったらまた復活させればいいだろう。

VPN 接続は Tailscale を検討中…

Ubuntu ファイルマネージャから SMB サービスに入れない

Ubuntu 標準のファイルマネージャ(nautilus)は LAN 上の Windows 共有フォルダや Samba サービスを自動的に検出・表示してくれる。 DS220j も SMB (Server Message Block) が使えるので Windows ネットワークと同じように表示されるんだけど,クリックしても何故か入れないのよね。

なんやねん「無効な引数」て orz

これは現在に至るも改善しない(理由がわからないので)。 ただし mount.cifs でマウントはできるし /etc/fstab ファイルへの記述もちゃんと効いたので実害はない。 多分ファイルマネージャ側の問題なんだろうなぁ。 CIFS 経由で NAS に接続する方法は以下の通り。

ちなみに Android の FE File Explorer Pro からは普通に見れた。

Ubuntu から NFS サービスに入れない

Ubuntu に NFS クライアントを導入する。

$ sudo apt install nfs-common

DS220j 側の NFS サービスを有効化して Ubuntu からアクセスしようとしたが上手くいかない。 まぁ,考えてみたら当たり前で Kerberos を使ってアカウントのマッピングでもするのならともかく,家庭内 LAN ごときでそこまでしないし,しないなら見えなくても仕方ない。

セキュリティ フレーバー:

特定のユーザー アカウントで NFS を介して共有フォルダにアクセスする場合:

  • AUTH_SYS セキュリティが導入されている場合:クライアントは NFS クライアントと Synology NAS で全く同じ UID(ユーザー識別子)と GID(グループ識別子)を持っていなければなりません。そうしなければ、クライアントが共有フォルダにアクセスするときに、「others」という許可が割り当てられます。権限が競合しないように、[Squash] から [全ユーザーを admin にマップ] を選択するか、共有フォルダに「Everyone」権限を割り当てます。
  • Kerberos (krb5、krb5i、krb5p) セキュリティが導入されている場合:[ファイル サービス] > [NFS] > [NFS サービスの有効化] > [詳細設定] > [Kerberos の設定] の順にを選択して、NFS クライアントを特定のユーザーに割り当てなければなりません。または、相当するユーザー アカウントで Windows/LDAP ドメインに加わります。そうしなければ、クライアントが共有フォルダにアクセスするときに、「guest」という許可が割り当てられます。
  • 共有フォルダを作成する拡張デバイスのファイル システムが NTFS または FAT の場合は、[すべてのユーザーを admin にマップ] オプションが強制的に適用されます。

Synology NAS に接続するために Kerberos セキュリティを使用するには、[ファイル サービス] > [NFS] > [NFS サービスの有効化] > [詳細設定] > [Kerberos の設定] の順に選択して、Kerberos 認証が設定されていなければなりません。

というわけで,今回は 権限を「カスタマイズ」して Everyone 権限を追加・設定した。 複数人で使う場合は NFS は使わんほうがいいかもなぁ。

ちなみに /etc/fstab ファイルを使ってマウントする場合には

sy-nas:/volumeX/homes/username /home/username/nas-home nfs rsize=8192,wsize=8192,timeo=14,intr 0 0

などとすればよい。

Cloud Sync

パッケージ・センターから Cloud Sync をインストールしてクラウド・ストレージと連携できるようにした。

Cloud Sync は Google Drive, Dropbox, Box, Microsoft OneDrive あるいは Azure Storage, Google Cloud Storage, S3 storage といったメジャー・サービスはもちろん,一般的な WebDAV とも連携できるらしい。

さらに Cloud Sync では

てな感じに同期データの暗号化ができる。 具体的には Cloud Sync からアップロードする際に暗号化された状態でアップロードされる。 元々クラウド・ストレージ側に置いてあるファイルは暗号化の対象にならない。 暗号化ファイルは NAS 側では復号された状態で格納されており,クラウド・ストレージ側で暗号化されているか否かに関係なく透過的に扱うことができる。

クラウド・ストレージって便利で使い勝手がいいけど,他人のデータを覗き見る痴漢野郎がいるぢゃん。 Google とか Apple とか。 だから積極的には使わないようにしてたんだけど,これで踏ん切りがついたわ。

物置用のクラウド・ストレージ・サービスとして Google Drive をデータ暗号化した上で利用することにした。 これに伴い Google One有料プランへアップグレードした。

運用中の各種クラウド・ストレージ・サービスに置いてあるファイルを整理しないとな。

Git Server と SSH

パッケージ・センターで Git Server を見つけたのでインストールしてみたのだが…

どうやら SSH ベースのサーバのようだが

そもそも DS220j は管理者権限を持つアカウントしか SSH を使えないようになっている。 なので Git Server へのアクセス専用にグループとユーザを作成し,専用の共有フォルダを設定する必要がある。

更に言うとユーザ・ホーム・サービスを有効にしておく必要がある。

これがないと公開鍵認証ができないらしい。

まぁ,ぼちぼち進めるか。

【2021-10-30 追記】 Synology SSH に公開鍵認証でログインする

まずはおとなしくパスワード認証で入る。 前節で述べたように Git Server 用に専用のユーザとグループを作ってログイン可能な状態にすること(今回はユーザ:グループ名を git:git とした1)。

$ ssh git@sy-nas
git@sy-nas's password: 

ログイン直後のホーム・ディレクトリはこんな感じ。

$ pwd
/var/services/homes/git

$ ll
drwxrwxrwx+ 2 git  users 4096 Oct 30 00:00 .
drwxrwxrwx+ 9 root root  4096 Oct 30 00:00 ..

このままでは拙いので,ホーム・ディレクトリのパーミッションを変更する。

chmod 755 /var/services/homes/git

次にホーム・ディレクトリ直下に .ssh ディレクトリを作成する。

$ mkdir .ssh

$ ll
drwxr-xr-x  3 git  users 4096 Oct 30 00:00 .
drwxrwxrwx+ 9 root root  4096 Oct 30 00:00 ..
drwxr-xr-x  2 git  users 4096 Oct 30 00:00 .ssh

この .ssh ディレクトリ直下に authorized_keys ファイルを作り SSH 公開鍵を登録する。 ちなみに公開鍵は ECC 鍵が使える。 ECC 鍵を作ってサーバに登録する方法は以下の通り。

また SSH 鍵を GnuPG で作成・管理する方法は以下を参考にどうぞ。

.ssh ディレクトリおよび .ssh/authorized_keys ファイルのパーミッションに注意。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

これで適当なターミナルを立ち上げて

$ ssh git@sy-nas

でパスワード認証ではなく公開鍵認証が動き出したら成功である2(作業中の SSH セッションは維持しておくこと。しくじってアクセスできなくなったら困るからね)。

【2021-10-30 追記】 試しにリポジトリを作ってみる

Git Server 用に専用の共有フォルダを作る。 今回は gitrepos という名前で共有フォルダを作った。 前節の git ユーザで読み書きできるようにしておくこと(他のユーザはアクセスできなくてよい)。

さっそく gitrepos 共有フォルダに入ってみる。

$ ssh git@sy-nas
$ cd /volume1/gitrepos/
$ sudo chown git:git /volume1/gitrepos
$ chmod 755 /volume1/gitrepos

たぶん必須ではないが気持ち悪いので,所有者とパーミッションを変更して git ユーザ専用にした。 では,適当なベア・リポジトリを作ってみよう。

$ mkdir hello-repos
$ cd hello-repos/
$ git init --bare
Initialized empty Git repository in /volume1/gitrepos/hello-repos/

これで空のベア・リポジトリができた。 リモートから SSH 接続でリポジトリを clone するには

$ git clone ssh://git@sy-nas/volume1/gitrepos/hello-repos
Cloning into 'hello-repos'...
warning: You appear to have cloned an empty repository.

とすればよい。

次は Tailscale か?

これは次の休みにでもやってみることにしよう。 もともと Tailscale は興味があってやってみようとは思っていたのだ。

【2021-10-31 追記】 記事にしました。

ブックマーク

参考

photo
Synology NASキット 2ベイ DS220j クアッドコアCPU 512MBメモリ搭載 ライトユーザー向け 国内正規代理店品 電話サポート対応品 DiskStation
Synology (Release 2020-03-12)
Personal Computers
B0855LMP81 (ASIN), 4537694279369 (EAN), 0846504003440 (EAN), 846504003440 (UPC)
評価     

ドスパラで HDD 2基と3点セットで購入。家庭内 LAN で使うなら必要十分な性能。各種クラウド・ストレージ・サービスと連携可能。 Tailscale を含む各種 VPN と組み合わせることも可能。

reviewed by Spiegel on 2021-10-26 (powered by PA-APIv5)

photo
Western Digital ウエスタンデジタル 内蔵 HDD WD Red Plus NAS RAID (CMR) 3.5インチ WD40EFZX-EC 【国内正規代理店品】
ウエスタンデジタル(Western Digital) (Release 2021-02-05)
Personal Computers
B08V8LNR2H (ASIN), 4988755057738 (EAN)
評価     

Synology DS220j と併せて購入。

reviewed by Spiegel on 2021-10-26 (powered by PA-APIv5)

photo
Voice of Angel
太田貴子 (メインアーティスト)
SOLID RECORDS 2021-10-20 (Release 2021-10-20)
MP3 ダウンロード
B09GS5ZCHN (ASIN)
評価     

「太田貴子」としては31年ぶりのアルバムらしい。仕事中にヘヴィローテーションしてます。

reviewed by Spiegel on 2021-10-26 (powered by PA-APIv5)


  1. Git Server 用に作成したユーザを administrators グループにも所属させて管理者権限を付与すること。 ↩︎

  2. 複数ユーザで Git Server にアクセスしたいなら .ssh/authorized_keys ファイルに必要な数だけ公開鍵を登録する。 ↩︎