您可以使用Kerberos来验证网络上用户和主体的身份。 此过程中使用两种类型的票证:票证授予票证和服务票证。 票证授予票证会验证您请求服务票证。 服务器提供服务票证请求以访问实际服务。 密钥分发中心(KDC)用作发行这些票证的受信任的第三方。

票证已加密,因此只有具有有效私钥的主体或具有整个Kerberos数据库的主体名称,其私钥及其到期的KDC才能对其进行解密。

Kerberos版本5 KDC可以使用三种加密类型:

  • 数据加密标准(DES)
  • 三重DES
  • 高级加密标准(AES)

AES是目前用于安全通信的最先进和推荐的加密类型,因此本文重点介绍如何设置KDC以使用AES。

先决条件

要遵循本文中的示例,您需要配置了IBM Network Authentication Services(NAS)1.4版(或更高版本)文件集的AIX®5.3H®(或更高版本)机器。

设置KDC服务器

首先,验证IBM NAS文件集的安装(请参见清单1 )。

清单1.验证IBM NAS文件集
# lslpp -l |grep krb5                                                    krb5.client.rte            1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.client.samples        1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.lic                   1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.msg.en_US.client.rte  1.4.0.4  COMMITTED  Network Auth Service    Client                                                                   krb5.server.rte            1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.toolkit.adt           1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.client.rte            1.4.0.4  COMMITTED  Network Authentication  Service                                                                  krb5.server.rte            1.4.0.4  COMMITTED  Network Authentication  Service

下一步是进行Kerberos服务器设置。 这里要考虑的重要参数是:领域名称( -r ),域名( -d )和标准的Kerberos管理服务器(请参见清单2 )。

清单2. Kerberos服务器设置
# mkkrb5srv -r REALM1.IBM.COM -d in.ibm.com -s adfsaix5.in.ibm.comFileset                      Level  State      Description----------------------------------------------------------------------------
Path: /usr/lib/objreposkrb5.server.rte            1.4.0.4  COMMITTED  Network Authentication ServiceServerPath: /etc/objreposkrb5.server.rte            1.4.0.4  COMMITTED  Network Authentication ServiceServer
The -s option is not supported.
The administration server will be the local host.
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
Creating /var/krb5/krb5kdc/kdc.conf...
Creating database files...
Initializing database '/var/krb5/krb5kdc/principal' for realm 'REALM1.IBM.COM'
master key name 'K/M@REALM1.IBM.COM'
You are prompted for the database Master Password.
It is important that you DO NOT FORGET this password.
Enter database Master Password:
Re-enter database Master Password to verify:
WARNING: no policy specified for admin/admin@REALM1.IBM.COM;defaulting to no policy. Note that policy may be overridden byACL restrictions.
Enter password for principal "admin/admin@REALM1.IBM.COM":
Re-enter password for principal "admin/admin@REALM1.IBM.COM":
Principal "admin/admin@REALM1.IBM.COM" created.
Creating keytable...
Creating /var/krb5/krb5kdc/kadm5.acl...
Starting krb5kdc...
krb5kdc was started successfully.
Starting kadmind...
kadmind was started successfully.
The command completed successfully.
Restarting kadmind and krb5kdc

运行此命令时,系统要求输入主数据库密码和名为admin的管理主体的密码。 在安全的地方记录名称和选择的密码,因为这些原则对于您的NAS环境至关重要。

mkkrb5srv命令配置Kerberos服务器,创建kadm5.acl,krb5.conf和kdc.conf文件,并创建Kerberos数据库。 它还将管理员添加到数据库,并使用Kerberos守护程序更新/ etc / inittab文件。 设置变量后,此命令将进行初始配置。

在系统重新引导后,还将在/ etc / inittab文件中自动添加以下两行以启动KDC服务器(请参见清单3 )。

清单3.启动KDC服务器
# lsitab krb5kdc
krb5kdc:2:once:/usr/krb5/sbin/krb5kdc
# lsitab kadm
kadm:2:once:/usr/krb5/sbin/kadmind

有关更多详细信息,请参考mkkrb5srv手册页。

要对KDC服务器进行基本验证,请参见下面的清单4 。

