FreeNAS の SMB を説明してみる

FreeNAS の CIFS をもう少し説明してみるの焼き直しです。
(FreeNASのWindows用共有機能の名称がCIFSからSMBに変わったのですが特に対応していなかったので)

freenas_smb_01.jpg

FreeNAS の SMB といっても Samba なわけで、特別なことはないと思うのですが、よく考えたら、FreeNAS を使うまで Samba なんて使ったことがない人などもいるかもしれないし、それこそそのコストパフォーマンスから、FreeNASが初NASだったりする人もいるのだろうなあ、と思って、自分が普段設定するときのいつもの設定内容(FreeNAS 11.1 のインストール参照)だけでなくて、もう少し説明があってもいいかな、と思いました。

FreeNAS Documentation の 11.1 の 10.4. Windows (SMB) Shares の内容の抜粋に近いです。(あっちの説明は設定部分は Wizard 利用前提なので違いますが)


Windows (SMB) Shares の基本設定は、

freenas_smb_02.jpg

Services - SMB のところでできます。

freenas_smb_03.jpg

通常設定する部分は、

NetBIOS name: を既存のコンピューターと、下記のWorkgroup名と重複しないように15文字以下で決める(初期値はFreeNASのホスト名から生成される)ことと、
NetBIOS alias: エイリアスを15文字以下で設定できる。(任意)
Workgroup: は Windows の設定と合わせる(まんま「WORKGROUP」とか「MSHOME」とか。コンピュータのプロパティで確認してみてください)
DOS charset: CP932(日本語Windowsからアクセスする場合はコレ)

