TrueNAS SCALE の SMB 設定

TrueNAS SCALE は SMB の設定が結構変わっているのですが、初期セットアップ時に設定した共有フォルダしか使っていなかったのであんまり情報まとめてないままだったので、そろそろまとめてみようかと、まずは公式ドキュメントを参考にしようと、とりあえず翻訳してみました。


Windows Shares (SMB)

https://www.truenas.com/docs/scale/24.04/scaletutorials/shares/smb/
このコンテンツは、TrueNAS SCALE 24.04 (Dragonfish) のリリースに従っています。異なる TrueNAS ソフトウェアまたはメジャー バージョンに固有のコンテンツを表示するには、上記の製品およびバージョンのセレクタを使用します。

ウィンドウズ・シェア(SMB)
21分で読める 最終更新 2024-04-02 11:19 EDT

Windows(SMB)共有について


SMB(CIFSとしても知られる)は、Windowsのネイティブなファイル共有システムです。SMB 共有は、Windows、MacOS、Linux など、ほとんどのオペレーティングシステムに接続できます。TrueNAS は、SMB を使用して、1 人または複数のユーザーやデバイス間でファイルを共有できます。

SMB は、Windows やその他のシステムで、さまざまな権限、セキュリティ設定、高度な権限 (ACL) をサポートし、Windows Alternate Streams や Extended Metadata もサポートしています。SMB は、大規模または小規模のデータ プールの管理と運用に適しています。

TrueNAS は、Samba を使用して SMB サービスを提供します。SMB プロトコルには複数のバージョンがあります。通常、SMB クライアントは、SMB セッション ネゴシエーション中に、サポートされている SMB プロトコルの中で最も高いプロトコルをネゴシエートします。業界全体では、SMB1 プロトコル (NT1 と呼ばれることもあります) の使用は、セキュリティ上の理由か ら推奨されていません。

SCALE 22.12 (Bluefin) 以降では、TrueNAS は、ベンダーによってサポート終了またはサポート終 了と表示されている SMB クライアント OS をサポートしません。つまり、MS-DOS (Windows 98 を含む) クライアントなどは、TrueNAS SCALE SMB サーバーに接続できません。

TrueNAS が SMB 機能に使用しているアップストリームの Samba プロジェクトは、4.11 リリースで SMB1 プロトコルは非推奨であり、今後のリリースでプロトコルの一部がさらに削除される可能性があると警告しています。管理者は、SMB1 プロトコルを使用しているクライアントを環境から段階的に削除するように努め る必要があります。

しかしながら、ほとんどのSMBクライアントは、デフォルトでない場合でも、SMB 2または3プロトコルをサポートしています。

注意
レガシー SMB クライアントは、NetBIOS 名前解決に依存して、ネットワーク上の SMB サーバーを検出します。TrueNAS は、デフォルトで NetBIOS ネーム サーバー (nmbd) を無効にします。この機能が必要な場合は、Network > Global Settings 画面で有効にします。

MacOS クライアントは、mDNS を使用して、ネットワーク上の SMB サーバーを検出します。TrueNAS は、デフォルトで mDNS サーバー (avahi) を有効にします。

Windows クライアントは、WS-Discovery を使用して SMB サーバーの存在を検出しますが、Windows ク ライアントのバージョンによっては、デフォルトでネットワーク検出を無効にすることができます。

ブロードキャスト プロトコルによる検出は便利な機能であり、SMB サーバーにアクセスするために必 要な機能ではありません。

管理者アクセスの共有


SCALE は FIPS セキュリティハードニングスタンダードに準拠するため、管理者ロールを実装しました。共有管理者ロールは、新規共有とデータセットの作成、データセット ACL 権限の変更、および共有サービスの開始/再起動を許可しますが、新規または既存のユーザーに共有管理者ロールを付与するためにユーザーを変更することは許可しません。

フル管理者ユーザーは、共有およびユーザーアカウントの作成/変更に対するフルアクセスコントロールを保持します。

SMB共有を追加するには?


システムにSMB共有を作成するには、共有を追加して動作させるためにいくつかのステップが必要です。

1. SMB共有のユーザーアカウントを作成します。Active DirectoryやLDAPのようなディレクトリサービスを使用して、追加のユーザーアカウントを提供することもできます。外部のSMB共有をセットアップする場合は、Active DirectoryやLDAPを使用するか、最低でもシステム間でユーザーアカウントを同期することをお勧めします。

