永州市规划建设局网站营销型网站源码下载

当前位置: 首页 > news >正文

永州市规划建设局网站,营销型网站源码下载,手机优化助手怎么关闭,豪利777的seo综合查询Kerberos认证原理与使用教程 一、Kerberos 概述 二、什么是 Kerberos ​ Kerberos 是一种计算机网络认证协议#xff0c;用来在非安全网络中#xff0c;对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端…Kerberos认证原理与使用教程 一、Kerberos 概述 二、什么是 Kerberos ​ Kerberos 是一种计算机网络认证协议用来在非安全网络中对个人通信以安全的手段进行身份认证。这个词又指麻省理工学院为这个协议开发的一套计算机软件。软件设计上采用客户端/服务器结构并且能够进行相互认证即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止重放攻击、保护数据完整性等场合是一种应用对称密钥体制进行密钥管理的系统。 kerberos一词来源于希腊神话的地狱守护神三头犬。 三、Kerberos 术语 Kerberos 中有以下一些概念需要了解 1KDCKey Distribute Center密钥分发中心负责存储用户信息管理发放票据。 2RealmKerberos 所管理的一个领域或范围称之为一个 Realm。 3PrincipalKerberos 所管理的一个用户或者一个服务可以理解为 Kerberos 中保存的一个账号其格式通常如下primary/instancerealm 4keytabKerberos 中的用户认证可通过密码或者密钥文件证明身份keytab 指密钥文件。 对以上的专业术语进行解释 首先所谓认证也就是用户的登录需要用户名和密码这也是最基本的认证方式那么KDC负责存储用户信息也就是KDC内置的Database会存储用户的用户名和密码那么kdc发放的票据是什么票据呢这个票据是指某个用户访问服务时所需要的票据相当于门票。 Realme域又指的是什么呢他指代的是Kerberos 所管理的一个领域或范围所谓的领域也就是一系列的服务和用户。 Principal是指Kerberos 所管理的一个用户或者一个服务可以理解为 Kerberos 中保存的一个账号。 一个用户要想通过kerberos认证得需要一个账号和密码同样的一个服务要想通过kerberos 认证也需要账号和密码格式 primary/instancerealm 三个部分用户名or服务名 / 实例服务主机名域名例如root/adminEXAMPLE.COM 如下图 Hadoop的认证使用的是Kerberos协议。 keytabKerberos 中的用户认证可通过密码或者密钥文件证明身份keytab 指密钥文件。 kerberos认证两种方式
四、Kerberos 认证原理 AS: Authentication Server认证服务器首先用户进行身份认证kinit命令进行认证然后输入密码此时认证服务器会根据用户输入的账号和密码到数据库Database中查询看是否正确如果正确颁发临时的票据这个票据就是TGT它是Ticket Granting Ticket的缩写这个票据名称为申请票据的票据。 用户拿到这个用来申请服务票据的票据后然后携带该票据TGT去访问票据授权服务器然后票据授权服务器TGS去数据库中查询服务是否为合法的服务 查询到相关服务名和秘钥后颁发票证给用户。 用户拿到这个TG票证后然后才能访问我们的服务比如上图拿到票证访问hdfs服务。这就是kerberos的基本认证原理。
五、kerberos的使用 kerberos的命令缩写 add_principaladdprincankdelete_principaldelprincktaddxstchange_passwordcpw 查看kerberos服务 启动 KDC服务 systemctl status krb5kdc 若未启动 执行启动命令 systemctl start krb5kdc 启动 Kadmin该服务为 KDC 数据库访问入口 systemctl start kadmin 查看kadmin服务状态 systemctl status kadmin
登录kadmin kerberos的安装主要有kdc服务和一到多个client客户端。使用kadmin.local命令登录客户端。 非kadmin节点使用admin权限的prin认证后输入kadmin后输入密码。 添加principal服务主体 生成随机key的principal这种principal只能用来生成keytab使用 例如 addprinc -randkey root/master1EXAMPLE.COM第二种方式 ktadd -k 存放keytab的路径 服务主体名例如 ktadd -norandkey -k /opt/keytab/hive.keytab hive例如 ktadd -norandkey -k /keytab/root.keytab root/master1EXAMPLE.COM host/master1EXAMPLE.COM这种方式生成keytab时缺省会生成长串随机密码来覆盖原来的密码。覆盖后就不能用原来密码登录了只能用keytab如果想要继续使用密码登录需要使用norandkey参数来避免生成长串随机密码。 -norandkey表示不用很长的随机密码使用自己设置的密码意味着可以同时用密码和keytab认证。 为principal生成keytab可同时添加多个 ktadd -norandkey -k /keytab/root.keytab root/master1EXAMPLE.COM host/master1EXAMPLE.COMklist -ket xxx.keytab  查看参数keytab里面包含的的认证信息klist -e klist 查看当前用户认证信息

