RHEL中的Kerberos认证:简化Windows-Linux整合

日期: 2010-09-27 作者:Sander van Vugt翻译:Dan 来源:TechTarget中国 英文

长期以来,虽然Linux操作系统已经能够为基于Samba服务器的Windows系统提供文件服务,但是这一过程的实现仍然面临着困难:Samba服务器应以何种方式与客户在一般Windows环境中进行安全认证?通过结合Samba系统和Kerberos,Linux操作系统能够更好地与Windows进行兼容合作。在本文中,您将了解到Kerberos认证在红帽企业Linux(RHEL)5.4或更高版本中是如何实现运行的。   使用网络认证协议的目的是在不安全网络上提供安全的认证。而这种安全认证协议的一个关键技术在于Kerberos认证中不会通过网络发送任何密码。

如果您想要理解此实现过程,那么让我们先来看看……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

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互操作性有所了解呢?