爱生活,爱IT
全部博文(436)
分类: LINUX
2006-01-26 14:27:04
这篇技巧文章将向你展示在运行Samba的主机平台和Microsoft Windows环境之间进行协同工作的主要因素,以及此环境下必需的服务。在第一部分,我将讲述在异构型IT环境和活动目录域中写作存在的固有问题。在第二部分,我将提供取代Windows NT 4域和将SQUID和Windows网络整合的技巧。
当然,许多IT专业人员都是Linux爱好者,它们想在企业中运行Linux,甚至在企业中只运行Linux。那样的话,你的运气可真不错;不过,另一方面,多数情况下,几乎所有的人的工作环境都是异构型的IT世界。因此,在多种平台下协同工作对企业来说是必需完成的情况,只有这样企业才能够运作的更好,而Samba能够帮助系统管理人员解决这种需求。
当IT异构产生时,一个理所应当的情况时网络管理人员对如何将Samba的文件和打印服务整合进入他们已经存在的Microsoft活动目录(Active Directory)环境中。同样,仍旧在使用Microsoft Windows NT 4风格的与的地点,对Samba-3如何能够将域用户账号迁移到上很感兴趣,而那些使用Microsoft 代理服务器的地方,则对Samba结合Squid提供与Microsoft ISA代理服务器相似能力的感到非常高兴。
需要解决的问题
Samba是一个运行于多种操作系统平台上的用户空间应用软件,不过它主要在Unix和上使用,并提供高水平的协同工作能力。理解Samba主机环境和Microsoft Windows网络世界之间的一些关键差异,能够帮助我们看清楚它们之间存在的错综复杂的协同工作问题。无论哪一种问题,都可能造成这两个完全不同世界的平台协同工作上的裂隙,因此理解它们,对网络管理人员来说,非常有帮助。
典型的Windows网络管理人员不需要关注Samba如何进行工作,他只想在快速多变的IT上面,如何能够满足用户的需要。
管理员和网络经理的代表性问题有以下几个:
l 我怎样做才能够把我的Samba服务器整合进我的活动目录(Active Directory)中,以便用户能够透明的访问他们的文件,而无需关心他们的文件存储在哪种服务器上?
l 我怎样做才能够替换我那老化的Windows NT 4域,并且在避免迁移到活动目录(Active Directory)的情况下,保证替换过程中不会丢失用户账号和密码?
l 我怎样做才能够限制每个登录到Windows工作站上的用户,访问代理服务器的权限?
Under the hood(帽底乾坤,与解密)
举世公认的一个事实是,Microsoft Windows使用的安全模型与典型的运行Samba的UNIX主机完全不同。Samba执行机制将Windows符(security identifiers,SIDs)转换为Unix安全标识符(Unix security identifiers,UIDs和GIDs),所采用的转换方法依赖于Samba是如何部署的。
活动目录(Active Directory)域用户
将Samba-3服务器整合进入一个已经存在的Microsoft Windows 活动目录(Active Directory,)环境,需要使用基于Kerberos的验证。Samba-3能够被编译成与MIT Kerberos 1.3.1(或以上版本)或Heimdal Kerberos 0.6.3(或以上版本)相连接。
与ADS协同工作的配置项目可以在Samba-HOWTO-Collection文档(地6章,6.4节)中找到。一个Samba-3服务器作为域用户服务器加入活动目录(Active Directory)域的更详细的例子则在Samba Guide文档的第九章提供。
有关Windows SIDs到UNIX UIDs/GIDs的映射,请管理人员翻到Samba-HOWTO-Collection的第12章,这里有三种可以使用主要映射方法:
l 使用winbind为每台机器做映射(注意:在所有作为域成员的Samba服务器上,被特殊的SID映射到的实际UID并不一定相同。);
l 使用winbind_idmap,这将使用相关标识符(relative identifier,RID)组件,将用户的SID作为他的UID(这种方法只能在单一ADS域中使用);
l 使用一个LDAP目录存储IDMAP数据。
IDMAP功能需要Name Service Switcher (NSS)平台支持。此外,在支持可插拔验证模块(Pluggable Modules,APM)的平台上,winbind能够提供以活动目录(Active Directory)中获得的登录账号登录本地Unix/Linux的功能。
Samba的winbind工具为整合提供了一种简单易用的手段,并且除去了创建本地UNIX或Linux账号的需要。结果是最终能够提供单一登录(Single--On,SSO),不过这并不是这种功能的正确。此种功能最正确的描述是集中管理和集中存储用户和组账号。
在流行部署Samba-3的今天,将Samba-3服务器整合进入活动目录(Active Directory)是一个高增长的领域。
在的一部分,我们讨论了在异构型IT环境和()域成员中所存在的固有问题。而在这个第二部分中,我将向你展示Windows NT 4域和使SQUID与Windows网络整合工作的技巧。
替换Windows NT 4域
Microsoft在许多年前已经发出了停止Windows NT 4操作系统支持的消息。现在,Microsoft官方已经不在为Windows NT 4提供任何更新,这就使许多商业公司不得不严肃考虑,是使用活动目录(Active Directory)替换Windows NT 4,还是使用Samba-3承担像Windows NT 4一样风格的域控制。
需要Windows NT 4域控制的站点通常需要一台主域控制器( domain controller,PDC),也需要一台或多台备份域控制器( domain controller,BDC)。在这种情况下,实现Samba-3域控制器(PDC加上BDC)的唯一可靠的方法是使用LDAP存储用户、组和机器账号信息。
Samba-3域控制器使用的LDAP能够提供比Windows NT 4域结构更强的扩展性能,已经超出了Microsoft Windows NT 4资深的可能。Samba-3能够被配置为使用多重并发LDAP目录,每一个LDAP目录都能够执行目录重定向和/或指向。
一个示范使用LDAP目录作为Samba-3后端的部署例子在一书的第6章给出,您可以从那里查看。
在一个Samba-3域中,Samba-3域成员服务器可以被配置为使用winbind或使用LDAP提供IDMAP功能和资源在一书的第9章,提供了一个这样的例子。
Squid与Windows网络的整合
Squid是一个流行的Web和FTP器,它支持插件模块。一个这样的插件能够提供透明的验证,以限制那些使用Microsoft Internet Explorer的Windows客户的访问权限。
一个广为人知的所使用的协议是ntlm_auth ,它能够提供NTLMSSP(NT安全服务协议,NT LanManager Security Service Protocol)。这个模块使用Samba的winbind来执行NT/LM验证,在Squid的网站(http://devel.squid-cache.org/ntlm/squid_helper_protocol.html)上,您能够找到有关此协议的详细信息。
在一书的第11章,您还可以找到使用此功能的一个例子。需要注意的是,此模块只在用户是Squid配置文件中所指出的单一域成员时,才会有效。管理员应该查看ntlm_auth模块的man页面,获得更多特殊的附加配置信息和例子。
总结
在提供协同工作,超越单纯的文件和打印共享方面,Samba具有众多的特点。前面的讨论提供了非常有价值的参考能够帮助Windows网络管理人员找到有用的信息,这些信息有各种功能的特点以及如何使用它们。