确保Linux环境下文件共享的安全性
在网络信息安全的研究领域当中,与大众关系最为紧密的莫过于网络服务的安全性问题了。比如说,如果某个在线游戏服务器出现故障导致数据损失,那么众多游戏玩家的心血将付诸东流;如果某个网站服务器由于访问量增多,不堪重负,将会导致访问者焦急地长时间等待;如果某个电子邮件系统遭到黑客攻击而瘫痪,那么数百万用户将不能正常收发邮件。这些都是我们能切实感受和体会到的。加上在网络上已经得到或即将得到大规模应用的电子商务(E-Commerce)、电子政务、军事科技项目,也使得人们对网络服务的安全性和可靠性产生了前所未有的关注。也正因为如此,我们对主流的服务器操作系统--Linux的安全性进行了一些研究。本文将分别阐述Linux操作系统当中虚拟服务器以及网络文件系统的安全性问题,提出Linux操作系统的一些基于这两个方面的安全性举措,还将列举一个NFS的配置实例。
LVS原理简介及相关安全性问题
Linux虚拟服务器(LVS)系统是由负载调度器(Load Balancer)、服务器集群(Server Cluster)和文件存储服务(File Servers)组成的,通过Linux下的负载平衡,将一群服务器构成一个服务集群,而实际服务器的前端是一台负载平衡器,将用户的请求调度到实际服务器执行后将结果返回用户,而终端用户可见的只是一台服务器,由于负载调度技术是在Linux内核中实现的,我们称之为Linux Virtual Server。 正如上文所讲,当前网络服务要求系统提供可靠性、可用性高的服务,即要求系统在遭到破坏和出现故障时,系统上的数据不能丢失,而且在尽可能短的时间内恢复系统的正常运行,下面我们就LVS的基本原理(参考图1)和一些服务安全性能进行探讨。
连接用户的外部网为Internet/Intranet,服务器组由内部网(通常是高速局域网或地理分布的广域网)连接。负载平衡器有两个IP地址,一个是外部网关,一个是内部网关。外部网的用户发出请求,负载调度器负责将用户要求的任务,调度到服务器集群中的服务器上执行,具体的调度策略现在主要有四种调度算法:轮转调度算法(Round-RobinScheduling)、加权轮转调度算法(Weighted Round-RobinScheduling)、最小连接调度算法(Least-ConnectionScheduing)、加权最小连接算法(Weighted Least- ConnectionScheduing)。LVS采用基于IP层负载平衡技术,通过IPVS软件实现了三种IP负载均衡技术,在Linux操作系统下,将IP层的TCP和UDP请求均衡地转移到不同的服务器上。当用户请求到达时,调度器从服务器组中选出一个服务器转发该请求并由该服务器执行,同时记录此调度。这一切都在操作系统核心空间内完成,且调度开销很小,使得服务器集群中的节点数目可以达25甚至可以多达100。文件存储系统基于容错式分布文件系统来实现,如Coda。
我们谈到的LVS网络服务的高可靠性主要体现在:
1.负载调度器上运行了一个监视进程--mon,它负责监控服务进程和服务器集群中的各个服务器节点的状况,通过配置fping 监听器,每隔一定时间检测各个服务器节点。通过配置相应的服务监听器来探查所有节点中不同的服务进程,例如http monitor就用来探查http服务,一旦出现失败,监视进程就发出警报通知调度器将该节点从调度列表中删除,使调度器可以自动屏蔽服务器节点的失效。当此服务器节点恢复时,调度器将此节点添加到调度列表中,从而总是保持对系统重置的正确,并且服务器集群中节点的数目是可变的,由于节点的失效被屏蔽,系统管理员可以在任何时候加入或删除一个或多个节点而不干扰对用户提供的服务。这也就意味着LVS系统在超载时,我们可以通过增加服务集群的节点数目来满足用户的请求,当服务器组中某台实际服务器出现故障,可以删除但不影响对用户的服务,从而实现高效可靠的服务。
2.在第一点的基础上,现在调度器就成为了单一的失效点,调度器的失效将导致整个系统的瘫痪。为了屏蔽主调度器可能出现的失效,需要建立一个备份的从调度器。两个心跳进程分别在主、从调度器上运行,定期互相汇报各自的健康状况,一旦从调度器探测到主调度器失效,则激活fake程序接管Virtual IP Address来提供负载平衡调度;当从调度器探测到主调度器恢复时,将释放Virtual IP Address,由主调度器收回并提供负载调度服务。虽然,主调度器的失效和接管将导致调度信息的丢失,需要用户重新发送请求。但是,这大大的提高了系统的安全性和可靠性,使得一旦主调度器出现故障,系统可以在很短的时间内恢复服务。
NFS简介以及相关安全性问题
下面要提到的是在网站服务器上应用得很广泛的网络文件系统(Network File System)。网络文件系统提供了多个计算机节点通过网络共享计算机文件资源的功能,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。不难想象,正是由于它的这种独有的方便性,也暴露了一些安全问题,黑客们可能通过侵入服务器,篡改其中的共享资源,达到入侵、破坏他人机器的目的,所以网络文件系统的安全问题在Linux操作系统中受到很多人的重视。下面将从Linux操作系统中的NFS的工作原理及一些相关安全问题作一些探讨。
NFS由服务器端和客户机端两部分组成。每台机器都具有自己的内核级服务:外部数据服务、远程过程调用、NFS客户机或服务器、I/O监控程序和锁监控程序。此外,根据服务器和客户机的不同,分别具有/etc/exports和/etc/fstab配置文件。
NFS是通过RPC,即远程过程调用来实现的,使得远程的计算机节点执行文件操作命令就像执行本地的文件操作命令一样。它可以执行创建文件、创建目录、删除文件、删除目录等等文件操作命令。
在Linux操作系统当中,安全性能较Windows有了很大的提高,由于RPC本身的一些安全缺陷,恶意的黑客可以利用IP地址欺骗等手段来攻击NFS服务器,使得服务器瘫痪而无法工作,而通常NFS服务器却很难发现。而Linux所作的第一个安全任务就是启用防火墙,当系统启动的时候这个操作系统会自动启用防火墙,使得内部的和外部的RPC无法正常地通信,这从一定程度上减少了安全漏洞,使得非法的或者是有害的数据不能进来。但是,应该看到的是,它还是阻碍了正常的数据传输。如果在没注意的情况之下,两台互相通信的机器便不能正常的进行NFS文件共享,因为防火墙阻止了RPC调用。
而第二个Linux所作的安全任务也就是服务器的导出选项,这些选项很多,因为NFS服务器最适合对NFS客户机进行安全限制。NFS客户机更容易攻破,但服务器介于潜在的恶意客户机之间,它要访问服务器本地盘中存放的实际文件。相关的导出选项有如下几类:读写服务器访问、UID与GID挤压、端口安全、锁监控程序、部分挂接与子挂接等。在读写服务器访问中,ro和rw是最常用的选项。这两个选项的含义读者应该比较清楚,他与文件的一些基本读写权限是一样的。对于UID与GID挤压,在Linux操作系统当中,根用户(root)是很危险的,因为它可以执行任何命令和改变系统中的任何文件。在NFS客户机/服务器模型当中,服务器要防止恶意的客户机的破坏,因为客户机上的用户可以方便地取得NFS客户机上的根访问权限。如果NFS客户机允许对NFS服务器的根访问,则可以方便地占有服务器,从而影响依赖于NFS服务器文件的整个站点。为此,几个NFS客户机可以改变某些用户与组的证明信息,改变用户与组的证明信息称为挤压。这样,最重要的选项就是root_squash,将根进程的权限设为最低来做到这一点。至于端口安全指的是NFS服务器缺省要求请求从1024以下端口到达,这些端口号被叫做安全端口。因为后面两项不是重点,所以不再不详细介绍。
NFS安全配置实例分析
下面通过一个具体的例子来介绍NFS的安全性配置。假设在某个网站上有某个目录名为/popgame的目录可以开放给NFS客户机来进行下载共享等工作,而这台服务器的IP地址为:202.168.0.8。它可以开放目录给IP地址为202.168.10.10、202.168.10.13(当然可以提供给更多的服务器,而且他们的IP地址也可以各式各样,现在举的例子有点像局域网中的情况,不过原理相同)的主机。那么我们首先就需要对服务器端的/etc/exports文件进行编写。
我们先进入目录/etc,然后执行命令:vi exports,那么就会进入到该文件的编辑界面,我们输入如下的内容:/popgame 202.168.10.10(ro) 202.168.10.13(ro)。我们可以清楚地看到,目录/popgame只能导出到IP地址为上述值的客户机上,而且它们的权限也只能是只读,因为它们只是需要简单地共享下载游戏的功能,并不需要具备创建目录、修改文件的功能,而且如果提供了这些功能的话,将会出现安全隐患。
下面接着配置客户机的/etc/fstab文件,进入该文件,并且加入如下内容:202.168.10.8:/popgame /mnt/game nfs ro 0 0。不过,原文件上已经有的内容不要随意更改,否则会影响系统配置,影响文件系统。其中的/mnt/game目录是要将服务器上的/popgame目录挂接到客户机上的本地目录,也就是说,当共享了NFS文件系统以后,可以通过访问本地目录/mnt/game来访问共享的文件。因为现在有两台客户机,所以每一台上都要如上配置。
配置完成以后,就需要在客户机上将服务器的NFS挂接到本地客户机上了,命令如下所示:mount -t nfs 202.168.10.8:/popgame /mnt/game。当然,在执行命令之前,必须先要关掉本地客户机上的防火墙,否则也不会挂接成功。原因是防火墙会阻碍远程过程调用。现在就可以放心地使用远程的网络资源了。
来源:CCW
- 1IPSec、SSL、S-HTTP和S/MIME安全协议的比较
- 2精益制造各层面的剖析
- 3VoIP的电源支持
- 4协作区在泛普OA软件的应用
- 5《财富》:2005年全球技术发展八大趋势
- 6让应用虚拟化
- 7沈阳地区OA办公自动化系统哪家做得比较好呢?
- 8信息化技术: 有关WBS的三个基本问题
- 9应用基础是SOA还是SOBA
- 10IPv6对网络安全的改进与挑战
- 11Web应用的“软件构件化”进程
- 12网络安全:风险管理平衡功能和安全
- 13信息安全风险评估有据可依
- 14数据分类的方法
- 15小专题:VoIP企业级应用
- 16虚拟存储 实在收益
- 17灾难恢复与业务连续性有何区别?
- 18网络安全:企业“终端坏死症”的七个迹象
- 19技术商业2005
- 20虚拟化简化管理
- 21企业信息资源管理的五个基础标准
- 22用日志系统保护Linux安全
- 23信息技术应用之Web服务最佳实践之路
- 24六步评估IPS/IDS
- 25如何快速组建企业无线网
- 26SOA项目全球化管理的三个办法
- 27计算机与PLC集成控制系统
- 28谈项目管理和软件测试过程(四)
- 29人力资源管理软件开发的技术架构及其优缺点(上)
- 30数据备份之旅:磁盘与磁带的博弈