Common 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 用に構成する必要があります。これがプロセスです。
- [コントロール パネル ] ホームページに移動し、 [ネットワークとインターネット] をクリックします。
2. [ネットワークと共有センター] をクリックします。左側にある 「詳細な共有設定の変更」をクリックします。
3. [詳細な共有設定の変更] をクリックします。 ここで、 ネットワーク探索をオンにし 、 ファイルとプリンターの共有をオンにします。 「変更を保存」をクリックします。
フォルダーに CIFS をセットアップする
このデモでは、 ディスク E に「サンプル フォルダー」というフォルダーをセットアップします。
- [サンプル フォルダー] を右クリックし、 [プロパティ] をクリックして、 [共有] を選択します。
2. 「共有」をクリックします。
ただし、リストされているユーザーは、Windows マシンに現在セットアップされているユーザーのみであることに注意してください。
送信されたドキュメントにアクセスしたい場合、受信者も自分側ですべてを設定する必要があります。
CIFS と SMB: 違い
違いを確認する前に、サーバー メッセージ ブロック (SMB) が何であるかを知っておく価値があります。
サーバー メッセージ ブロックは、クライアントがサーバー内のファイルを読み取り、書き込み、編集できるように設計されています。この場合のサーバーはローカル エリア ネットワーク (LAN) です。
SMB の長年にわたる
- SMB1.0 。 SMB の最初のバージョンは CIFS と同等です。この最初のバリエーションは Windows NT 4.0 用に作成され、通信は NetBIOS インターフェイスを介して行われました。
- SMB2.0。 このバージョンは、2006 年に Microsoft によって Windows Vista オペレーティング システムを通じて導入されました。導入された機能には、スケーラビリティの向上、シンボリック リンクのサポート、メッセージ署名の改善などがあります。
- SMB 2.1 。このバージョンは、2007 年に Windows 7 と同時に導入されました。バージョン 2.1 では、パフォーマンスの最適化が改善され、新しいロック メカニズムが提供されました。
- SMB3.0 。このバージョンは、2012 年に Windows 8 と同時に導入されました。SMB 3.0 は当初 SMB 2.2 という名前でしたが、後に名前が変更されました。このバージョンでは、リモート ダイレクト メモリ アクセス (RDMA) を介したリモート ストレージ アクセスが可能になりました。
- SMB 3.1.1 。これはこの記事の執筆時点での最新バージョンです。 SMB 3.1.1 は 2015 年に Windows 10 向けに作成され、認証前の整合性チェックが導入されました。このバージョンでは、 ガロア/カウンター モード (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 つでした。 Microsoft は現在、SMB の発展に注力していますが、CIFS は SMB 言語の 1 つであるため、忘れることはできません。
Windows 11/10 でシステム ファイル チェッカーを実行する方法を調べることもできます。






![2021 年に Raspberry Pi Web サーバーをセットアップする方法 [ガイド]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)





