Kerberos介绍和安装

简介

Kerberos认证机制

Kerberos是一种网络认证协议,在非安全网络通信环境下,服务器使用Kerberos以安全的方式向另一个服务器证明其身份。

Kerberos的核心是密钥分发中心(KDC),由两个相互独立的逻辑部件:认证服务器(Authentication Server)和票据授权服务器(Ticket Granting Service)。Kerberos持有一个记载每个Kerberos用户的密钥数据库,而且每个密钥只有相对应的Kerberos用户和KDC知道。两个实体通讯,KDC会为他们产生一个临时会话密钥,将其交互信息进行加密。

Kerberos协议流程
  1. 用户向认证服务器AS请求一个票据和密钥,该票据于密钥的作用是与TGS进行会话
  2. AS查询该请求用户的唯一标识是否在数据库中,若存在,生成一个会话密钥,用于客户端与TGS会话,并使用C-AS会话密钥进行加密,同时生成用户访问TGS时的票据许可TGT
  3. 用户通过解密AS的返回信息后获得与TGS会话的密钥,随后向TGS发起请求,并发送会话密钥与票据许可
  4. TGS收到请求后利用会话密钥进行解密,并验证用户身份,回发消息
  5. 用户将返回的信息解密,获得与应用服务器进行会话的密钥,向远端的应用服务器发起请求,提交许可票据
  6. 应用服务器收到用户请求,认证其许可票据信息,与此同时用户收到应用系统的返回信息,验证其是否合法,从而对远端服务器进行身份确认

KDC-SERVR环境搭建(都在root帐号下操作-ubuntu.16)

进入Master机器,执行以下命令:

apt-get install krb5-admin-server krb5-kdc

  • krb5-admin-server: kdc管理员程序,可以让使用者远程管理kdc数据库
  • krb5-kdc: kdc主程序
  • krb5-user: Kerberos的客户端命令,对于ticket的操作等

输入realm,自定义


输入kdcserver所在机器的hostname

初始化超级管理员密码,输入kadmin.local,没有报错,表示安装成功。

kdb5_util create -r SC.COM -s

修改KDC默认配置

查看/etc/krb5.conf,确认配置没问题

启动服务

KDC-CLIENT环境搭建(都在root帐号下操作-ubuntu.16)

apt-get install krb5-user


验证安装成功

回到kdc-serve机器,添加用户。

回到kdc-client,验证用户

keytab的作用

进入kdc-server kadmin.local,为kdc-client添加密钥keytab

拷贝到client机器上

回到client,新增hdfs帐号,确认hdfs.keytab是hdfs用户可以访问的,输入命令kinit加载密钥。klist查看。

发表评论

电子邮件地址不会被公开。