2. SMB共有とデータセットを作成する。基本的なSMB共有を作成することもできますが、より特殊な共有タイプや機能要件については、共有を保存する前に詳細オプションの説明を使用してください。

データセットの追加画面でデータセットと共有を作成することも、SMB共有の追加画面で共有とデータセットを作成することもできます。この記事の手順では、共有を追加しながらデータセットを追加する手順を説明します。

3. 共有のアクセス許可を変更します。共有のユーザーアカウントを追加または変更した後、データセットのアクセス許可を編集します。

共有を追加したら、サービスを開始し、他のシステムにマウントします。

SMB 共有ユーザー アカウントの作成


重要
SMB 共有を作成する前に、TrueNAS が Active Directory に参加しているか、少なくとも 1 人のロー カル SMB ユーザーを持っている必要があります。SMB ユーザーを作成するときは、Samba Authentication が有効になっていることを確認します。root ユーザー、TrueNAS 組み込みのユーザー アカウント、または Samba Authentication が選択されていないユーザー アカウントを使用して SMB 共有にアクセスすることはできません。

ユーザーを追加または編集するには、Credentials > Local Users に移動して、SMB 共有ユーザーを追加ま たは編集します。[Add]をクリックして、新規または必要な数の新規ユーザアカウントを作成します。

各必須フィールドに値を入力し、Samba Authentication が選択されていることを確認してから、[保存]をクリックします。フィールドとユーザーの追加の詳細については、ユーザーアカウントの作成 を参照のこと。

デフォルトでは、全ての新しいローカルユーザーは、builtin_users と呼ばれる 組み込みグループのメンバーである。グループを使用して、サーバ上のすべてのローカル・ユーザにアクセス権を付与したり、さらにグループを追加して多数のユーザのアクセス権を微調整したりすることができます。

なぜ共有への匿名アクセスを許可しないのですか?

LDAPユーザーについてはどうですか?

SMB共有とデータセットの追加


Add Dataset画面でデータセットを作成中にSMB共有を作成することも、Add SMB Share画面で共有を作成中にデータセットを作成することもできます。この記事では、Add SMB Share画面でデータセットを追加する方法について説明します。

重要
SMBおよび/またはNFS共有には、プール全体ではなくデータセットを使用するのがベストプラクティスです。プール全体を共有すると、必要に応じて後でアクセスを制限することが難しくなります。

ZFSデータセット設定のデフォルトは?

基本的なWindows SMB共有とデータセットを作成するには、[Shares]に移動し、[Windows Shares (SMB)]ウィジェットの[Add]をクリックして[Add Share]画面を開きます。

SMB基本オプションの追加
図1:SMB基本オプションの追加

1. SMB共有のマウントパス(この共有のデータセットを追加する親データセット)を入力または参照し て選択し、[Path]フィールドに入力します。[Path]は、TrueNAS が SMB プロトコルでエクスポートするローカル ファイル システム上のディレクトリ ツリーです。

ブラウズしてパスを選択する

ブラウズしてパスを選択する

2. Create Dataset をクリックします。Create Dataset ダイアログ ボックスで共有データセットの名前を入力し、Create をクリックしま す。新しいデータセットが作成されます。

Name は入力したデータセット名となり、SMB 共有名となります。これは、SMBクライアントがSMBツリー接続を実行するときに、共有パス名の一部を形成します。SMBプロトコルがこの名前を使用するため、80文字以下でなければなりません。MicrosoftのドキュメントMS-FSCCセクション2.1.6で指定されているように、無効な文字を使用することはできません。

名前を変更する場合は、以下の命名規則に従ってください:

・ファイルとディレクトリ

・共有名

外部SMB共有を作成する場合は、SMB共有をホストするシステムのホスト名またはIPアドレスと、そのシステム上の共有名を入力します。PathEXTERNAL:ip address\sharenameのように入力し、Nameを特殊文字なしでEXTERNALに変更します。

3. (オプション) [目的] ドロップダウン リストからPurposeプリセットを選択して、共有に事前に設定したAdvanced Options設定を適用し、ロックまたはロック解除します。共有のすべてのAdvanced Options設定を制御するには、No presetsまたはDefault share parametersを選択します。

4. (オプション)共有の目的を説明するためのDescriptionを入力します。

5. SMBサービスが有効な場合にこのパスの共有を許可するには、Enabledを選択します。設定を削除せずに共有を無効にする場合は、クリアのままにします。