と設定してください。(FreeNAS Documentation 11.13. SMB

Description: は説明なので適当に。

共有する対象は、

Volume または、 Dataset か その中のフォルダになりますので、
適当に作成してください。

freenas_smb_04.jpg

Permission を GUI で設定できるので、共有フォルダごとに Dataset を作成して設定するのがお勧めなのではないかと思います。

freenas_smb_06.jpg

freenas_smb_07.jpg

初期設定はこんな感じ。

続いて共有フォルダ自体は、

Sharing - Windows (CIFS) Shares - Add Windows (CIFS) Share

から作成することでができます。

freenas_smb_05.jpg

ということで、オフィシャルのドキュメントにもあるありがちな設定パターンを紹介してみます。


■ アクセス制限なし

(誰でも読み書き)
ネットワーク内に自分以外のユーザーがいない、とか、小さなグループのネットワーク内の共有で、いちいちユーザー設定(アクセス権)なんて必要ない、という場合に利用するかと思います。

Volume を選択して、 Create Dataset
対象のDatasetを作成します。
オプションはデフォルトのままでもいいでしょう。

できたDatasetを選択して、Change Permissions で、
Mode: の Other の Write にチェックを入れます(アクセス制限なしなんだからぶっちゃけ全チェックでOK) Owner (user) Owner (group) はデフォルトのroot、wheelのままでOKです。(この共有しか作らなくてアクセス制御する必要がないのなら、Datasetも作成せずに、Volume自体を共有してFreeNAS上にいちいちユーザーを追加する必要もありません)

freenas_smb_08.jpg

Sharing - Windows (CIFS) Shares - Add Windows (CIFS) Share

から、Path に作成したDataset を指定して、
Name に任意の共有名を指定して、
Allow Guest Access: をチェックしてOKをクリックします。

freenas_smb_15.jpg

■ ドメインコントローラーでアクセス制限

すでにドメインコントローラーを立てている時点でここで説明する必要はないと思うので省略。 Windows の側で設定できたりするけど、Samba とドメインコントローラーでの間の不具合とかにも注意が必要。


■ FreeNASのユーザーとグループでアクセス制限


FreeNAS は Account のところでユーザーを作成したり、グループを作成したりできます。
ユーザーを作成する際に、自動的にユーザー名と同じグループを作成したりすることができます。このユーザーやグループを使用して共有フォルダへのアクセス権を設定することができます。

freenas_smb_16.jpg


その場合は、Add Windows (CIFS) Shareのところでは、
Allow Guest Access:
のチェックを外しておきます。


FreeNAS上に作成したユーザーと、Windows で使用しているユーザーアカウントとパスワードとが一致していると、共有フォルダにアクセスするときにいちいち聞かれないので便利ですが、Windows 側がマイクロソフトアカウントと統合してしまっていたり、日本語名のアカウントを作成してしまったりしていて同じものを設定できない場合は、共有フォルダに接続するときに表示されるダイアログで作成したユーザーとパスワードを指定して記憶させればいいです。登録されていないユーザーもこのユーザー名とパスワードが分かってれば同じ権限でアクセスできるわけです。(もっとも、それを区別するためにいちいち FreeNAS にユーザーを登録するのですけどね)

うまく設定できない、という記事を見かけましたが、「同一のユーザー名でパスワードの違うアカウント」があると一筋縄ではいかなくなります。そのような場合は、FreeNAS側の同一のユーザー名を削除して、明確に違うユーザー名を使うようにするか、Windows 側で、ユーザー名を変えて作り直すか、資格情報マネージャーを使って、Windows資格情報として、当該のFreeNASへアクセスするときのユーザーとパスワードを指定する方法でしょうか。資格情報を登録したらパソコンを再起動してから試してみてください。


freenas_smb_14.jpg


この辺は FreeNAS や CIFS 側の問題というより、Windows 8 以降のマイクロソフトアカウントとローカルアカウント側の問題なので割愛。


● 自分のみ読み書き、他には非公開

(自分専用)
ユーザー1人であれば、
Storage - Volumes - から
対象の Dataset を選択して、Change Permissions で、
Owner (user): にそのユーザーを指定します。
Mode: の Owner の Read/Write/Execute にチェックを入れ、
Group と Other は全てチェックを外します。

freenas_smb_09.jpg


家族や同僚から覗かれなくなります。


● 自分のみ読み書き、他には読み取り専用

(自分が管理者で、他の利用者に提供する。他の利用者はユーザー登録不要。ドライバ置き場など)
Owner (user): にそのユーザーを指定し、
Mode: の Owner の Read/Write/Execute にチェックを入れ、
Group と Other は Write のチェックを外します。

freenas_smb_10.jpg

freenas_smb_15.jpg

誰でもアクセスできるように、
CIFS Share の設定は Allow Guest Access をチェックします。


● 自分と、指定したユーザーのみ読み書き、他には非公開

(自分が管理者で、他の利用者の一部との間でのみ共有する。幹部用ファイルなど)
Owner (user): に自分ユーザーを指定し、
Owner (group): に許可するユーザーを指定するグループを指定します。簡単なのは、Owner (uesr) の名前のグループを使用することでしょうか。もちろん共有名のグループを作成する方法もあると思います。
Mode: の Owner/Group の Read/Write/Execute にチェックを入れ、
Other は全てのチェックを外します。

freenas_smb_11.jpg

また、自分以外のアクセスを許可するユーザーは、ユーザーを作成し、
そのユーザーの Auxiliary groups: で当該のグループ名を選択して「>>」で Selected にしておきます。

freenas_smb_12.jpg

(ユーザーグループ rei に登録してるところ)

自分専用のFreeNASの場合は、rootユーザーとrootのパスワードをWindowsに記憶させてそれでアクセスしている例も他のサイトでよく見かけますし、少人数のメンバー間であれば、rootのパスワード自体を共有することなどもあるでしょうが、一応、上記のような設定をして、それぞれのユーザーを作成するのがセオリーなんじゃないかな、と書いてみました。

とりあえずありそうなパターンを挙げてみましたが、こんな感じで、Dataset の Permission のチェックの入れ方と、user、group の設定、 CIFS の Allow Guest Access などでアクセス権を制御するのが FreeNAS の GUI でやる場合の方法ではないかと思います。

複数のグループやグループの入れ子で管理したい場合はこの設定の範囲では賄えません。
Samba と ActiveDirectory の連携もバージョンによってうまくいかなかったりすることがあります。

あくまで GUI の範囲で管理できる程度、というイメージで例を挙げてみました。

なお、Windows でアクセスする場合、アクセス権がキャッシュされているので、設定した内容が即反映されないせいでうまくいっていないものと思われることがあります。
そのような場合は、Windowsのコマンドラインで、

net use * /DELETE

を実行することで、キャッシュされていたアクセス権がリセットされます。
(うまくいかない場合は Windows を再起動)

■ 各パラメータの説明

上記で触れなかったパラメータも含め翻訳に挑んでみました。 画面は Advanced Mode の内容。(Basic Modeは項目が少なくなってるだけ)

freenas_smb_13.jpg

Table 10.4.1 Options for a SMB Share

Path Volume やその中に作成した Dataset やその中の Directory を指定します。実際に共有され、データが格納される場所です。アクセス権の制御を FreeNAS 上で行うためには、 Dataset を設定するのがいいと思いますが、特に制御する必要がない場合は Volume 自体や Directory でもいいでしょう。
Use as home share ユーザーごとにホームディレクトリを持たせることができますが、それを固定する設定です。共有1つのみ有効です。
Name 共有名です。
Comment 共有の説明です。(任意)
Apply Default Permissions アクセス権をowner/groupに読み書き、otherに対して読みの設定をします。すでに存在するファイルのアクセス権を上書きしてリセットしたいときなどに使うのがいいでしょうか。
Export Read Only 読み取り専用で公開します。
Browsable to Network Clients チェックを外すとWindowsのエクスフローラーなどでたどっても見えない共有フォルダにします。フォルダのフルパスを直接指定すれば開けます。(Windowsの「$」をつけた隠し共有に似ています)
Export Recycle Bin 削除する操作の時、ファイルを共有フォルダの直下に作成する隠しフォルダ .recycle に移動します。ネットワークごみ箱的なオプションです
Show Hidden Files Unix系の、「.」(ドット)で始まるファイル名のファイルにWindowsの隠し属性を設定しません。新たに作成されるファイルにのみ適用され、既存のファイルには無効です。
Allow Guest Access 全てのユーザーがパスワードなしで接続でき、その場合 SMB の Guest account: で指定したユーザーでアクセスしているかのように扱います。ユーザーアカウントとパスワードが一致するユーザーからのアクセスは Guest account ではなく扱われるので、この設定をする場合は、次の Only Allow Guest Access も同時に有効にしたほうがアカウント設定の混乱は避けられるかも知れません。
Only Allow Guest Access Allow Guest Access がチェックされている時に限り、全てのアクセスを Guest アクセスとします。
Access Based Share Enumeration 有効になっている時、ユーザーはアクセス権があるときに限り共有フォルダを見ることができます。デフォルトの Everyone のアクセスを変更する場合、WindowsのMMCか、 sharesec コマンドラインユーティリティを使用してください。アクセスベースの列挙、かな。
Hosts Allow 指定したホスト名かIPアドレスからのみ接続を許可します。カンマかスペースかタブで区切って複数指定が可能です。
Hosts Deny 指定したホスト名かIPアドレスからの接続を禁止します。特定のホストやIPアドレスのみ許可する場合は、こちらに「ALL」を指定して、Hosts Allow に許可するホストやIPアドレスを指定します。
VFS Objects 追加の仮想ファイルシステムモジュールを指定します。それぞれの項目の内容は割愛します。この部分が気になるような人はこの記事で設定とかするべきではないでしょう。
Periodic Snapshot Task すでに設定済みの Snapshot タスクがある場合、その設定をコピーして、この共有用に利用することができます。
Auxiliary Parameters 上記のオプションではサポートされていない smb4.conf で指定するようなパラメータを記述します。

トラックバック

このエントリーのトラックバックURL:
https://kirishima.it/mt/mt-tb.cgi/1657

コメントを投稿

( TypeKey にサインインせずにコメントされる場合は、オーナーが承認するまでコメントが表示されません。 他のMovableType系でも使えますので、TypeKey の取得を絶賛推奨します。)

About

2018年10月23日 22:29に投稿されたエントリーのページです。

ひとつ前の投稿は「FreeNASのVolumeの容量の拡大手順」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35
Powered by 鳥繁・COM