Common Internet File System (CIFS) を 5 分以内で説明
公開: 2022-12-20Common Internet File System (CIFS) は、特定のネットワーク上のさまざまなマシン間でファイル、プリンター、およびシリアル ポートへのアクセスを提供するプロトコルです。
このアクセスにより、クライアントは、ローカル マシンに自動的に保存される共有ドキュメントを開き、読み取り、編集できます。
ユーザーは、プロセス間通信サービスと印刷キューにもアクセスできます。
CIFS は、1980 年代初頭に IBM で開発されました。
CIFS の仕組み
CIFS はクライアント サーバー モデルに従います。 3 つのエンティティが関与しています。 クライアント、アプリケーション、およびサーバー。
- クライアントは、ほとんどのメッセージが発信されるプロトコルを実装します。
- サーバーはプロトコルを実装し、ほとんどの機能 (サービス) を提供します。
- アプリケーションは、グラフィック ユーザー インターフェイス、ファイル管理、ワープロなどの機能を実行するソフトウェアの一部です。
これが CIFS の仕組みです。
- 共有リソースにアクセスするための NetBIOS セッションが、クライアントとサーバーの間で確立されます。
- ネゴシエーション プロセスでは、クライアントとサーバーが使用する方言を決定します。
- クライアントは、一意の識別子を使用して認証資格情報 (主にユーザー名とパスワード) をサーバーに送信します。
- Active Directory は主に認証プロセスを処理します。 ただし、CIFS は認証を直接処理しません。
- 認証が成功すると、サーバーは一意の識別子を返します。
- サーバーは、クライアントが必要な権限を持っているかどうか、および共有名が有効かどうかを確認します。 これらすべての詳細が有効な場合、クライアントはファイルやフォルダーなどの共有リソースへのアクセスを許可されます。
CIFS プロトコルの機能
輸送の独立性
CIFS プロトコルは、サーバーとクライアント間で SMB メッセージを送信するトランスポート プロトコルに要件を課しません。 CIFS は、接続指向のプロトコルで単純に実行されます。
ファイルアクセス
クライアント/ユーザーは、ターゲット サーバー上の複数のファイルを開き、読み取り、変更し、閉じることができます。 サーバーはファイル共有の役割を担っています。つまり、複数のクライアントが同じファイルを異なるデバイスで同時に開いて読み取ることができます。
ファイル、ディレクトリ、およびボリュームの属性を持つ
CIFS プロトコルは、ディレクトリ、ファイル、およびボリュームの属性を照会したり、制限付きの機能で設定したりできます。 アクセス制御リスト (ACL) も CIFS でサポートされています。
拡張サブプロトコル
CIFS プロトコルは、追加のサーバー機能への直接アクセスを提供するさまざまなサブプロトコルをサポートしています。
名前付きパイプのプロセス間通信をサポート
クライアントは、特定のサーバー上の名前付きパイプを開いたり、書き込んだり、読んだり、閉じたりすることができます。 名前付きパイプは、サーバー サービスとクライアント サービス間の通信パスを提供します。
柔軟な接続性
1 つのクライアントが複数のサーバーに接続できます。 このようなクライアントは、サーバーに 1 つ以上の接続を確立することもできます。
機能ネゴシエーションをサポート
プロトコルがサポートする機能セットと方言は、接続ごとにネゴシエートされます。
ファイルとレコードのロックと安全なキャッシュ
CIFS プロトコルは、レコードとファイルのロックをサポートします。 同じプロトコルにより日和見的なファイル ロックが可能になり、クライアントはデータをキャッシュしてパフォーマンスを向上させることができます。
ディレクトリとファイルの変更通知
CIFS プロトコルのクライアントは、ディレクトリ内のファイルや特定のサーバー上のディレクトリなど、リソース内で変更が行われるたびに通知を受けるように要求を送信できます。
分散ファイル システム (DFS) をサポート
DFS は、複数のサーバー上のリソースを含むグローバル名前空間を作成します。
複数のセキュリティ コンテキストをサポート
クライアントは、特定の接続を介して 1 つ以上のセキュリティ コンテキストを使用および作成できます。
CIFS を使用するための前提条件
CIFS には、基盤となるネットワーク トランスポート (通常は接続指向) が必要です。 ただし、場合によっては、CIFS メッセージは、いくつかの小さな変更を加えることで、コネクションレス トランスポートを介して送信できます。
接続指向のトランスポートを介して CIFS メッセージを交換する前に、接続を確立する必要があります。
このようなネットワーク上で交換されるメッセージの場合、CIFS は次のリソースの 1 つ以上が利用可能であると想定します。
- 印刷ジョブをプリンターに送信して印刷サービスを提供するローカル印刷キュー。
- ローカル ファイル システムまたはデータベースは、ファイル共有を可能にするファイル システムとして提供されます。 この場合のリソースは、オブジェクト ストアと呼ばれます。
- 名前付きパイプの抽象化を使用したプロセス間通信には、名前付きパイプをサポートする CIFS サーバーまたはファイル システムに組み込まれた適切なエミュレーションが必要です。
また、サーバーは、認証用のパスワード データベースへのアクセスを持っているか、提供する必要があります。
パスワード データベースには、チャレンジまたはレスポンス認証をサポートするために、NT LAN Manager (NTLM) および LAN Manager (LM) のパスワード ハッシュが格納されます。
Windows 用の CIFS を構成する
ほとんどのユーザーは CIFS を使用することはありません。これが、Windows 10 および 11 でこの機能がデフォルトで無効になっている理由を説明しています。
次の手順に従って動作させます。
- コントロール パネルに移動し、[プログラムと機能] をクリックします。 左側で、[ Windows の機能の有効化または無効化] をクリックします。
- SMB 1.0/CIFS ファイル共有のサポートが表示されるまで下にスクロールし、そのボックスにチェックを入れます。 +アイコンをクリックして、チェックされたすべてのオプションを表示します
上記の手順により、CIFS がオンになります。 ただし、CIFS 用に接続しているネットワークを構成する必要があります。 これがプロセスです。
- コントロール パネルl ホームページに移動し、[ネットワークとインターネット] をクリックします。
2. [ネットワークと共有センター] をクリックします。 左側で、[高度な共有設定の変更] をクリックします。
3. [高度な共有設定の変更] をクリックします。 これで、ネットワーク探索を有効にし、ファイルとプリンターの共有を有効にすることができます。 「変更を保存」をクリックします。
フォルダに CIFS をセットアップする
このデモンストレーションのために、ディスク Eに「サンプル フォルダ」というフォルダを設定します。
- [サンプル フォルダー] を右クリックし、[プロパティ] をクリックして、[共有] を選択します。
2. [共有] をクリックします。
ただし、リストされているユーザーは、Windows マシンに現在セットアップされているユーザーのみであることに注意してください。
受信者は、送信されたドキュメントにアクセスする場合、自分の側でもすべてを構成する必要があります。
CIFS と SMB: 違い
違いを確認する前に、サーバー メッセージ ブロック (SMB) とは何かを学ぶ価値がありました。
サーバー メッセージ ブロックは、クライアントがサーバー内のファイルを読み取り、書き込み、編集できるように設計されています。 この場合、サーバーはローカル エリア ネットワーク (LAN) です。
長年にわたるSMB
- SMB 1.0 。 SMB の最初のバージョンは CIFS と同等です。 この最初のバリエーションは Windows NT 4.0 用に作成され、通信はNetBIOS インターフェイスを介して行われました。
- SMB 2.0。 このバージョンは、2006 年に Microsoft によって Windows Vista オペレーティング システムを通じて導入されました。 導入された機能には、スケーラビリティの向上、シンボリック リンクのサポート、メッセージ署名の改善などがあります。
- SMB 2.1 。 このバージョンは、2007 年に Windows 7 と同時に導入されました。バージョン 2.1 では、パフォーマンスの最適化が改善され、新しいロック メカニズムが提供されました。
- SMB 3.0 。 このバージョンは、2012 年に Windows 8 と同時に導入されました。SMB 3.0 は、当初 SMB 2.2 という名前でしたが、後に名前が変更されました。 このバージョンでは、Remote Direct Memory Access (RDMA) によるリモート ストレージ アクセスの可能性が作成されました。
- SMB 3.1.1 . これは、この記事の執筆時点での最新バージョンです。 SMB 3.1.1 は 2015 年に Windows 10 用に作成され、認証前の整合性チェックを導入しました。 このバージョンは、 Galois/Counter Mode (GCM) による暗号化も利用します。
多くの人が CIFS と SMB を混同しています。 SMB が CIFS よりも早く導入されたことは注目に値します。
Microsoft は 1990 年代に SMB を改良して CIFS を作成しました。これにより、CIFS は SMB の方言になります。 ただし、Microsoft は引き続き CIFS を改善しており、現在のバージョンは SMB 3.1.1 です。
CIFS と SMB 3.1.1 の主な違いは次のとおりです。
SMB 3.1.1 | CIFS | |
作成年 | 1980 年代初頭に IBM によって作成されました。 | 1990 年代初頭に Microsoft によって SBM の拡張バージョンとして作成されました。 |
パフォーマンス | SMB 3.1.1 は、CIFS および以前の SMB バージョンの課題のほとんどを解決するために作成されました。 サーバー内のファイルを保護するのに役立つ事前認証チェックが存在します | CIFS が作成されたとき、ファイル転送、セキュリティなどに多くの問題がありました。 |
認証 | SMB 3.1.1 は、AES 認証を使用して、サーバー上で共有されるファイルに対するセキュリティを提供します。 ユーザーは、ファイルにアクセスするためにユーザー名とパスワードを提供する必要があります | CIFS には認証がありません。 したがって、ファイルはネットワーク上で保護されません。 |
データストレージ | SMB 3.1.1 は 32 ビットまたは 64 ビットのデータ ストレージ フィールドを使用し、大きなファイル ストレージを可能にします。 | HTTP および FTP プロトコルに類似した IP/TCP プロトコルを使用します。 |
働く | ネットワーク上のリソースへのアクセスを共有するためのクライアント/サーバー通信プロトコル。 | クライアント/ユーザーは、同じネットワーク上の別のコンピューター システムにあるサーバーでファイルを要求します。 |
CIFS の欠点は何ですか?
- 認証がありません。 CIFS の最大の欠点の 1 つは、SMB の最近のバージョンとは異なり、認証がないことです。
- 限られたファイル サイズを処理します。 CIFS は超大規模ファイルには適していない可能性があり、転送中に遅延が発生したり、破損したりする可能性さえあります。
結論
クラウド ファイル共有とアクセス サービスが引き継がれているように見えますが、CIFS などの従来のプロトコルにはまだ余裕があります。 TCP ポート 445 経由の直接接続のサポートは、CIFS の最大のセールス ポイントの 1 つです。 マイクロソフトは現在、SMB の発展に注力していますが、CIFS は SMB の方言の 1 つであるため、忘れることはできません。
また、Windows 11/10 でシステム ファイル チェッカーを実行する方法を調べることもできます。