klist -ket xxx.keytabKeytab name: FILE:xxx.keytab

KVNO Timestamp Principal —- ——————- ——————————————————7 2018-07-30T10:19:16 hbase-flinkdemo.com (des-cbc-md5) 7 2018-07-30T10:19:16 hbase-flinkdemo.com (aes128-cts-hmac-sha1-96) 7 2018-07-30T10:19:16 hbase-flinkdemo.com (aes256-cts-hmac-sha1-96) 7 2018-07-30T10:19:16 hbase-flinkdemo.com (des3-cbc-sha1) 7 2018-07-30T10:19:16 hbase-flinkdemo.com (arcfour-hmac) 12345678910查看principal命令 listprincs或者是list_principals 修改admin/admin的密码 change_password -pw xxxx admin/admin或者使用cpw命令 删除principal delete_principal admin/admin 认证某个服务主体命令 例如kinit -kt /opt/keytabs/hive.keytab hive
注意事项 使用密码创建一个principal后如果用ktadd生成随机密码的keytab(默认)会用一个很长的随机密码覆盖原来手动设置的密码那么原来的密码就不能用了。如果使用 -norandkey可以密码和keytab同时使用。 kerberos的2个生命周期 Kerberos ticket 有两种生命周期ticket timelife (票据生命周期) 和 renewable lifetime (可再生周期)。 当 ticket lifetime 结束时该 ticket 将不再可用。 如果 renewable lifetime ticket lifetime 那么在票据生命周期内可以续期直到达到可再生周期。 当时间达到 renewable lifetime 后ticket lifetime结束后将不能继续续期续期时将会报错 KDC can’t fulfill requested option while renewing credentials之后需要重新kinit申请新的ticket 与使用较长的生命周期的票据相比可再生票据的优点是KDC可以拒绝续期请求(例如如果发现帐户被破坏并且可再生票据可能在攻击者手中)。 例如: ticket_lifetime 1d renew_lifetime 7d 在登陆后的24h内可以对ticket进行续期直到第一次登陆的7天后将不再允许续期。 在24h内如果没有续期将无法续期。 对 ticket 进行一次续期后ticket_lifetime 将恢复到24h。》 第一次kinit后从kinit时间到tl期间内可以renewrenew后start time刷新。直接第一次的st到rl后不能再刷新 实际场景中开发告诉运维3天开发完但3天大概率开发不完这时候就可以续期而不用重新输密码或用keytab。 kerberos可以用kinit得到一个ticket(又叫tgt), 在这个ticket生效期间不用输入密码, ticket可以不停续期, 有一个expire日期,下面的例子是12月07到12月08的一天时间, 但是生效期内可以通过 kinit -R 来续期这个ticket, 但是还有个renew until, 表示最长可以续期多久, 下面例子表示15年12/12号以后, kinit -R 就不能续期了. kinit -R会把当前认证的prin的Valid starting时间刷新为当前Expires时间自然也就顺延。但renew until时间仍然是第一次认证时确定的时间。 这个ticket和keytab无关, keytab是一个密码文件, 加密了你的密码而已. Execute a klist command to verify the values that the system actually granted you.Ticket cache: FILE:/tmp/krb5cc_1234 Default principal:someuserUCAR.EDU Valid starting Expires Service principal 12/07/15 13:00:05 12/08/15 13:00:01 krbtgt/UCAR.EDUUCAR.EDU renew until 12/12/15 15:48:44 1234567The ticket will expire like an ordinary ticket in 24 hours, but you can renew multiple times before its expiration, until the final expiration date (Dec 12 in the example above). You must do the kinit command interactively because you will have to provide your Kerberos passphrase; this cannot be put into a cron job or other unattended situation.