6. (オプション) 監査ログの設定や、Case Sensitivity(大文字と小文字の区別)の変更などその他の高度な構成設定を行うには、Advanced Optionsをクリックします。

7. Save をクリックして共有を作成し、Shares > Windows (SMB) Shares リストに追加します。

プロンプトが表示されたら、SMBサービスを有効にします。

共有の詳細オプション設定の構成


基本的なSMB共有の場合、Advanced Options 設定を使用する必要はありませんが、PurposeNo Presets に設定した場合は、Advanced Options をクリックして、ユースケースに合わせたSMB共有のカスタマイズを完了します。

以下は考えられる使用例ですが、すべての設定については、SMB共有画面を参照してください。


ゲストアクセスの設定
読み取りまたは書き込みアクセスの設定
ホスト許可とホスト拒否の設定
アップルファイリングプロトコル(AFP)の互換性
SMB監査ログの有効化

ACLサポートの有効化


共有にACLサポートを追加するには、Add SMBまたはEdit SMB画面のAdvanced OptionsEnable ACLを選択します。共有とファイルシステムのパーミッションの設定については、SMB共有の管理を参照してください。

SMB共有のACLの調整


SMB共有のパーミッションを設定するには、共有または共有に関連付けられたデータセットの2つのレベルがあります。これらのオプションの詳細については、SMB共有の管理を参照してください。

データセットのパーミッションの詳細については、パーミッションを参照してください。

共有ACLの調整


注意
rootユーザーではSMB共有にアクセスできません。SMBデータセットの所有者を管理ユーザー(フル管理ユーザー)に変更してください。

Edit Share ACL オプションを使用すると、共有のみに対してパーミッションが構成されますが、共有が使用するデータセットは構成されません。アクセス許可は、選択した共有の SMB 共有レベルで適用されます。これらは、他のファイル共有プロトコルクライアント、同じ共有パス (つまり、 Path で指定された /poolname/shares) をエクスポートする他の SMB 共有、または共有が使用するデータセットには適用されません。

共有とデータセットを作成した後、共有のアクセス許可を変更して、ユーザーまたはグループのアクセスを許可します。

共有レベルでアクセス許可を変更する場合は、Edit Share ACL アイコンをクリックして、Edit Share ACL 画面を開きます。

SMB 共有 ACL 画面
図 4: SMB 共有 ACL 画面
[Who]で[User]を選択し、[User]でユーザ名を選択し、[Permissions]と[Type]で権限レベルを設定する。

(オプション)Addをクリックし、Group、グループ名を選択し、グループのアクセス許可を設定します。

Save をクリックします。

ユーザーとグループの設定の詳細については、「権限」を参照してください。

データセット(ファイルシステム)権限の調整


注意
rootユーザーではSMB共有にアクセスできません。SMBデータセットの所有者を管理ユーザー(フル管理ユーザー)に変更してください。

データセットのアクセス制御リスト(ACL)の共有所有者、ユーザー、およびグループ権限を設定するには、Edit Filesystem ACL オプションを使用します。これにより、データセットレベルのパス(Path で定義)のSMB共有のACLエントリが変更されます。アクセス許可をカスタマイズするには、ユーザーまたはグループのアクセス制御エントリ(ACE)を追加します。

データセット(ファイルシステム)のアクセス許可にアクセスするには、共有の行の«span class=“material-icons”>security> Edit Filesystem ACLアイコンをクリックして、共有が使用するデータセットの Edit ACL 画面を開きます。また、Datasets に移動し、共有が使用するデータセット(共有と同じ名前)を選択し、Permissions ウィジェットの Edit をクリックして Edit ACL 画面を開くこともできます。

SMB 共有ユーザーを手動またはディレクトリ サービス経由で TrueNAS SCALE に作成または追 加すると、デフォルトで Samba Authentication が選択され、これらのユーザーは builtin-users グループに自動的に追加されます。このグループのユーザーは、共有内のファイルとディレクトリを追加または変更できます。

共有データセット ACL には、builtin-users グループの ACE が含まれており、@owner@group はデフォルトで root に設定されています。@owner@group の値をadmin(Full admin)ユーザーに変更し、それぞれの下でApplyをクリックします。

一部またはすべての共有ユーザーに追加のファイルパーミッションを制限または付与するには、builtin-users グループエントリを変更しないでください。ベストプラクティスは、異なるパーミッションを必要とする共有ユーザーのために新しいグループを作成し、これらのユーザーを新しいグループに再割り当てし、それらを builtin-users グループから削除することである。次に、新しいグループ用の新しい ACE エントリを追加して ACL を編集し、そのグループのパーミッションを変更する。