清单4.验证KDC服务器
# ps -ef |grep krb |grep -v grep
root 299160 1 0 18:20:51 - 0:00 /usr/krb5/sbin/krb5kdc
root 315554 1 0 18:20:51 - 0:00 /usr/krb5/sbin/kadmind
#
# kinit admin/admin
Password for admin/admin@REALM1.IBM.COM:
# klist -e
Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
Default principal:  admin/admin@REALM1.IBM.COMValid starting     Expires            Service principal
02/22/07 04:35:14  02/23/07 04:35:14  krbtgt/REAM1.IBM.COM@REAM1.IBM.COM
Etype (skey, tkt):  Triple DES cbc mode with HMAC/sha1, \Triple DES cbc mode with HMAC/sha1

将使用默认值创建krb5.conf文件。 在这些默认值中,您应该关注为default_tkt_enctypesdefault_tgs_enctypes参数设置的值。 default_tkt_enctypes列出了可用于服务票证加密和哈希处理的加密类型(例如校验和)的组合。 在此列表中的值中,第一个值为des3-cbc-sha1的默认值。 同样, default_tgs_enctypes列出了用于授予票证的票证。 同样,此处使用的默认加密类型为des3-cbc-sha1。

要使Kerberos服务器使用AES代替默认值(des3-cbc-sha1),请执行以下步骤:

  1. 编辑/etc/krb5/krb5.conf文件,使AES加密类型(aes256-cts)成为default_tkt_enctypesdefault_tgs_enctypes列表中的第一个条目(请参见清单5和6 )。

    清单5.编辑之前
    # cat /etc/krb5/krb5.conf
    [libdefaults]default_realm = \REALM1.IBM.COMdefault_keytab_name = \FILE:/etc/krb5/krb5.keytabdefault_tkt_enctypes = \des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5 des-cbc-crcdefault_tgs_enctypes = \des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5 des-cbc-crc[realms]REALM1.IBM.COM = {kdc = adfsaix5.in.ibm.com:88admin_server = adfsaix5.in.ibm.com:749default_domain = in.ibm.com}[domain_realm].in.ibm.com = REALM1.IBM.COMadfsaix5.in.ibm.com = REALM1.IBM.COM[logging]kdc = FILE:/var/krb5/log/krb5kdc.logadmin_server = FILE:/var/krb5/log/kadmin.logdefault = FILE:/var/krb5/log/krb5lib.log
    清单6.编辑后
    # cat /etc/krb5/krb5.conf
    [libdefaults]default_realm = REALM1.IBM.COMdefault_keytab_name = FILE:/etc/krb5/krb5.keytabdefault_tkt_enctypes = \aes256-cts des3-cbc-sha1 arcfour-hmac des-cbc-md5 des-cbc-crcdefault_tgs_enctypes = \aes256-cts des3-cbc-sha1 arcfour-hmac des-cbc-md5 des-cbc-crc[realms]REALM1.IBM.COM = {kdc = adfsaix5.in.ibm.com:88admin_server = adfsaix5.in.ibm.com:749default_domain = in.ibm.com}[domain_realm].in.ibm.com = REALM1.IBM.COMadfsaix5.in.ibm.com = REALM1.IBM.COM[logging]kdc = FILE:/var/krb5/log/krb5kdc.logadmin_server = FILE:/var/krb5/log/kadmin.logdefault = FILE:/var/krb5/log/krb5lib.log
  2. 使用KDC服务器上的kadmin.local接口,使用默认的加密类型删除已经创建的admin和ticket主体。(请参见清单7 )。
    清单7.删除KDC服务器上的默认加密类型
    # kadmin.local
    kadmin.local:  listprincs
    K/M@REALM1.IBM.COM
    admin/admin@REALM1.IBM.COM
    kadmin/admin@REALM1.IBM.COM
    kadmin/changepw@REALM1.IBM.COM
    kadmin/history@REALM1.IBM.COM
    krbtgt/REALM1.IBM.COM@REALM1.IBM.COM
    kadmin.local:  delprinc krbtgt/REALM1.IBM.COM
    Are you sure you want to delete the principal
    "krbtgt/REALM1.IBM.COM@REALM1.IBM.COM"? (yes/no):  y
    Principal "krbtgt/REALM1.IBM.COM@REALM1.IBM.COM" deleted.
    Make sure that you have removed this principal from all ACLs before reusing.
    kadmin.local:  delprinc admin/admin
    Are you sure you want to delete the principal \"admin/admin@REALM1.IBM.COM"? (yes/no):  y
    Principal "admin/admin@REALM1.IBM.COM" deleted.
    Make sure that you have removed this principal from all ACLs before reusing.
  3. 使用aes256-cts的加密类型为每个admin和tgt主体创建新的主体,如清单8所示 。
    清单8.创建新的主体
    # kadmin.local
    kadmin.local:  listprincs
    K/M@REALM1.IBM.COM
    kadmin/admin@REALM1.IBM.COM
    kadmin/changepw@REALM1.IBM.COM
    kadmin/history@REALM1.IBM.COM
    kadmin.local:  ank -e aes256-cts:normal admin/admin
    WARNING: no policy specified for admin/admin@REALM1.IBM.COM;defaulting to no policy. Note that policy may be overridden byACL restrictions.
    Enter password for principal "admin/admin@REALM1.IBM.COM":
    Re-enter password for principal "admin/admin@REALM1.IBM.COM":
    Principal "admin/admin@REALM1.IBM.COM" created.
    kadmin.local:  ank -e aes256-cts:normal krbtgt/REALM1.IBM.COM
    WARNING: no policy specified for krbtgt/REALM1.IBM.COM@REALM1.IBM.COM;defaulting to no policy. Note that policy may be overridden byACL restrictions.
    Enter password for principal "krbtgt/REALM1.IBM.COM@REALM1.IBM.COM":
    Re-enter password for principal "krbtgt/REALM1.IBM.COM@REALM1.IBM.COM":
    Principal "krbtgt/REALM1.IBM.COM@REALM1.IBM.COM" created.
    kadmin.local:  listprincs
    K/M@REALM1.IBM.COM
    admin/admin@REALM1.IBM.COM
    kadmin/admin@REALM1.IBM.COM
    kadmin/changepw@REALM1.IBM.COM
    kadmin/history@REALM1.IBM.COM
    krbtgt/REALM1.IBM.COM@REALM1.IBM.COM
  4. 检查是否已使用aes256-cts作为加密类型创建了admin和tgt主体,如下面的清单9所示。
    清单9.验证新的主体
    # kadmin.local
    kadmin.local:  listprincs
    K/M@REALM1.IBM.COM
    admin/admin@REALM1.IBM.COM
    kadmin/admin@REALM1.IBM.COM
    kadmin/changepw@REALM1.IBM.COM
    kadmin/history@REALM1.IBM.COM
    krbtgt/REALM1.IBM.COM@REALM1.IBM.COM
    kadmin.local:  getprinc admin/admin
    Principal: admin/admin@REALM1.IBM.COM
    Expiration date: [never]
    Last password change:  Thu Feb 22 04:38:36 PAKST 2007
    Password expiration date: [none]
    Maximum ticket life: 1 day 00:00:00
    Maximum renewable life: 7 days 00:00:00
    Last modified: Thu Feb 22 04:38:36 PAKST 2007 (admin/admin@REALM1.IBM.COM)
    Last successful authentication: [never]
    Last failed authentication: [never]
    Failed password attempts: 0
    Number of keys: 1
    Key: vno 1, AES-256 CTS mode with 96-bit SHA-1 HMAC,
    no saltAttributes:REQUIRES_PRE_AUTH
    Policy: [none]
    kadmin.local:  getprinc krbtgt/REALM1.IBM.COM
    Principal: krbtgt/REALM1.IBM.COM@REALM1.IBM.COM
    Expiration date: [never]
    Last password change:  Thu Feb 22 04:39:04 PAKST 2007
    Password expiration date: [none]
    Maximum ticket life: 1 day 00:00:00
    Maximum renewable life: 7 days 00:00:00
    Last modified: Thu Feb 22 04:39:04 PAKST 2007 (admin/admin@REALM1.IBM.COM)
    Last successful authentication: [never]
    Last failed authentication: [never]
    Failed password attempts: 0
    Number of keys: 1
    Key: vno 1, AES-256 CTS mode with 96-bit SHA-1 HMAC,
    no saltAttributes:REQUIRES_PRE_AUTH
    Policy: [none]
  5. 使用kdestroy命令销毁旧凭证,如清单10所示。
    清单10.销毁旧凭证
    # kdestroy
    # klist
    Unable to get cache name (ticket cache: /var/krb5/security/creds/krb5cc_0).Status 0x96c73ac3 - No credentials cache found.
  6. 获得新的凭证以验证加密类型的更改,如清单11所示。
    清单11.获得新的凭证
    # kinit admin/admin
    Password for admin/admin@REALM1.IBM.COM:
    # klist -e
    Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
    Default principal:  admin/admin@REALM1.IBM.COMValid starting     Expires            Service principal
    02/22/07 04:41:14  02/23/07 04:41:14  krbtgt/REAM1.IBM.COM@REAM1.IBM.COMEtype (skey, tkt):  AES-256 CTS mode with 96-bit SHA-1 HMAC,AES-256 CTS mode with 96-bit SHA-1 HMAC
  7. 同样,根据需要使用aes256-cts加密类型添加新的服务和用户主体。 (您可能需要使用ktadd命令在keytab文件中添加服务和用户ktadd 。)下面的清单12中显示了添加用户和服务主体的示例。
    清单12.添加用户和服务主体
    # kadmin.local
    kadmin.local:  listprincs
    K/M@REAM1.IBM.COM
    kadmin/admin@REAM1.IBM.COM
    kadmin/changepw@REAM1.IBM.COM
    kadmin/history@REAM1.IBM.COM
    krbtgt/REAM1.IBM.COM@REAM1.IBM.COM
    admin/admin@REAM1.IBM.COM
    kadmin.local:  ank -e aes256-cts:normal -randkey groupy
    WARNING: no policy specified for groupy@REAM1.IBM.COM;defaulting to no policy. Note that policy may be overridden byACL restrictions.
    Principal "groupy@REAM1.IBM.COM" created.
    kadmin.local:  ktadd -e aes256-cts:normal groupy
    Entry for principal groupy with kvno 3, encryption type AES-256 CTS mode with
    96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.

