概述
在网络环境下,通过FTP实现了在不同操作系统的主机之间相互传输文件,从使用角度看,共享文件系统几乎不用你考虑网络传输和访问的细节,完全可以像访问本地文件一样访问网络上其它服务器文件系统上的文件。这可以在一定程度上解决开始提的问题,即为集群中的多台实际服务器共享同一台物理存储设备。
刚才提到的同一台物理存储设备可以是独立的一台服务器如图片服务器,也可以是集群中某台实际服务器的磁盘。
共享文件系统并不是通常我们说的磁盘文件系统,它不能用于存储和管理磁盘数据,而只是定义了文件在网络上传输时的组织格式和传输协议。所以,一个文件从网络的一端到另一端需要进行两次转换,分别发生在进入网络和离开网络的时候。
对于共享文件系统的实现通常有NFS和Samba,其中NFS主要用于Linux/Unix平台下,而Samba用于将linux/Unix平台下的文件映射到Window系统网络邻居上,用于实现Linux/Unix到Window平台的共享,当然,它也可以实现Linux/Unix平台之间的文件共享。
NFS和Samba实现完全不同,其性能存在较大的差异。1
NFS服务介绍NFS(Network File System,网络文件系统)是历史最为悠久的文件共享协议之一,其目的是让网络环境下的不同主机之间彼此可以共享文件。
1.NFS概述
NFS最初是由Sun Microsystems公司于1984年开发出来的,它的功能是让整个网络共享某些主机的目录和文件。由于NFS使用起来非常方便,因此很快得到了大多数UNIX类系统的支持。
2.远程过程调用RPC
RPC(Remote Procedure Call,远程过程调用)是另一种不同的网络程序设计方法,它定义了一种进程间通过网络进行交互通信的机制,使程序员编写客户程序时感觉只是调用了服务器程序提供的函数,而双方的通讯过程对程序员来说完全是透明的。也就是说,一台机子上的程序使用这种机制可以向网络中另一台机子上的程序请求服务,并且不必了解支持通信的网络协议的具体情况。
3.NFS协议
NFS协议是一个建立在Sun RPC基础上的客户端/服务器应用程序,客户端通过向一台NFS服务器发送RPC请求来访问其中的文件。
4.NFS服务器
NFS服务器采用多进程模型,而且进程数是固定的,默认情况下为4,当然,可以进行修改。不论怎么对NFS进行性能优化,NFS注定不适合IO密集型文件的共享方案。但作为一般用途比如提供站内资源的共享,它是比较容易搭建的,可以减少不必要的数据冗余。
5.NFS远程操作
NFS远程写操作有同步和异步两种模式,对于异步模式,NFS可以在接收到写操作请求后立即返回成功,然后在后台执行真正的写操作。对于同步模式,NFS在写操作完成后才返回,当然,这里不一定是写到磁盘。对于异步模式,由于存在实际写入磁盘的延迟,所以非常有可能发生实际写入失败而应用程序并不知晓的情况,在没有保障的情况下,使用异步模式要格外谨慎。1
Samba服务介绍历史上,安装UNIX类操作系统的主机相互之间共享文件系统时使用的是NFS协议,而Windows类的操作系统使用SMB协议来共享文件系统。后来,以开源项目Samba为代表的许多服务器软件在UNIX类操作系统下实现了SMB协议,使得UNIX和Windows操作系统之间的文件共享也可以畅通无阻。
1.SMB协议概述
SMB(Server Message Block,服务器消息块)是基于NetBIOS的一套文件共享协议,它由Microsoft公司制订,用于Lan Manager和Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象。
2.NetBIOS协议
NetBIOS(Network Base Input/Output System,网络基本输入/输出系统)最初是由IBM公司开发的一种网络应用程序编程接口(API),为程序提供了请求网络服务的统一命令集。NetBIOS是一种会话层协议,应用于各种局域网(Ethernet、Token Ring等)和诸如TCP/IP、PPP和X.25等广域网环境。
3.Samba概述
Samba是一种开放源代码的自由软件,可以为SMB/CIFS客户提供所有方式的文件和打印服务,包括各种版本的Windows客户。
Samba服务提供Windows风格的文件和打印机共享。
Samba服务可以在Windows网络中解析NetBIOS的名字。
Samba服务提供了SMB的客户功能。
Samba服务可以与OpenSSL相结合,实现安全通信,也可以与OpenLDAP相结合实现基于目录服务的身份认证。同时还能承担Windows域中的PDC和成员服务器角色。
4.Samba的两个进程
Samba主机使用两个进程来管理两个不同的服务:
smbd:用来处理文件和打印服务请求。
nmbd:用来处理NetBIOS名称服务请求和网络浏览功能。
当我们启动了Samba之后,主机系统就会启动137,138,139这三个port,并且同时会有TCP/UDP的监听服务。
5.Samba的主要应用
Samba的主要目的就是用来沟通Windows与Unix这两种不同的作业平台。
主要应用:共享档案与打印机服务;提供身份认证;提供Windows网络上的主机名称解析(NetBIOS name)1。
安全共享文件系统网络共享文件的安全问题网络技术的飞速发展推动了社会的发展,许多政府部门和企业单位都借助网络极大地提高了工作效率。文件数据以电子化形式存储在电脑里,并且在网络中共享,一方面方便了对信息的获取、共享和传播,但是另一方面也存在着极大的安全隐患。其中,这些安全隐患主要包括网络接入容易,通常只要选用通用的信息设备即可连入网络大多数信息使用明文传输,信息数据在网络传输过程中很容易被拦截、篡改用户往往有权访问共享文件,从而有机会修改、窃取共享文件计算机外部设备使用不当容易造成数据泄露。这些都使得共享文件的安全问题变得越来越重要和突出,也使得在网络中进行共享文件的安全管理成为迫切的需求。
网络中共享文件管理的一个重要方面就是保证共享文件的安全。网络中数据管理本身通常不是很严谨,共享文件一般只是采用简单的授权口令保护,对于防误操作、防盗窃和防破坏的保护也只采取了简单的措施。这样就使得在网络中非法取得授权和获得共享文件变得非常容易。所以,保证共享文件的安全就是需要确保存储在网络中的共享信息、数据不受意外或者恶意的原因遭受破坏、更改、泄露,也就是需要保证共享文件的保密性、完整性、可用性和真实性。但由于使用共享文件的最终目的是在网络中实现信息共享,故在保证安全的同时还要保证共享文件的可用性。2
国内外现状目前,国内外保护文件信息的安全主要采用以下措施:
采用防火墙及安全扫描工具,建立网络安全屏蔽。防火墙是一个部属在网络基础设施中的硬件或软件的解决方案,可以通过限制对某些特定的网络资源的访问,实施一个企业的安全策略。防火墙可以在网络和外部之间创建一个保护层。它具有内置的过滤器,所有由外网进入内网之前都必须经过它的过滤和检验。它是网络安全的第一道屏障。设置访问权限,进行访问控制。对不同的用户设置不同的访问权限,在访问之前对其身份进行合法性检查,对信息进行加密。采用加密算法对信息进行加密存储或传输,使非法用户即使得到数据也难以破解,可以保证电子文件内容的非公开性。对信息进行签名。采用摘要算法计算信息的摘要,并使用私钥加密摘要,保证信息的完整性。
但是,这些保护文件信息的安全措施都是基于用户层的文件控制技术和加密技术。应用层软件运行于用户空间中,各种用户进程和内核进程都可以访问它的中间处理数据,比如加、解密过程产生的临时文件或者系统缓存中存在的明文文件,因此,很容易被其他进程拦截,安全性得不到操作系统内核的保护,并且大部分软件不能很好地实现系统的自我保护从而可能被窃密分子通过某种手段恶意地破坏系统。所以这些安全措施并不能很好地保证文件信息的安全。目前对于共享文件安全技术有着很高的需求,但是由于应用环境的复杂性及攻击手段的多样性使这一领域的产品很难达到很高的安全要求。没有一套安全性很高的保护措施,任何人都可能对共享文件有意或无意造成安全隐患,从而导致难以挽回的后果。所以确保网络共享文件的安全具有重要的现实意义。2
C/S系统随着网络应用技术的发展,基于C/S的系统客户系统设计己经被广泛应用于各种软件系统的设计和开发中。它是软件系统体系结构,其基本思想是充分利用两端硬件环境的优势,把任务合理分配到客户机和服务器上以降低系统的通信开销,主要用于跨多机的应用程序。这种编程方式改变了传统的单机应用设计和系统实现方式。C/S系统一般分为两层结构前端是客户机,即用户界面,结合了表示与业务逻辑,接受用户的请求,并向服务器提出请求后端是服务器,接受客户机请求后,经过一些处理,将结果提交到客户机,客户机将数据呈现给用户。一般用“N层结构”来描述应用在客户机和服务器的逻辑划分方式。
C/S模式是一种先进的计算模式,在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据,有很强的实时处理能力。并且,由于C/S是配对的点对点结构模式,采用安全性较好的网络协议,安全性可以得到较好的保证。C/S结构通常面向相对固定的用户群,对信息安全的控制能力很强。
C/S系统基于Windows操作系统,设计了一套比较完善的安全文件共享控制机制,通过控制用户对服务器共享文件的访问、控制用户在客户端对共享文件的操作、保障共享文件在服务器和客户端存储的安全及传输的安全等手段,达到保障共享文件安全的目的。本系统在服务器上对用户进行严格的权限控制,并且把文件数据加密保存在文件服务器中。当客户端请求访问共享文件时,服务器首先进行合法性验证,然后使用改进的协议加密传输文件数据到客户端。客户端把该文件加密保存在虚拟磁盘中,使用文件过滤驱动技术对虚拟磁盘进行访问控制,只允许设置了访问权限的进程才能对虚拟磁盘中的数据进行读写操作。当用户请求打开文件时,客户端根据用户在服务器数据库中的文件访问权限使用自动化技术禁用该文件对应编辑器中某些菜单栏和工具栏按钮,然后调用编辑器打开文件,同时使用全局钩子控制编辑器的操作,防止用户对文件的非法操作。这样就大大增加了系统的安全性。
客户端的文件加解密过程是在内核模式下实现的,读数据时解密,写数据时加密。这种在操作系统内核模式下的加、解密具有较高的效率和安全性,且对上层文件系统驱动程序和应用程序的正常使用没有任何影响。文件在虚拟磁盘中始终是以密文形式存在,并且只有合法进程才能对虚拟磁盘中的文件进行操作,从而有效地保证了共享文件数据在客户端存储的安全性。2