分类: LINUX
2008-04-26 18:14:38
Kerberos区域是一个管理域,它有它自己的Kerberos数据库,每个Kerberos区域都有它自己的一套Kerberos服务员,你的区域名可以是任何内容,但是它应该映射到你在DNS中的区域,如果新Kerberos区域是为你的整个DNS域example.com准备的,你应该将你的Kerberos区域取一个相同的名字(所有字母大写,这是Kerberos的惯例):EXAMPLE.COM,或者,如果你正在example.com下创建一个新的工程部区域,你应该选项ENG.EXAMPLE.COM作为区域名。
创建你自己的区域的第一步是创建/etc/krb5.conf文件,它包括了所有关于这个区域的必需的信息,每个想访问你新的Kerberos区域的计算机都必需要krb5.conf文件,这里有一个区域EXAMPLE.COM的样本文件,KDC和管理服务器都运行在机器kdc.example.com上:
[libdefaults] # determines your default realm name default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { # specifies where the servers are and on # which ports they listen (88 and 749 are # the standard ports) kdc = kdc.example.com:88 admin_server = kdc.example.com:749 } [domain_realm] # maps your DNS domain name to your Kerberos # realm name .example.com = EXAMPLE.COM [logging] # determines where each service should write its # logging info kdc = SYSLOG:INFO:DAEMON admin_server = SYSLOG:INFO:DAEMON default = SYSLOG:INFO:DAEMON |
下一个文件是/usr/local/var/krb5kdc/kdc.conf,KDC服务器的配置文件,只有运行了KDC后台服务的计算机才需要这个文件,每个条目都有一个合理的默认值,创建一个空文件应该满足大多数情况:
% sudo touch /usr/local/var/krb5kdc/kdc.conf
下面的命令应该在你的KDC计算机上执行:
% sudo /usr/local/sbin/kdb5_util create –s
为新区域创建一个初始化Kerberos数据库,它要求你提供新区域数据库管理密码,并将其存储在文件/usr/local/var/krb5kdc/.k5.EXAMPLE.COM中,这个命令也创建了第一套委托人在你的Kerberos 5 帐户数据库中,你可以使用下面的命令列出它们:
% sudo /usr/local/sbin/kadmin.local
然后在kadmin.local提示符处输入listprincs,打印出一个列表:
K/M@EXAMPLE.COM
kadmin/admin@EXAMPLE.COM
kadmin/changepw@EXAMPLE.COM
kadmin/history@EXAMPLE.COM
krbtgt/EXAMPLE.COM@EXAMPLE.COM
在这时候,我们没有准备好使用远程的kadmin工具。
在你新的区域下开始创建任何委托人之前,你应该定义一个策略,由它来决定如何处理密码:
kadmin.local: add_policy -maxlife 180days -minlife ↪2days -minlength 8 -minclasses 3 ↪-history 10 default |
这个输入为我们从现在开始创建的委托人定义了默认的策略,它确定了密码的最长有效期是180天,最小是2天;密码最小长度是8个字符,这些字符必须来自5个可用类型中3个不同的类型:小写字母、大写字母、数字、标点符号和其他,保留最后10个密码的历史以便重新使用。如果你想用字典检查密码,象下面这样添加一个dict_file定义:
[realms] EXAMPLE.COM = { dict_file = /usr/share/dict/words } |
到你的kdc.conf文件中。
现在你就准备好给你自己创建一个管理委托人了:
kadmin.local: addprinc john/admin
调整名字为你的账号名,但保留/admin。然后它将要求你为这个委托人输入两次新密码。你可以用下面的命令来查看新账号:
kadmin.local: getprinc john/admin