验证是否在keytab文件中成功添加了主体,如下面的清单13所示。

清单13.验证用户和服务主体
# kinit -kt /etc/krb5/krb5.keytab groupy
# klist -e
Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
Default principal:  groupy@REAM1.IBM.COMValid starting     Expires            Service principal
02/22/07 04:42:35  02/23/07 04:42:35  krbtgt/REAM1.IBM.COM@REAM1.IBM.COMEtype (skey, tkt):  AES-256 CTS mode with 96-bit SHA-1 HMAC,AES-256 CTS mode with 96-bit SHA-1 HMAC

设置KDC客户端

要设置KDC客户端,请使用以下步骤:

  1. 从AIX 5.3扩展CD安装NAS文件集。 安装NAS客户端文件集后,使用mkkrb5clnt命令配置Kerberos客户端。 请小心提供正确的KDC服务器和kdamin服务器名称,如下面的清单14所示。

    清单14.配置Kerberos客户端
    # mkkrb5clnt -d in.ibm.com -r REALM1.IBM.COM -c adfsaix5.in.ibm.com \-s adfsaix5.in.ibm.com
    Initializing configuration...
    Creating /etc/krb5/krb5_cfg_type...
    Creating /etc/krb5/krb5.conf...
    The command completed successfully.

    有关详细说明,请参见mkkrb5clnt手册页。

  2. 验证客户端可以与KDC服务器通信,如下面的清单15所示。
    清单15.验证客户端通信
    # kinit admin/admin
    Password for admin/admin@REALM1.IBM.COM:
    #
    # klist -e
    Ticket cache:  FILE:/var/krb5/security/creds/krb5cc_0
    Default principal:  admin/admin@REALM1.IBM.COMValid starting     Expires            Service principal
    02/22/07 04:43:14  02/23/07 04:43:14  krbtgt/REAM1.IBM.COM@REAM1.IBM.COMEtype (skey, tkt):  AES-256 CTS mode with 96-bit SHA-1 HMAC,AES-256 CTS mode with 96-bit SHA-1 HMAC
  3. 根据要求,添加具有aes256-cts加密类型的新服务和用户主体。 (您可能需要使用ktadd命令在keytab文件中添加服务和用户ktadd 。)