ホーム・ユーザーは、FULL_CONTROL を付与するために、builtin-users グループのACEエントリを変更できます。

一部の共有ユーザーのパーミッションを制限または増やす必要がある場合は、新しいグループを作成し、変更後のパーミッションでACEエントリを追加します。

組み込みユーザ・グループ権限の変更


builtin_users グループのパーミッションを変更するには、Datasets で共有データセットを選択し、Permissions ウィジェットまでスクロールダウンします。

1. Edit をクリックして Edit ACL 画面を開きます。builtin-users グループのACEエントリを見つけてクリックします。

2. Access Control List 領域をチェックして、パーミッションが正しいかどうかを確認します。

ACL パーミッションの編集
図5:Edit ACL Permissions

3. Who フィールドに入力または Group を選択する。

4. Group フィールドに builtin_users と表示されるまで入力し、クリックしてフィールドに入力する。

5. Permissions 領域で Basic を選択し、Permissions フィールドで割り当てたいアクセス・レベルを選択する。より詳細な制御を行うには、Advanced を選択し、含める各権限オプションを選択します。

6. Save Access Control List(アクセスコントロールリストの保存)をクリックして、ACE項目を追加するか、変更を保存します。

新しい共有グループの追加


一部の共有ユーザーの権限レベルを変更するには、新しいグループを追加し、ユーザーを新しいグループに再割り当てし、共有データセットACLをこの新しいグループと必要な権限を含むように変更します。

1. Local Groups に移動し、Add をクリックして新しいグループを作成します。

2. Local Users に移動し、ユーザーを選択し、Edit をクリックし、Auxiliary Groups から builtin-user のエントリーを削除し、新しいグループを追加する。Save をクリックする。各ユーザーについてこの手順を繰り返すか、ディレクトリ・サーバーのグループ割り当てを新しいグループに変更します。

3. ファイルシステム(データセット)権限を編集します。いずれかの方法を使用して、共有データセットの Edit ACL 画面にアクセスします。

4. 新しいグループの新しい ACE エントリを追加します。Add Item をクリックします。

5. Who フィールドで Group を選択し、Group フィールドに名前を入力し、権限レベルを設定する。

6. Permissions 領域で Basic を選択し、Permissions フィールドで割り当てたいアクセス・レベルを選択します。より詳細な制御を行うには、Advancedを選択し、含める各権限オプションを選択します。

7. Save Access Control List をクリックします。

このグループを読み取り専用に制限し、共有データセットが親データセットの下にネストされている場合は、各親データセットに移動し、ACLを編集します。新しいグループのACEエントリーを追加し、Traverse を選択する。親データセットのパーミッションはFull_Control または MODIFY に設定したまま、Traverse を選択する。

Traverseパーミッションの使用


共有データセットが他のデータセット(親)の下にネストされている場合、読み取り専用ユーザーがSMB共有内のディレクトリを移動できるようにするには、親データセットレベルでACL Traverse パーミッションを追加する必要があります。

グループを追加してユーザーに割り当てたら、次にパス内の各データセット(親データセットと共有データセット)のデータセットACLを変更する。

1. 新しいグループを共有ACLに追加する.いずれかの方法で、共有データセットの Edit ACL 画面にアクセスする。

2. 新しいグループの新しい ACE エントリを追加します。新しいグループの ACE を作成するには、Add Item をクリックします。

3. Who フィールドで Group を選択し、Group フィールドに名前を入力して、権限レベルを設定します。

4. Save Access Control List をクリックします。

5. Datasets 画面に戻り、共有データセットの親データセットを見つけ、いずれかの方法で親データセットの Edit ACL 画面にアクセスする。

6. 新しいグループに新しいACEエントリを追加する。Add Item をクリックして、新しいグループの ACE を作成する。

7. Who フィールドで Group を選択し、Group フィールドに名前を入力して、Traverse を選択する。

8. Save Access Control List をクリックします。

9. パス内の各親データセットについて繰り返します。これにより、制限された共有グループは、共有データセットへのパス内のディレクトリをナビゲートできるようになります。

SMBサービスの開始


SMB共有に接続するには、関連するシステムサービスを開始する必要があります。

新しい共有を追加すると、SMBサービスの開始または再起動を求めるプロンプトが表示されます。

