长期以来,虽然Linux操作系统已经能够为基于Samba服务器的Windows系统提供文件服务,但是这一过程的实现仍然面临着困难:Samba服务器应以何种方式与客户在一般Windows环境中进行安全认证?通过结合Samba系统和Kerberos,Linux操作系统能够更好地与Windows进行兼容合作。在本文中,您将了解到Kerberos认证在红帽企业Linux(RHEL)5.4或更高版本中是如何实现运行的。 使用网络认证协议的目的是在不安全网络上提供安全的认证。而这种安全认证协议的一个关键技术在于Kerberos认证中不会通过网络发送任何密码。
如果您想要理解此实现过程,那么让我们先来看看……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
长期以来,虽然Linux操作系统已经能够为基于Samba服务器的Windows系统提供文件服务,但是这一过程的实现仍然面临着困难:Samba服务器应以何种方式与客户在一般Windows环境中进行安全认证?通过结合Samba系统和Kerberos,Linux操作系统能够更好地与Windows进行兼容合作。在本文中,您将了解到Kerberos认证在红帽企业Linux(RHEL)5.4或更高版本中是如何实现运行的。
使用网络认证协议的目的是在不安全网络上提供安全的认证。而这种安全认证协议的一个关键技术在于Kerberos认证中不会通过网络发送任何密码。如果您想要理解此实现过程,那么让我们先来看看Kerberos是如何提供认证服务的。
首先,Kerberos能并只能提供认证服务。Kerberos是由麻省理工学院在20世纪80年代研发,直到微软公司将其采纳,并用于支持Windows 2000系统的认证服务基础时,这一网络认证协议才取得重大技术突破。 Kerberos中的关键部分是密钥分发中心(KDC)。 KDC所分发的密钥可确保为所有Kerberos主体可用。在Kerberos中,所有用户都是主体,用户和服务器都可以进行相互验证。
Kerberos的认证过程可以概括如下:
- 客户端获得一个授权票证(TGT)。这一过程的实现就是客户发出请求,索取一个可用于认证的票证。此票证是由密钥分发中心提供的。
- 在获得票证后,客户端使用它来获得服务票证。
- 该服务票证被用来建立与服务器间的安全会话。
Kerberos认证层
Kerberos由三种认证层紧密结合而组成。首先,是krb5层,也是Kerberos的核心认证层。在特定的网络协议中运行Kerberos网络认证协议,需要启动额外的协议程序。首先,启动通用安全服务应用程序编程接口GSSAPI。这是一个标准的API,应用程序可以用来验证任何安全服务器。该程序方案的最后一步是执行一个简单保护协商机制SPNEGO,由安全服务应用程序编程接口GSSAPI控制使用。客户端和服务器都采用此协议,以了解他们应该如何进行对话。在使用Kerberos网络认证协议保护CIFS通用互联网文件系统对话时,需要运行这些组件来支持验证谈判。如果用一种简化的方式表示,验证谈判必须完成以下的步骤:
- 客户端发送NegProt请求,以启动有关协议程序,用于身份验证的谈判。
- 服务器会就这一请求回执一个支持使用简单保护协商机制SPNEGO的方法清单。
- 客户端使用简单保护协商机制SPNEGO发送请求建立会话,其中包含捆绑于安全服务应用程序编程接口GSSAPI中的krb5票证。
建立CIFS来使用Kerberos认证
为通用互联网文件系统CIFS建立起的Kerberos网络认证协议身份验证,是一个完全支持RHEL 5.4以及更高版本的解决方案。它由几个部分组成。首先是包含于文件/ etc/krb5.conf中的krb5核心认证层的客户端配置。其次是用于请求Kerberos密钥的/ sbin /请求键程序。最后一部分是/ usr / sbin / cifs.upcall方案。这些程序都包含于Samba客户端套件(更高版本的CIFS-utils)包中,并确保Kerberos 网络认证协议可以与通用互联网文件系统CIFS进行安全对话。
设置Kerberos网络认证协议配置的最简单方法是使用系统配置进行身份验证。当krb5.conf的配置文件被创建后,它包含了所有的Kerberos网络认证协议信息,而这些信息都需要进行身份验证。下面将具体介绍着一下这个文件所包含的内容:
[realms]
EXAMPLE.COM = {
kdc = ad.example.com:88
admin_server = ad.exampe.com:749
}
[domain.realm]
example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
除此之外,在运行至/ etc / request-key.conf文件时,此文件将告知密钥请求方案应该运行什么程序,以及如何运行这些程序。
设定完成以后,就可以运行通用互联网文件系统CIFS挂载来启动Kerberos网络认证协议了。当然,要做到这一步,必须首先完成两个步骤。首先,必须得到一个krb5的票证。只有得到票证以后,才可以使用CIFS挂接。实现这些步骤可以使用kinit命令以及mount挂接命令进行操作,如:
kinit testuser@EXAMPLE.COM
mount -t cifs -o sec=krb5 //server.example.com/export /mnt/cifs
在这些步骤中,第一个kinit命令是用来获取Kerberos网络认证协议票证的。在这个例子中,是由用户testuser@EXAMPLE.COM发出认证请求,其中EXAMPLE.COM是Kerberos网络安全系统中用于身份验证的用户名。应当注意的是该域名称需要全部大写,并且通常应该遵循DNS命名方案。一旦用户获得票证,便可以使用CIFS挂载。用户可以同时使用mount - tCIFS命令和- osec= krb5的命令选项来实现这一步骤的操作。后者通常用于显示Kerberos网络身份验证协议已被启动。至此,基于Kerberos网络认证协议的通用Internet文件系统CIFS挂接就建立成功了。
相关推荐
-
Hyper-V动态迁移的两种认证方法
当执行Hyper-V动态迁移时,如何在迁移之前实行系统登录身份验证?这里分享两种验证方法:Kerberos和Credential Security Support Provider。
-
企业实施SaaS遇到哪些障碍?
上一篇文章中我们介绍了:SaaS已经不再是一个只适合非关键任务的非主流服务。在许多企业里,SaaS已经占据主流。下面我们看看企业实施SaaS遇到的挑战。
-
了解Windows安全认证
Windows认证协议有两种NTLM和Kerberos,Kerberos较之NTLM更高效、更安全,同时认证过程也相对复杂。这里主要介绍Kerberos。
-
了解Kerberos互操作性
Kerberos协议,以希腊神话中的三头犬命名,保护由服务器、客户端和一个受信任第三方应用程序所组成的计算机环境。你是否已经对Kerberos互操作性有所了解呢?