要在KDC服务器上添加所有必需的服务和用户主体,请在服务器上创建keytab文件,并将其通过FTP传输到所有客户端。

摘要

本文向您展示了如何配置充当KDC的IBM NAS 1.4以使用AES作为加密类型。 本文还介绍了可用于IBM NAS 1.4作为KDC服务器的信息,例如,具有安全通信的NFS等。


翻译自: https://www.ibm.com/developerworks/aix/library/au-kerberosaes/index.html

kerberos的 kdc_设置Kerberos版本5 KDC以使用AES加密相关推荐

  1. centos7上安装kerberos附java使用kerberos案例

    1.1安装kerberos服务端 先更新yum yum update 安装依赖包 yum -y install krb5-libs krb5-server 1.2.配置/etc/krb5.conf # ...

  2. CDH6安装kerberos(一)kerberos概念理解

    CDH6安装kerberos(一)kerberos概念理解 CDH6安装kerberos(二)kerberos部署 CDH6安装kerberos(三)CDH集群启用Kerberos CDH6安装ker ...

  3. data 谷歌浏览器更改user 路径_chrome浏览器的跨域设置——包括版本49前后两种设置...

    做前后分离的webapp开发的时候,出于一些原因往往需要将浏览器设置成支持跨域的模式,好在chrome浏览器就是支持可跨域的设置,网上也有很多chrome跨域设置教程.但是新版本的chrome浏览器提 ...

  4. anaconda更新python版本mac_055-Anaconda升级及mac设置python版本

    一.Anaconda升级 python遇到了莫名BUG,经确定,是版本问题导致. 以Anaconda从3.6升级到3.7举例. 本人遇到问题根源,如下两图: image.png image.png 这 ...

  5. qt套件中未设置qt版本, NO C++ compiler set in kit

    今天突然遇到 :qt套件中未设置qt版本,如图. 本人小白,错的地方还请大哥们指点,谢谢. 解决方法: 1.文件 --> 关闭项目; 删掉项目中的"项目名.pro.user" ...

  6. vs2015中无法设置Qt版本,qt project setting 是灰色,Qt无法编译ui文件

     自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.问题描述 从别人拿来的项 ...

  7. 解决java.io.IOException: Cannot run program “javac“问题,并设置jdk版本

    解决java.io.IOException: Cannot run program "javac"问题,并设置jdk版本 参考文章: (1)解决java.io.IOExceptio ...

  8. 01-虚拟机安装及网络设置-vmware版本

    虚拟机安装及网络设置-vmware版本 1 实验目标 准备虚拟机 配置linux网络 2 软件准备 虚拟机软件:VMware workstation 15 pro(15.5.6)自行下载并完成安装 操 ...

  9. 漫谈 IDEA 设置 JDK 版本

    漫谈 IDEA 设置 JDK 版本 背景 IDEA里是相当多的地方可以设置JDK版本,很多资深的开发都未必知道其中区别,以及设置后产生的影响.当然本人也没有完全搞清楚,所以也需要众人拾柴. 如果出现版 ...

  10. Intellij IDEA 设置JDK版本,同时安装Java11,1.8

    标题:Intellij IDEA 设置JDK版本,同时安装Java11,1.8 Intellij IDEA 设置JDK版本: 链接 同时安装Java11,1.8: 只要安装好了一个后,另外一个直接直接 ...