Windows (SMB) Share ウィジェットまたは System Settings > Services 画面の SMB サービス行からサービスを開始することもできます。

Windows SMB共有を使用したサービスの開始


Sharing 画面で Windows (SMB) Shares の縦3点をクリックすると、サービスのオプションが表示されます(サービスが実行されている場合は Turn Off Service に、サービスが実行されていない場合は Turn On Service にします)。

SMBサービスオプション
図6:SMBサービスオプション
リストの各SMB共有には、その共有のサービスを有効または無効にするトグルもあります。

システム設定を使用したサービスの開始


SMB共有をネットワーク上で利用可能にするには、System Settings > Services と進み、SMB のトグルをクリックします。TrueNAS の起動時にサービスをアクティブにしたい場合は、Start Automatically を設定します。

SMB サービスの設定


Windows (SMB) Shares ウィジェットのヘッダーにある縦3点ドロップダウン メニューから Config Service をクリックするか、Services 画面の 編集 (鉛筆アイコン)をクリックして、SMB サービスを構成します。特定の設定が必要な場合や、独自のネットワーク環境を構成する場合を除き、デフォルト設定を使用す ることをお勧めします。

SMB共有のマウント


このセクションでは、以下のオペレーティングシステムでのSMB共有のマウントについて説明します。

Linuxシステムでのマウント
Windowsシステムでのマウント
Appleシステムでのマウント
FreeBSDシステムでのマウント

外部SMB共有の設定


外部 SMB 共有は、基本的に他のシステム上の共有へのリダイレクトです。管理者は、SMB 共有を持つ複数の TrueNAS システムを管理する場合や、クライアントのどのボックスにどの共有があ るかを追跡したくない場合に、この機能を使用するとよいでしょう。この機能により、管理者は、外部共有が設定されている TrueNAS システムのどれにでも接続して、それらすべてを確認することができます。

SMB 共有を追加する で説明したように、別の SCALE サーバー (たとえば system1) に SMB 共有を作成します。

ユーザー アカウントを作成する場合は、Active Directory または LDAP を使用することをお勧め しますが、最低限、共有を持つシステム (system1) と、外部共有を設定した TrueNAS SCALE システム (例:system2) の間でユーザー アカウントを同期します。

system2 で、SMB 共有 (system1) をホストしているシステムのホスト名または IP アドレスを入力し、そのシス テム上の共有の名前を EXTERNAL:ip address\sharename として Path に入力してから、Name を EXTERNAL に特殊文字なしで変更します。

PurposeDefault share parameters に設定し、Enabled を選択したままにして、Save をクリックして共有リダイレクトを追加します。

上記の system2 の手順を繰り返して、system1 に外部リダイレクト(共有)を追加し、各システムの SMB 共有を確認します。

別の外部SMB共有をセットアップする
図 7: 別の外部 SMB 共有をセットアップする
外部リダイレクトとして追加したい SMB 共有を持つ各 SCALE システムに対して繰り返します。自動入力された名前を EXTERNAL2 などに変更し、ローカルシステム(この場合は system1)上の SMB 共有および追加された他の外部共有と区別できるようにします。

SMB共有のコンテンツ


これらのチュートリアルでは、SMB共有の様々な特定の設定の作成と管理について説明します。

SMB共有の管理: 既存のSMB共有とデータセットのACL権限を管理する手順を説明します。

基本的なTime Machine SMB共有の追加: SMB共有を追加し、基本的なタイムマシンを有効にする手順を説明します。

SMB シャドウコピーの使用: SMB共有シャドウコピー、シャドウコピーの有効化、およびMicrosoft Windows 10 v2004リリースの問題の解決に関する情報を提供します。

SMB ホームシェアの設定: SMB ホーム共有を設定する手順を説明します。

SMB共有MacOSクライアントで分解されたUnicode文字を使用する場合の制限: 分解されたUnicode文字を使用する場合のSMB共有MacOSクライアントの制限に関する情報を提供します。

SMBマルチチャネルの設定: SMBマルチチャネルの設定に関する情報を提供します。

コメントは無効になっていますので、何かありましたらフォームかTwitter(X)で。

About

2024年08月21日 16:46に投稿されたエントリーのページです。

ひとつ前の投稿は「TrueNAS CORE 13.3-RELEASE」です。

次の投稿は「CF-1480 のLED化したメーターランプの光り方を改善」です。

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

Powered by
Movable Type 3.35