暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kerberos使用小结

闵栋 2022-12-09
793

友情提醒

全文共计936字,阅读耗时约2分24秒



0、关于kerberos

可使用kadmin.local或kadmin,至于使用哪一个,取决于帐户和访问权限:

kadmin.local(on the KDC machine)or kadmin (from any machine)

若是有访问kdc服务器的root权限,可是没有kerberos admin帐户,使用kadmin.local

若是没有访问kdc服务器的root权限,可是有kerberos admin帐户,使用kadmin

Kerberos principal用于在kerberos加密系统中标记一个惟一的身份。

kerberos为kerberos principal分配tickets使其能够访问由kerberos加密的hadoop服务。

对于hadoop,principals的格式为username/fully.qualified.domain.name@YOUR-REALM.COM.

keytab是包含principals和加密principal key的文件。

keytab文件对于每一个host是惟一的,由于key中包含hostname。keytab文件用于不要人工交互和保存纯文本密码,实现到kerberos上验证一个主机上的principal。

由于服务器上能够访问keytab文件便可以以principal的身份经过kerberos的认证,因此,keytab文件应该被妥善保存,应该只有少数的用户能够访问。

1、建立远程管理的管理员

    #kadmin.local
    addprinc root/admin@EXAMPLE.COM
    其中:EXAMPLE.COM为kerberos的域名
    【注意】:密码不能为空,且需妥善保存
    本例设置的密码为admin




    2、kerberos日常操作

    2.1、新增用户test

      #kadmin.local 
      addprinc test


      2.2、用户test登录

        kinit test
        klist -e


        2.3、删除当前的认证的缓存

          kdestroy -A


          2.4、强制更新ticket

            kinit -R


            2.5、生成票据

              kadmin.local -q "xst  -k data/principals/keytab/test.keytab  test@EXAMPLE.COM"


              kadmin -q "xst  -k /data/principals/keytab/test.keytab  test@EXAMPLE.COM"


              注意:生成keytab后,密码被修改了,无法再用之前输入密码登录了
              如果想要密码不变,需要按照以下方式做,必须是kadmin.local


              kadmin.local -q "xst -k data/principals/keytab/test.keytab -norandkey test@EXAMPLE.COM"



              如上图,使用旧密码test,提示错误

              2.6、查看keytab文件内容

                klist -ket  data/principals/keytab/test.keytab



                2.7、使用票据登录

                  kinit -kt data/principals/keytab/test.keytab test
                  klist


                  2.8、合并keytab文件

                    ktutil 
                    ?
                    rkt /data/principals/keytab/test1.keytab
                    rkt /data/principals/keytab/test2.keytab
                    wkt /data/principals/keytab/test12.keytab
                    exit
                    #使用合并后的票据登录
                    kinit -kt data/principals/keytab/test12.keytab test1
                    klist








                    3、建立认证规则(Principals)和keytab

                    3.1、添加principals

                    为集群中每一个服务器节点添加三个principals,分别是hdfs、mapred和host。

                    #master上执行

                      kadmin
                      #建立hdfs principal
                      addprinc -randkey hdfs/master@EXAMPLE.COM
                      addprinc -randkey hdfs/node1@EXAMPLE.COM
                      addprinc -randkey hdfs/node2@EXAMPLE.COM


                      #建立mapred principal
                      addprinc -randkey mapred/master@EXAMPLE.COM
                      addprinc -randkey mapred/node1@EXAMPLE.COM
                      addprinc -randkey mapred/node2@EXAMPLE.COM


                      #建立host principal
                      addprinc -randkey host/master@EXAMPLE.COM
                      addprinc -randkey host/node1@EXAMPLE.COM
                      addprinc -randkey host/node2@EXAMPLE.COM




                      3.2、建立keytab文件

                      建立包含hdfs principal和host principal的hdfs keytab

                        kadmin
                        xst -norandkey -k /data/principals/keytab/hdfshost.keytab  hdfs/master@EXAMPLE.COM host/master@EXAMPLE.COM





                        4、常用kerberos管理命令

                          kadmin.local 


                          列出全部用户
                          listprincs


                          查看某个用户属性
                          getprinc test@EXAMPLE.COM


                          添加用户
                          addprinc


                          文章转载自闵栋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论