CIFS(普通Internet文件系统)
CIFS (Common Internet File System)是在2000年左右流行起来的一种协议,当时供应商正在努力建立一种基于Internet协议的协议文件共享协议。
CIFS在其鼎盛时期受到Windows、Linux、Unix等操作系统的支持。CIFS使用客户机-服务器一种编程模型,其中客户机程序向服务器程序发出请求(通常在另一台计算机上),以访问文件或将消息传递给在服务器计算机上运行的程序。服务器执行请求的操作并返回响应。
CIFS现在被认为过时了,因为大多数现代数据存储系统使用更健壮的Server Message Block (中小企业)2.0和3.0文件共享协议,它们是CIFS的主要升级。
CIFS/SMB与网络文件系统(NFS)是用于网络附加存储的两种主要协议(NAS)系统。
CIFS和NFS
NFS由Sun Microsystems在20世纪80年代开发,现在由Internet工程任务组管理(IETF).NFS最初更多地用于Unix和Linux操作系统,而CIFS和SMB则用于Windows,但大多数主要的NAS供应商现在都支持这两种协议。
NFS是一个客户机-服务器应用程序,它允许在服务器、台式机、笔记本电脑和其他设备之间进行透明的文件共享。使用NFS,用户可以远程存储、查看和更新文件,就像在自己的计算机上一样。使用CIFS/SMB时,客户端程序向位于另一台计算机上的服务器程序请求文件,服务器进行响应。这使得CIFS成为爱讲闲话的协议NFS。
CIFS与SMB 2.0、3.0
SMB应用层网络协议从20世纪80年代开始出现。SMB由IBM开发,允许计算机通过局域网读写文件。虽然CIFS和SMB通常可以互换使用,但CIFS协议是由Microsoft在早期的Windows操作系统中作为SMB的更新版本引入的。
CIFS使用互联网的TCP / IP协议,并被视为现有互联网应用协议的补充,如文件传输协议(FTP)和超文本传输协议(HTTP).然而,CIFS被认为是一种有bug的聊天协议,存在网络延迟问题。协议也很难维护,而且不太安全,因为它要处理大量的命令和子命令。当微软在Windows 2000、Windows XP、Windows Server 2003和Windows Server 2003 R2中引入SMB时,它被取代了。该协议的更新版本随后在Windows Vista、Windows Server 2008、Windows 7和Windows Server 2008中使用。
2006年在Windows操作系统中引入的SMB 2.0通过将命令和子命令的数量从100多个减少到19个,提供了比SMB 1.0更好的性能。2.0规范将多个操作打包到单个请求中——以减少客户机和服务器之间的往返请求数量——因为客户机现在可以缓存将文件提交到服务器之前对其所做的所有更改。
SMB 3.0在Windows 8和Windows Server 2012中引入,并启动了SMB直接、SMB多通道和SMB传输故障切换。它还引入了更好的安全机制,如端到端加密和高级加密标准(AES)算法。
SMB 3.1.1在Windows 10和Windows Server 2016中可用,支持军用级AES 128 GCM和AES 128 CCM加密。它还使用了SHA-512搞砸用于预验证完整性检查。
的Samba项目在使SMB与Unix兼容方面发挥了重要作用。Samba是CIFS/SMB网络协议的免费软件实现,支持Microsoft Windows Server Domain、Active Directory和Microsoft Windows NT域。通过Samba,类unix操作系统可以与Windows进行互操作,并向Windows客户端提供文件和打印服务。
CIFS协议特性
正如微软所记录的那样,CIFS协议包括许多特性。这些特性包括:
- 交通情报:尽管CIFS协议通常在面向连接的协议之上使用,但它也可以使用无连接协议。
- 灵活的连接: CIFS协议在客户端/服务器连接方面非常灵活。一个客户端可以连接多个服务器,甚至可以在必要时连接多个服务器。
- 功能谈判:协议的方言和支持的特性是在一个接一个连接的基础上协商的。
- 资源访问: CIFS协议不限制客户端可以连接的资源类型。CIFS客户端能够并发地连接到共享文件、命名管道、打印队列和其他资源。
- 安全上下文: CIFS协议不限制客户端使用单一的安全上下文。如果需要,可以在一个连接上使用多个安全上下文。
- 文件访问:CIFS客户端能够同时与多个文件交互。此外,文件共享是服务器操作系统的一项功能,CIFS不会强制执行文件锁定.这意味着多个客户端可以同时访问一个文件。
- 扩展子协议: CIFS协议允许使用子协议,可用于扩展功能。
- 命名为管道进程间通信: CIFS允许命名管道作为客户端和服务器之间的通信路径。
- 文件和记录锁定和安全缓存:虽然CIFS协议允许多个客户端同时访问一个文件,但该协议支持文件和记录锁定,以及文件缓存。
- 文件、目录和卷属性: CIFS协议设计用于识别和尊重在文件、文件夹和卷级别上分配的属性。该协议也兼容Windows访问控制列表(ACL).
- 文件和目录更改通知:CIFS协议包括一种机制,允许在对共享资源进行更改时通知客户端。正在通过访问共享文件夹的Windows客户端文件资源管理器例如,由于此功能,通常会显示共享文件夹内容的当前视图。
- 批处理命令: CIFS协议允许将消息链接在一起,按顺序进行处理。
- 支持分布式文件系统:Windows Server操作系统支持使用分布式文件系统(DFS),该系统可创建可包含多台服务器上资源的全局命名空间。CIFS协议完全支持DFS功能。
- 远程过程调用传输: CIFS协议支持使用RPCMS-RPCE和MS-RAP等协议。
- 消息验证:消息签名可以与CIFS协议结合使用,保证消息在传输过程中不被修改。
- 支持Unicode文件名: CIFS协议支持美国信息交换标准代码字符集和UnicodeLegacy 8.3文件名和长文件名都受到支持。
CIFS的使用
CIFS协议是当前Windows系统中用于文件共享的SMB协议的起源。SMB被广泛用于访问Windows网络中的文件和文件夹。
虽然CIFS协议可能最常与Microsoft联系在一起,但确实存在开源协议的可用版本。以CIFSD为例,它是一种面向Linux的开源CIFS/SMB协议。类似地,Samba——用于Linux和Unix的Windows互操作性套件——包括SMB/CIFS客户机。CIFS/SMB协议有时也用于提供与共享资源连接的容器。
CIFS是如何工作的?
当CIFS客户端需要与CIFS服务器通信时,操作几乎总是在应用程序级别发起。例如,用户可能打开Windows文件资源管理器并试图访问共享文件夹。
访问共享资源的第一步是客户端建立一个NetBIOS与服务器的会话(通过端口139使用全双工TCP会话)。然后就可以在此会话中传输CIFS消息。
NetBIOS会话就绪后,客户机和服务器将执行协商过程,确定将使用哪种方言。此协商过程由客户端通过SMB\u COM\u协商命令启动。此命令有效地向服务器传输客户端理解的方言列表。服务器用它将使用的方言进行响应。此方言必须是客户端和服务器都支持的方言。
一旦客户机和服务器就一种方言达成一致,客户机就向服务器传输身份验证凭据(通常是用户名和密码),并提供惟一标识符(UID).当客户端传输其身份验证凭据时,它还发送其功能列表。因此,即使服务器不需要身份验证,此步骤也是必要的。
在现代系统中,身份验证过程通常由Active Directory处理。认证功能不是CIFS协议的直接功能。因此,其他身份验证机制,如半径,也可以使用。值得注意的是,CIFS还可以用于工作组环境中的文件共享。由于工作组缺乏集中的身份验证机制,身份验证过程将利用工作组计算机上的本地用户帐户。
如果身份验证成功,则服务器将分配的UID返回给客户端。现在,客户端传输通用命名约定(UNC)其希望附属于的股份的名称。服务器检查以确保共享名称是有效的,并且客户端具有所需的权限。如果这些检查成功,客户端就被授予对共享的访问权,然后可以开始请求访问共享中的资源,比如文件和文件夹。
CIFS的衰落
早期,微软的CIFS提案潜力巨大。通过CIFS,微软试图创建SMB的标准版本。其好处之一是支持通过网络进行直接通信TCP端口445,完全绕过NetBIOS。尽管有这种能力,但是大多数CIFS客户端和服务器仍然基于NetBIOS和LAN Manager (LanMan)身份验证。
LAN Manager 1.0最初是为了支持IBM OS/2中的各种文件系统特性和操作系统功能而创建的。支持LAN Manager的后续版本磁盘操作系统还有窗户。CIFS规范基于NT LAN Manager的使用,也就是NTLM或NT LanMan 0.12。
随着时间的推移,随着Microsoft发布其SMB协议的更新版本,CIFS变得过时,SMB 3.0是当前版本。
Windows下如何配置CIFS
Windows 10完全支持CIFS协议,但默认禁用CIFS共享(Windows 10默认设置为CIFS客户端)。SMB是Microsoft首选的文件共享协议,并取代了CIFS,因此大多数管理员不太可能需要完全启用CIFS协议。即便如此,如果需要,该协议还是可以使用的。下面是配置过程的工作原理。
如果需要启用CIFS协议,请在“Windows Run”提示符下输入Control命令。这将导致窗口打开控制面板. 接下来,点击项目,然后单击打开或关闭Windows功能链接这将导致Windows显示一个对话框,通过选中相应的复选框可以在其中启用或禁用功能。
滚动特性列表,直到找到SMB 1.0/CIFS文件共享支持。Windows 10默认作为CIFS客户端,不作为CIFS服务器。因此,部分CIFS组件默认启用。如果需要启用CIFS服务,请展开“SMB 1.0/CIFS文件共享支持容器,然后选择1.0 SMB / CIFS服务器复选框。默认情况下,应选中其他SMB 1.0/CIFS复选框(自动删除和客户端)。点击好吧安装该特性。
在Windows 10操作系统下,无需进行额外的CIFS配置。无论使用的是SMB还是CIFS,在网络上共享文件夹的方式都是相同的。右键单击要共享的文件夹并选择属性命令从快捷菜单。这将导致Windows显示文件夹的属性对话框。选择对话框的分享选项卡,单击共有按钮选择要与之共享文件夹的用户,并根据需要调整其权限。如果需要在其他用户之间共享文件夹,请单击添加按钮,然后输入要与之共享文件夹的用户或组的名称。完成文件夹的用户和权限配置后,单击共有按钮,后面跟着关闭按钮