最新文章

  1. android 拼图课程设计,Flash拼图游戏制作课程设计报告
  2. torch.nn.functional.pad
  3. PaaS模式创新:实现应用可移植性
  4. [HDU 1254] 推箱子
  5. opencv recipe for target 'all' failed解决
  6. python print 用法
  7. 20161023 NOIP 模拟赛 T1 解题报告
  8. linux切换桌面环境bug,GNOME 3.32.2桌面环境发布,最新的bug和安全修复
  9. python try catch 能知道是哪一行代码_能导致3.7亿美元损失的异常,到底是怎么回事?...
  10. Redis 主从集群搭建及哨兵模式配置
  11. 有感而发 - 日新月异的SAP开发技术
  12. hotspot jvm_在Hotspot JVM中跟踪过多的垃圾收集
  13. linux packet socket,linux Packet socket (1)简单介绍
  14. C++基础17-纯虚函数和抽象类
  15. java导出excel float_【Java】导入导出Excel表格
  16. ARIMA时间序列分析
  17. 永磁同步电机模型之坐标变换
  18. oracle -varchar ,varchar2
  19. 欠采样临界采样matlab,信号临界采样、过采样、欠采样实验报告.doc
  20. SpringMVC 工作原理

热门文章

  1. 2019年7月中国编程语言排行榜,Julia工资近四万
  2. typora导出pdf文件缺失
  3. 数理统计之 置信区间2
  4. 计算机死机重装xp,XP系统电脑死机如何急救
  5. 一款轻量的支付宝支付组件
  6. win7 c盘空间不足怎么扩大
  7. echarts 柱状图圆柱_使用echarts画柱状图
  8. android裸眼图片,一种Android应用的裸眼3D显示方法与流程
  9. 微型计算机中lo设备的含义是,专转本计算机 基础知识.doc
  10. 禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming