IBM Network Authentication Service KDC 配置,第 1 部分
2008-11-26 08:14:58 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備胶绮崝锕傚礈濞嗘挸绀夐柕鍫濇川绾剧晫鈧箍鍎遍幏鎴︾叕椤掑倵鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝懐顦ч柣蹇撶箲閻楁鈧矮绮欏铏规嫚閺屻儱寮板┑鐐板尃閸曨厾褰炬繝鐢靛Т娴硷綁鏁愭径妯绘櫓闂佸憡鎸嗛崪鍐簥闂傚倷娴囬鏍垂鎼淬劌绀冮柨婵嗘閻﹂亶姊婚崒娆掑厡妞ゃ垹锕ら埢宥夊即閵忕姷顔夐梺鎼炲労閸撴瑩鎮橀幎鑺ョ厸闁告劑鍔庢晶鏇犵磼閳ь剟宕橀埞澶哥盎闂婎偄娲ゅù鐑剿囬敃鈧湁婵犲﹤鐗忛悾娲煛鐏炶濡奸柍瑙勫灴瀹曞崬鈻庤箛鎾寸槗缂傚倸鍊烽梽宥夊礉鎼达絽鍨濇い鏍仜妗呴梺鍛婃处閸ㄦ壆绮婚幎鑺ュ€甸柨婵嗙凹缁ㄨ棄霉閻樿崵鐣烘慨濠冩そ濡啫鈽夊▎鎰€烽梺璇插閻噣宕¢幎鑺ュ仒妞ゆ洍鍋撶€规洖鐖奸、妤佸緞鐎n偅鐝┑鐘愁問閸n垳寰婇崜褉鍋撶粭娑樻搐缁犳煡鏌涢妷顔煎闁藉啰鍠栭弻锝夊棘閹稿孩鍠愰梺鑽ゅ枎缂嶅﹪寮诲☉鈶┾偓锕傚箣濠靛洨浜俊鐐€ら崜娆撴偋閸℃稈鈧棃宕橀鍢壯囧箹缁厜鍋撻懠顒€鍤紓鍌氬€风欢锟犲窗濡ゅ懎绠伴柟闂寸劍閸嬧晠鏌i幋锝嗩棄缁绢厸鍋撻梻浣虹帛閸旀洜绮旈棃娴虫盯宕橀鍏兼К闂侀€炲苯澧柕鍥у楠炴帡骞嬪┑鎰磻闁诲氦顫夐幐椋庣矆娓氣偓閸╃偤骞嬮敂钘変汗闂佸湱绮敮鈺傚閳ь剛绱撴担鐟板姢鐟滄壆鍋熼崚鎺戔枎閹惧疇鎽曞┑鐐村灦閻喖鈻介鍫熺厵閻熸瑥瀚慨鍥ㄣ亜閵夛妇绠炴慨濠冩そ閺屽懘鎮欓懠璺侯伃婵犫拃鍌氬祮闁哄瞼鍠栭幖褰掝敃閿濆懐锛撻梻浣瑰缁诲嫰宕戝☉銏犵厴闁瑰濮崑鎾绘晲鎼存ê浜炬い鎾寸⊕濞呭﹪鏌$仦鐣屝f繛纰变邯楠炲繒浠﹂挊澶婅厫闂傚倷鐒﹂惇褰掑磹閺囥垹绠犻柟閭﹀枟椤洟鏌熼幆褏鎽犲┑顖涙尦閺屾盯骞橀弶鎴犵シ闂佸憡鎸稿畷顒勨€旈崘顔嘉ч柛鈩冾殘娴犳悂姊洪懡銈呮毐闁哄懏鐩幃楣冩倻閽樺)銊ф喐婢舵劕纾婚柟鍓х帛閺呮煡骞栫划鐟板⒉闁诲繐绉瑰铏圭磼濡闉嶅┑鐐插级閿曘垺淇婇悽绋跨妞ゆ牗姘ㄩ悿鈧梻鍌氬€搁悧濠勭矙閹邦喛濮抽柤娴嬫櫇绾捐棄霉閿濆牊顥夐柣鎾村姈閹便劌螣缁嬪灝顬嬪┑鈥冲级閸旀瑩鐛Ο鍏煎珰闁肩⒈鍓﹀Σ浼存⒒娴gǹ鏆遍柟纰卞亰瀹曟劖绻濆В绋挎喘瀵埖鎯旈幘瀛樻澑婵$偑鍊栧濠氬Υ鐎n亶鍟呴柕澶涜礋娴滄粍銇勯幘璺轰粶婵℃彃顭烽弻锝夋晲閸パ冨箣濡ょ姷鍋炵敮锟犵嵁鐎n喖绫嶉柍褜鍓熼幃妤佺節濮橆厸鎷洪柣鐔哥懃鐎氼參宕曞Δ鍛厱婵☆垵銆€閸嬫捇鎮㈤幓鎺戠阀濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻戦妵鍕箻閸楃偟浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厓闂佸灝顑呴悘锕傛煏閸パ冾伃妤犵偞甯″畷鍗烆渻閹屾缂傚倸鍊搁崐椋庣矆娓氣偓钘濋梺顒€绉撮弸浣糕攽閻樿櫕鐨戠€规挷绶氶弻娑㈠焺閸愵亖濮囬梺绋匡功閸忔﹢寮诲☉妯锋斀闁糕剝顨忔导鈧俊鐐€栧褰掑礉閺囥垹鐓橀柟杈鹃檮閸婂鏌涢妷銏℃珖閺嶏繝姊绘担鍛婂暈闁圭ǹ顭烽幃鐑芥晜閻e备鏀虫繝鐢靛Т濞诧箓宕甸崘顔界厓闁告繂瀚弳鐔兼煥濞戞瑧鐭掓慨濠囩細閵囨劙骞掗幋婊冩瀳闂備礁鎲¢悷銉︻殽閹间礁鐓濋柟鐐灱閸亪鏌涢銈呮灁闁告ɑ鎮傞弻锝堢疀閺囩偘鎴风紒缁㈠幖閻栫厧鐣烽幋锕€绠婚悹鍥皺閻も偓濠电偠鎻徊浠嬪箟閿熺姴纾规い鏍仦閳锋垹鐥鐐村櫣濞存粌缍婇幃璺衡槈閺嵮冨Е闂佺硶鏂侀崑鎾愁渻閵堝棗绗掗柛鐕佸亰閹啫煤椤忓懐鍘告繛杈剧到濠€杈ㄦ櫠椤忓牊鐓冮悷娆忓閻忔挳鏌熼鐣屾噰鐎殿喖鐖奸獮瀣偐鏉堫煈鏁囬梻鍌氬€风粈浣革耿鏉堛劎浠氶梻浣侯攰婵倗鍒掓惔銊ョ闁圭儤顨呯猾宥夋煕椤愩倕鏋庡ù鐘烘缁辨挻鎷呴崜鎻掑壍濡炪倖娲樻繛濠囧极閸愵喖纾兼繛鎴炶壘楠炲牓姊绘担鍛婃儓婵炲眰鍨藉畷婵嗙暆閸曨剙鈧爼鏌eΟ鑲╁笡闁绘挻娲熼弻鐔兼嚋椤掆偓婵$厧霉濠婂嫬鍔ら柍瑙勫灴閺佸秹宕熼鈩冩線闂備胶枪閿曘儵鎮ч悩鑼殾婵犻潧顑嗛弲婵嬫煃瑜滈崜鐔煎灳閿曞倸閿ゆ俊銈傚亾闁绘帒鐏氶妵鍕箳瀹ュ牆鍘$紓浣哄Т婢т粙鍩€椤掆偓閸樻粓宕戦幘鏂ユ斀闁绘ǹ浜粣鏃堟煕鐎n偒娈旈柍瑙勫灴椤㈡瑧娑甸悜鐣屽弽婵犵數鍋涢幏鎴犲緤閸啣锝夊箛閺夎法顔婇梺鐟板暱绾绢參宕伴幘璇茬闁绘ḿ绮崵鎴︽煠缁嬭法浠涙慨锝嗗姍濮婂宕掑顑藉亾閻戣姤鍤勯柤鍝ユ暩娴犳碍绻濋悽闈涗粶妞ゆ洦鍙冨畷妤€螣娓氼垰娈ㄥ銈嗗姂閸婃牜鈧碍姘ㄩ埀顒傛嚀婢瑰﹪宕伴弽褉鏋旈柕濠忓缁♀偓闂佹眹鍨藉ḿ褎鐗庣紓浣哄亾濠㈡ḿ绮旈悷閭﹀殨闁哄被鍎辩粻鐢告煙閻戞ḿ绠橀柛鐐垫暬閺岋綁鎮╅悜姗嗕哗闁诲繐绻堥崝宀勵敊韫囨稑唯鐟滃宕戦幘鑸靛枂闁告洦鍓欑喊宥呪攽閳藉棗浜濈紒璇插€块敐鐐剁疀濞戞瑦鍎梺闈╁瘜閸橀箖鏁嶅⿰鍐f斀闁宠棄妫楅悘鐘绘煙绾板崬浜伴柨婵堝仜椤撳ジ宕堕埡鍐跨闯濠电偠鎻紞渚€藟閹捐绀夌€广儱顦伴悡娆戠磼鐎n亞浠㈤柡鍡涗憾閺岋綁鏁愰崶褍骞嬪Δ鐘靛仜椤戝寮崘顔肩劦妞ゆ帒鍊绘稉宥呪攽閻樺磭顣查柛瀣剁秮閺屾盯濡烽幋婵嗘殶濡ょ姴娲幃妤冩喆閸曨剙纰嶇紓浣割槹閹告娊鍨鹃弮鍫濈妞ゆ柨妲堣閺屾盯鍩勯崗鐙€浜Λ鍕吋閸モ晝锛濇繛杈剧到婢瑰﹪宕曢幇鐗堢厱闁靛ǹ鍎遍。宕囩磼椤旂⒈鍎忔い鎾冲悑瀵板嫮鈧綆浜栭崑鎾绘煥鐎c劋绨婚梺鐟版惈缁夊爼藝閿旈敮鍋撳▓鍨灈闁诲繑绻堥崺鐐哄箣閿曗偓閻擄繝鏌涢埄鍐炬畼濞寸媭鍨跺娲川婵犲海鍔堕梺鍛婃处閸欏骸煤閸涘﹣绻嗛柕鍫濈箳閸掍即鏌涢悤浣哥仸鐎规洘鍔欏畷褰掝敃閿濆懎浼庢繝纰樻閸ㄦ娊宕㈣缁傚秵銈i崘鈺佲偓鍨叏濡厧浜鹃悗姘炬嫹

学习如何配置高可用性的可靠的 Kerberos 环境,管理 IBM® AIX® 和许多客户机上的多个 Kerberos 主-从 Key Distribution Centers(KDC)。本文是分为三部分的系列文章的第 1 部分。在本文中,学习如何配置和管理基本的主-从 KDC 设置。第 2 部分将讨论如何把从 KDC 更新为主 KDC。第 3 部分讲解如何配置用 LDAP 作为存储 Kerberos 数据的后端的主-从 KDC。
简介
IBM Network Authentication Service V1.4(IBM NAS)是 IBM 风格的 Kerberos,Kerberos 是一种流行的网络身份验证协议。AIX 在它的各种组件中使用 IBM NAS,比如 AIX Network File System V4(NFSv4)以及 AIX 集成的 login、rlogin、telnet、openSSH 等。选用 Kerberos 作为 AIX 系统的网络身份验证协议的各种企业通常会部署 IBM NAS。
IBM NAS 组件可以分为以下三类:
IBM NAS Server 组件:这个服务器组件主要由 KDC(Key Distribution Center)和 kadmind(Kerberos 管理服务器)功能组成。这个服务器组件只能在 AIX 上使用。
IBM NAS Client 组件:这个组件由一个客户机包、客户机运行时环境、示例文件和代码文件集组成。
IBM NAS Toolkit:这个组件由 IBM Network Authentication Service 应用程序开发工具集组成。
可以通过 AIX Expansion Pack CD 或 AIX Web Download Pack Programs 获得 IBM NAS for AIX 的这三个组件(参见 参考资料)。
为了改进可靠性、可用性和负载平衡,IBM NAS KDC 支持一种主-从配置,在这种配置中可以将 Kerberos 身份验证请求分布在不同的 AIX 服务器。IBM NAS KDC 的配置是一项重要的任务,从 KDC 的设置和配置也很重要。本文将指导您为 AIX 上的 IBM NAS 配置主 KDC 和从 KDC。
设置示例
在本文中,我们使用下面的机器安装和配置 IBM NAS 主 KDC 和从 KDC。还要使用 IBM NAS version 1.4.0.7,这可以通过 AIX Expansion Pack CD 或 IBM AIX Web Download Pack Programs 获得(参见 参考资料)。
Kerberos 管理员名称:
admin/admin
Kerberos 域名:
ISL.IN.IBM.COM
IBM NAS 1.4.0.7 主 KDC:
主机名:fsaix12.in.ibm.com 端口:88
操作系统:AIX 5.3
IBM NAS 1.4.0.7 管理服务器:
主机名:fsaix12.in.ibm.com 端口:749
操作系统:AIX 5.3
IBM NAS 1.4.0.7 从 KDC:
主机名:huntcup.in.ibm.com 端口:754
操作系统:AIX 5.2
针对主 KDC 配置的 IBM NAS 1.4.0.7 客户机:
主机名:aixdce3.in.ibm.com
操作系统:AIX 5.3
针对从 KDC 配置的 IBM NAS 1.4.0.7 客户机(以主 KDC 作为备用):
主机名:aixdce39.in.ibm.com
操作系统:AIX 5.3
图 1. Kerberos 主-从配置的设置示例
使用 lslpp 命令查看系统上当前安装的 IBM NAS 版本。
-bash-2.05b# lslpp -l | grep krb5
krb5.client.rte 1.4.0.7 COMMITTED Network Authentication Service
krb5.client.samples 1.4.0.7 COMMITTED Network Authentication Service
krb5.lic 1.4.0.7 COMMITTED Network Authentication Service
krb5.server.rte 1.4.0.7 COMMITTED Network Authentication Service
krb5.toolkit.adt 1.4.0.7 COMMITTED Network Authentication Service
krb5.client.rte 1.4.0.7 COMMITTED Network Authentication Service
krb5.server.rte 1.4.0.7 COMMITTED Network Authentication Service
-bash-2.05b#
另外,要确保使用 /usr/krb5/bin 和 /usr/krb5/sbin 中正确的 IBM NAS 二进制代码。如果使用不同于这两个路径的路径,应该相应地修改 PATH 环境变量。-bash-2.05b# which kinit
/usr/bin/kinit <---- INCORRECT IBM NAS BINARY
-bash-2.05b# export PATH=/usr/krb5/bin:/usr/krb5/sbin:$PATH
-bash-2.05b# which kinit
/usr/krb5/bin/kinit <---- CORRECT IBM NAS BINARY
-bash-2.05b#
使用旧有数据库的 IBM NAS 主 KDC
Kerberos 主 KDC 是整个 Kerberos 设置中最重要的实体。这个 KDC 对客户机(或服务)进行身份验证。它负责接收客户机要求证明其身份的请求并用身份验证信息回复它们(或者返回错误)。
因为 Kerberos 的用户信息可以存储在本地文件系统上的平面文件(即 “旧有数据库”)中,也可以存储在 LDAP 目录中,管理员需要相应地配置主 KDC。在下面的示例中,我们讨论如何设置使用旧有数据库的主 KDC。
为了配置 Kerberos KDC,IBM NAS 提供了一个容易使用的命令行界面,‘/usr/krb5/sbin/config.krb5’。这个 config.krb5 命令也可以用来配置从 KDC 和 Kerberos 客户机(在本文后面会看到)。
config.krb5 命令的语法如下: bash-2.05b# /usr/krb5/sbin/config.krb5
配置服务器的命令如下:/usr/krb5/sbin/config.krb5 -h | -S [-a admin] -d domain -r realm
[[-l { ldapserver | ldapserver:port }] [-u ldap_DN -p
ldap_DN_pw] [-f {keyring |
keyring:entry_dn} -k keyring_pw] [-m masterkey_location] [-b
bind_type] [-R ldap_replica_list]]
在从 KDC 机器上配置从 KDC 的命令如下:/usr/krb5/sbin/config.krb5 -h | -E -d domain -r realm -s server { [-a admin] | -l
{ ldapserver | ldapserver:port } -u ldap_DN -p ldap_DN_PW [-f {keyring |
keyring:entry_dn} -k keyring_pw] [-b bind_type]
[-R ldap_replica_list] }
在主服务器机器上配置从 KDC 的命令如下:/usr/krb5/sbin/config.krb5 -h | -P -r realm -d domain -e slave_KDC -g
配置客户机的命令如下:/usr/krb5/sbin/config.krb5 -h | [-C] -r realm -d domain { -c KDC -s server | -l
{ ldapserver | ldapserver:port_number } [-c KDC -s server] }
-bash-2.05b#
下面是在配置使用旧有数据库的主 KDC 时 config.krb5 命令必需的参数:
-S | 表示要配置一个主 KDC。 |
-d <domain> | <domain> 是 Kerberos 域所属的域。 |
-r <realm> | <realm> 是这个主 KDC 将驻留的 Kerberos 域。 |
在使用 config.krb5 命令之前,要确保系统的主机名设置为完全限定域名(FQDN)。在 AIX 上可以使用 ‘hostname’ 命令检查或修改主机名。
现在,我们在 fsaix12.in.ibm.com 服务器上配置一个使用旧有数据库的主 KDC:bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# config.krb5 -S -d in.ibm.com -r ISL.IN.IBM.COM
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 'ISL.IN.IBM.COM'
master key name 'K/M@ISL.IN.IBM.COM'
You are prompted for the database Master Password.
It is important that you DO NOT FORGET this password.
Enter database Master Password: <------ Enter database password to set.
Re-enter database Master Password to verify: <----------- re-enter password.
WARNING: no policy specified for admin/admin@ISL.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Enter password for principal "admin/admin@ISL.IN.IBM.COM": <------ Enter Kerberos
administrator password to set.
Re-enter password for principal "admin/admin@ISL.IN.IBM.COM": <------ re-enter password.
Principal "admin/admin@ISL.IN.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.
-bash-2.05b#
下面解释以上命令完成的操作:
创建 Kerberos 配置文件(/etc/krb5/krb5.conf、/var/krb5/krb5kdc/kdc.conf 和 /etc/krb5/krb5_cfg_type)。IBM NAS 组件使用这些配置文件获得关于 Kerberos 设置的信息。
创建 Kerberos 主体数据库(/var/krb5/krb5kdc/principal)。当配置为旧有数据库时,在这里存储所有 Kerberos 主体和策略信息。
替我们创建重要的 Kerberos 主体(比如 admin/admin、kadmin/admin 等等)。kadmin 接口等 Kerberos 管理实用程序要使用这些主体。
创建 kadmind keytab 文件和 ACL 文件。Kerberos 管理服务器(kadmind)要使用这些文件。
启动 Kerberos 守护进程(krb5kdc 和 kadmind)。
现在,主 KDC 已经设置完并开始运行。使用 ps 命令检查这些守护进程是否正在运行。bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# ps -ef| grep krb5 | grep -v grep
root 22414 1 0 May 12 - 0:00 /usr/krb5/sbin/krb5kdc
root 24210 1 0 May 12 - 0:02 /usr/krb5/sbin/kadmind
bash-2.05b#
由于系统上已经有 IBM NAS 配置,config.krb5 命令可能无法运行,可能会看到下面这样的输出:bash-2.05b# config.krb5 -S -d in.ibm.com -r ISL.IN.IBM.COM
Initializing configuration...
/etc/krb5/krb5_cfg_type already exists.
Configuration cannot be completed.
A previous configuration exists.
To remove the existing configuration, run the unconfig.krb5 command.
bash-2.05b#
如果确实希望覆盖任何现有的配置,那么运行 ‘/usr/krb5/sbin/unconfig.krb5’ 命令来取消以前的配置,然后重试一次。bash-2.05b# unconfig.krb5
Warning: All configuration information will be removed.
Do you wish to continue? [y/n]
y
Removing configuration...
Stopping /usr/krb5/sbin/krb5kdc...
/usr/krb5/sbin/krb5kdc was stopped successfully.
Stopping /usr/krb5/sbin/kadmind...
/usr/krb5/sbin/kadmind was stopped successfully.
The command completed successfully.
bash-2.05b#
要想检查现有 IBM NAS Kerberos 配置的类型,应该检查 /etc/krb5/krb5_cfg_type 文件的内容。bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# cat /etc/krb5/krb5_cfg_type
master
bash-2.05b#
对于主 KDC,这个文件显示 ‘master’。对于从 KDC,这个文件显示 ‘slave’。对于简单的客户机,则显示 ‘client’。
注意,在配置 IBM NAS 主或从 KDC 时,已经在机器上配置了 IBM NAS 客户机,所以不需要显式地配置这个客户机。
要想检查主 KDC 的配置是否正确,可以使用 /usr/krb5/bin/kinit 尝试获取一个 Kerberos 票证:bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# /usr/krb5/bin/kdestroy
bash-2.05b# /usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
bash-2.05b#
要想查看刚才获得的票证,应该使用 /usr/krb5/bin/klist 命令:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: admin/admin@ISL.IN.IBM.COM
Valid starting Expires Service principal
05/13/08 19:40:40 05/14/08 19:40:37 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
另外,使用 /usr/krb5/sbin/kadmin 接口检查 kadmind 是否正常:
bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
kadmin: getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
kadmin: q
bash-2.05b#
因为能够看到主体的列表,所以这个主 KDC 是正常的。现在,学习如何为这个主 KDC 配置从 KDC。
配置使用旧有数据库的 IBM NAS 从 KDC
在实际的生产环境中,可能给 Kerberos KDC 配置数百甚至数千个 Kerberos 客户机。有时候,KDC 可能由于连续请求负载过大而拒绝客户机的请求,甚至可能由于某些原因停止运行。在这种情况下,Kerberos 从 KDC 会接替主 KDC 的工作。
从 KDC 作为主 KDC 的备用,会在停电、网络故障、火灾或其他灾难等紧急情况下接替主 KDC 的工作。它还起到负载平衡的作用,可以减轻主 KDC 的负担。建立从 KDC 有助于确保连续满足客户机的身份验证请求。在一个 Kerberos 域中可以有多个从 KDC。建议为每个主 KDC 设置至少一个从 KDC。
主 KDC 和从 KDC 之间的主要差异之一是,主 KDC 还运行管理服务器守护进程(kadmind)。在整个域中只有一个 kadmind 服务器,它驻留在主 KDC 机器上。另外,主 KDC 有 Kerberos 数据库(旧有数据库)的读-写拷贝,而从 KDC 有 Kerberos 数据库的只读拷贝。
配置 IBM NAS 从 KDC 需要具备 Kerberos 方面的专业经验,而且要求比较了解主-从场景。配置步骤包括最初的 IBM NAS 配置,然后把主 KDC 上的 Kerberos 数据库传输到从 KDC。
注意,在配置从 KDC 时,还需要访问主 KDC 机器以执行数据库传输命令。
仍然使用 /usr/krb5/sbin/config.krb5 命令配置从 KDC,但是这一次使用 -E 选项。在使用旧有数据库的从 KDC 配置中,可以使用下面的 config.krb5 选项:
-E | 表示要配置一个从 KDC。 |
-d <domain> | <domain> 是 Kerberos 域所属的域。 |
-r <realm> | <realm> 是主 KDC 所在的 Kerberos 域。 |
-s <server> | <server> 是运行 KDC 和 kadmind 管理服务器的机器的主机名。 |
现在,我们看看配置步骤。但是,在执行任何操作之前,要确保从 KDC 机器使用一个完全限定的主机名。
在从机器(对于这个示例是 huntcup.in.ibm.com)上,作为 root 用户登录并运行包含以下选项的 config.krb5 命令:-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# /usr/krb5/sbin/config.krb5 -E -d in.ibm.com -r ISL.IN.IBM.COM -s
fsaix12.in.ibm.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
Creating /var/krb5/krb5kdc/kdc.conf...
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
Creating /etc/krb5/krb5.keytab...
Creating /var/krb5/krb5kdc/kpropd.acl...
在主服务器机器(fsaix12.in.ibm.com)上,运行以下命令:/usr/krb5/sbin/config.krb5 -P -r ISL.IN.IBM.COM -d in.ibm.com -e huntcup.in.ibm.com
Have you successfully run the above command? [y/n]
这时,命令等待用户输入。它询问用户是否在主服务器上运行上面的 ‘config.krb5 -P’ 命令。我们来看看所有选项的意思:
-P | 让主 KDC 在配置期间把 Kerberos 数据库传输到从 KDC。 |
-r <realm> | 指定运行主 KDC 的 Kerberos <realm> 的名称。 |
-d <domain> | 指定 Kerberos 域所属的 <domain>。 |
-e <slave_kdc_hostname> | 指定将驻留从 KDC 的机器的主机名。 |
目前,不要在从机器上做任何操作,在主服务器机器上运行以下命令:bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# /usr/krb5/sbin/config.krb5 -P -r ISL.IN.IBM.COM -d in.ibm.com -e
huntcup.in.ibm.com
Creating host/fsaix12.in.ibm.com@ISL.IN.IBM.COM...
Principal "host/fsaix12.in.ibm.com@ISL.IN.IBM.COM" created.
Creating /etc/krb5/krb5.keytab...
Creating a dump of the database...
Propagating the database to the slave KDC, huntcup.in.ibm.com ...
Database propagation to huntcup.in.ibm.com: SUCCEEDED
The command completed successfully.
bash-2.05b#
这个命令尝试把 Kerberos 数据库传输到从 KDC。出现成功消息之后,在从机器上单击 y 继续从配置过程:
Have you successfully run the above command? [y/n]
y
Unable to retrieve master key.
Status 0x96c73afe - Cannot find or read the stored master key
Warning: proceeding without master key.
Enter database Master Password: <------ Enter database password here.
Starting krb5kdc...
krb5kdc was started successfully.
The command completed successfully.
bash-2.05b#
当从配置成功完成之后,可以运行 ps 命令来检查正在运行的从 KDC:
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# ps -ef |grep krb5kdc | grep -v grep
root 14286 1 0 15:20:17 - 0:00 /usr/krb5/sbin/krb5kdc
这时还可以检查 IBM NAS 配置类型:
-bash-2.05b# cat /etc/krb5/krb5_cfg_type
slave
要想检查配置是否正确,可以使用 /usr/krb5/bin/kinit 尝试获取一个 Kerberos 票证:
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# /usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
-bash-2.05b#
使用 /usr/krb5/bin/klist 命令检查刚才获得的票证:
-bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: admin/admin@ISL.IN.IBM.COM
Valid starting Expires Service principal
05/15/08 16:29:17 05/16/08 16:29:17 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
Renew until 05/16/08 16:29:35
-bash-2.05b#
还可以检查管理服务器(也在主 KDC 机器上)的配置是否正确,从 KDC 是否可以联系它:
-bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
kadmin: getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
kadmin: q
-bash-2.05b#
这证明已经为主 KDC 成功地配置了从 KDC。
把 IBM NAS 数据库传输到从 KDC
在 Kerberos 环境中,通常有多个从 KDC 处理来自网络各处的许多客户机身份验证请求。因此,存在 Kerberos 数据库的多个拷贝(主 KDC 有一个拷贝,每个从 KDC 各有一个拷贝)。因为修改只发生在 Kerberos 管理服务器(kadmind)拥有的主拷贝上,所以主服务器机器要负责及时地把修改传输到所有 Kerberos 数据库拷贝。
所有从 KDC 都就位之后,Kerberos 管理员需要设置从数据库。在主 KDC 上使用 /usr/krb5/sbin/kprop 命令并在从 KDC 上使用 /usr/krb5/sbin/kpropd 守护进程,把 Kerberos 数据库从主 KDC 传输到从 KDC。这个传输过程需要设置从 KDC 和主 KDC 。这些设置是由 config.krb5 命令自动完成的。理解这些设置是很重要的,可能有助于排除故障。
我们来逐一讨论这些设置:
主机主体
为了保证传输的安全,Kerberos 数据库的传输使用 Kerberos 身份验证和加密。为此,每个 KDC 的 Kerberos 数据库中都需要有一个主机主体。这个主机主体是用名称 ‘host/<hostname>’ 创建的,其中的主机名应该是从 KDC(比如 huntcup.in.ibm.com)的完全限定主机名。这个主机主体条目应该出现在从 KDC 的 keytab 文件中。
另外,在从 KDC 上的 /var/krb5/krb5kdc/kpropd.acl 文件中需要提到这个主机主体。这个文件包含被授权把 Kerberos 数据库传输到从 KDC 的主体的名称。
我们已经配置了一个从 KDC,现在可以检查以上设置是否已经自动完成了。在主 KDC 上使用 /usr/krb5/sbin/kadmin.local 接口检查从 KDC(huntcup.in.ibm.com)的主机主体条目:
bash-2.05b# hostname
fsaix12.in.ibm.com
bash-2.05b# kadmin.local -q getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
host/fsaix12.in.ibm.com@ISL.IN.IBM.COM
host/huntcup.in.ibm.com@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
在从 KDC 上使用 /usr/krb5/bin/klist 命令检查 keytab 条目:
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# /usr/krb5/bin/klist -k
Keytab name: FILE:/etc/krb5/krb5.keytab
KVNO Principal
---- ---------
3 host/huntcup.in.ibm.com@ISL.IN.IBM.COM
3 host/huntcup.in.ibm.com@ISL.IN.IBM.COM
3 host/huntcup.in.ibm.com@ISL.IN.IBM.COM
3 host/huntcup.in.ibm.com@ISL.IN.IBM.COM
-bash-2.05b#
在从 KDC 上,可以使用 kpropd 守护进程检查 ACL 文件(比如 /var/krb5/krb5kdc/kpropd.acl)。
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# cat /var/krb5/krb5kdc/kpropd.acl
host/fsaix12.in.ibm.com@ISL.IN.IBM.COM
-bash-2.05b#
/etc/inetd.conf 和 /etc/services 中的 kpropd 条目
因为 kpropd 是一个守护进程,当要求接受传输的请求到达从 KDC 时会激活它,所以应该在 /etc/inetd.conf 文件中设置一个 kpropd 条目。这样的话,操作系统就可以确保执行正确的二进制代码。config.krb5 命令自动设置这个条目。可以通过检查从 KDC 上的 /etc/inetd.conf 文件来检查这个条目:
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# grep kprop /etc/inetd.conf
krb5_prop stream tcp nowait root /usr/krb5/sbin/kpropd kpropd
-bash-2.05b#
另外,在 /etc/services 文件中需要一个 krb5_prop 条目,指定守护进程要监听请求的端口号(默认端口是 754)。
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# grep krb5_prop /etc/services
krb5_prop 754/tcp # kerberos 5 slave propagation
-bash-2.05b#
这些就是数据库传输的前提条件。
下面看看实际传输这个数据库的过程:
首先,在主 KDC 上需要把主数据库转储到一个文件中。这要使用 /usr/krb5/sbin/kdb5_util dump 命令:-bash-2.05b# hostname
fsaix12.in.ibm.com
-bash-2.05b# /usr/krb5/sbin/kdb5_util dump -verbose /var/krb5/krb5kdc/krb5_dump
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
host/fsaix12.in.ibm.com@ISL.IN.IBM.COM
host/huntcup.in.ibm.com@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
-bash-2.05b#
这会在指定的位置上创建转储文件。很容易检查这个文件:
-bash-2.05b# ls -lrt /var/krb5/krb5kdc/
total 104
-rw-r----- 1 root security 723 May 12 19:51 kdc.conf
-rw------- 1 root system 0 May 12 19:51 principal.kadm5.lock
-rw------- 1 root system 8192 May 12 19:51 principal.kadm5
-rw------- 1 root system 30 May 12 19:51 .k5.ISL.IN.IBM.COM
-rw------- 1 root system 574 May 12 19:51 kadm5.keytab
-rw-r----- 1 root security 135 May 12 20:25 kadm5.acl
-rw------- 1 root system 16384 May 15 16:19 principal
-rw------- 1 root system 0 May 15 16:19 principal.ok
-rw------- 1 root system 1 May 22 16:20 krb5_dump.dump_ok
-rw------- 1 root system 6960 May 22 16:20 krb5_dump
-bash-2.05b#
现在,需要把这个转储文件传输到从 KDC。这要使用 /usr/krb5/sbin/kprop 命令。-bash-2.05b# hostname
fsaix12.in.ibm.com
-bash-2.05b#
/usr/krb5/sbin/kprop -f /var/krb5/krb5kdc/krb5_dump -d huntcup.in.ibm.com
6960 bytes sent.
Database propagation to huntcup.in.ibm.com: SUCCEEDED
-bash-2.05b#
这时,kprop 命令联系主 KDC,使用主 KDC(host/fsaix12.in.ibm.com)的主机主体获取从 KDC(host/huntcup.in.ibm.com)主机主体所需的服务票证;通过身份验证之后,安全地把数据库转储文件传输到从 KDC。在执行 kprop 命令之后,可以使用 krb5kdc 日志文件检查结果;这个日志文件(/var/krb5/krb5kdc/krb5kdc.log)应该包含下面这样的内容:
……
……
May 22 16:28:42 fsaix12.in.ibm.com /usr/krb5/sbin/krb5kdc[22430](info):
AS_REQ (5 etypes
{16 23 18 3 1}) 9.182.192.35(88): ISSUE: authtime 1211452122,
etypes {rep=16 tkt=16
ses=16}, host/fsaix12.in.ibm.com@ISL.IN.IBM.COM for
host/huntcup.in.ibm.com@ISL.IN.IBM.COM
这就是把 Kerberos 主体数据库传输到从 KDC 的所有步骤。尽管这个过程非常简单,但是如果需要数据库传输的从 KDC 很多,这个任务会很麻烦。一种好做法是编写一个简单的脚本,替我们执行所有从 KDC 的传输任务。更好的方法是把这个脚本设置为主 KDC 上的 cron 作业,这样就可以定期执行它。在下一节中,讨论如何实现这种做法。
简单的 Kerberos 数据库传输脚本
可以使用下面这个非常简单的 shell 脚本进行数据库传输。
-bash-2.05b# cat prop_krb5_database.sh
#!/bin/sh
KDCLIST = "slave1.in.ibm.com slave2.in.ibm.com slave3.in.ibm.com"
DUMP_FILE = "/var/krb5/krb5kdc/krb5_dump"
/usr/krb5/sbin/kdb5_util dump $DUMP_FILE
for kdc in $KDCLIST
do
/usr/krb5/bin/kprop -f $DUMP_FILE $kdc
done
-bash-2.05b#
这个脚本创建数据库转储并把它传输到所有从 KDC。请把 slave1.in.ibm.com、slave2.in.ibm.com 等等替换为自己的从 KDC 主机名。
要想作为 cron 作业运行这个 shell 脚本,应该使用 AIX 命令 crontab,如下所示:
-bash-2.05b# crontab -e
这会打开一个文本编辑器(默认编辑器是 'vi')来添加 cron 作业。您会看到现有的所有 cron 作业,然后在末尾添加新的 cron 作业。输入以下文本:
59 23 * * * /var/krb5/krb5kdc/prop_krb5_database.sh
单击 :wq!(保存并退出的 vi 命令)保存条目并返回到提示。添加的这一行会在每天的 11:59 pm 运行脚本 ‘/var/krb5/krb5kdc/prop_krb5_database.sh’。
关于 cron 作业命令和选项的更多信息,参见 crontab AIX 命令的主页。
关于如何决定 Kerberos 数据库传输的频率(只适用于旧有数据库),请参考 AIX Version 5.3 Expansion Pack CD 附带的 IBM NAS Version 1.4 Administration Guide。
使用 crontab -l 命令检查 cron 表中的条目。在我们的主 KDC 机器上,这个命令显示:
-bash-2.05b# hostname
fsaix12.in.ibm.com
-bash-2.05b# crontab -l
0 11 * * * /usr/bin/errclear -d S,O 30
0 12 * * * /usr/bin/errclear -d H 90
0 15 * * * /usr/lib/ras/dumpcheck >/dev/null 2>&1
# SSA warning : Deleting the next two lines may cause errors in redundant
# SSA warning : hardware to go undetected.
01 5 * * * /usr/lpp/diagnostics/bin/run_ssa_ela 1>/dev/null 2>/dev/null
0 * * * * /usr/lpp/diagnostics/bin/run_ssa_healthcheck 1>/dev/null 2>/dev/null
# SSA warning : Deleting the next line may allow enclosure hardware errors to go
undetected
30 * * * * /usr/lpp/diagnostics/bin/run_ssa_encl_healthcheck 1>/dev/null 2>/dev/null
# SSA warning : Deleting the next line may allow link speed exceptions to go undetected
30 4 * * * /usr/lpp/diagnostics/bin/run_ssa_link_speed 1>/dev/null 2>/dev/null
0 00,12 * * * wall%rc.powerfail:1::WARNING!!! The system is now operating with cooling
problem. This message will be walled every 12 hours. Remove this crontab entry
after the problem is resolved.
59 23 * * * /var/krb5/krb5kdc/prop_krb5_database.sh
-bash-2.05b#
这就是自动执行数据库传输任务的过程。既然主 KDC 和从 KDC 都已经准备好了,下面就讨论如何针对这些机器配置客户机。
设置 IBM NAS Kerberos 客户机
Kerberos 主 KDC 和从 KDC 就位之后,下一个任务是针对这些 KDC 配置和设置 Kerberos 客户机。根据需求的不同,可以让客户机直接针对主 KDC,也可以针对从 KDC 并以主 KDC 作为备用。我们来看看这两种方法。首先,针对主 KDC(在 fsaix12.in.ibm.com 上运行)配置客户机。
直接针对主 KDC 配置 IBM NAS 客户机
在配置 IBM NAS 客户机时,仍然使用 config.krb5 命令,但是包含 ‘-C’ 标志和其他标志。我们来看看用来配置客户机的标志:
-C | 表示要配置一个 IBM NAS 客户机。 |
-d <domain> | 指定 Kerberos 域 <domain> 的名称。 |
-r <realm> | 指定运行主 KDC 的 Kerberos <realm> 的名称。 |
-c <KDC> | 指定运行主 KDC 服务器的机器的主机名。 |
-s <server> | 指定运行 kadmind 管理服务器的机器的主机名。 |
在运行这个命令之前,要确保客户机机器使用一个完全限定的主机名,而且当前日期和时间与主 KDC 同步。我们使用 aixdce3.in.ibm.com 作为客户机机器。现在,作为根用户登录并运行带适当选项的 config.krb5:
bash-2.05b# hostname
aixdce3.in.ibm.com
bash-2.05b# config.krb5 -C -d in.ibm.com -r ISL.IN.IBM.COM -c fsaix12.in.ibm.com -s
fsaix12.in.ibm.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
The command completed successfully.
bash-2.05b#
上面的客户机设置命令仅仅创建 IBM NAS 配置文件。这时 /etc/krb5/krb5_cfg_type 文件会包含表示客户机配置的 ‘client’。
IBM NAS 客户机配置文件 /etc/krb5/krb5.conf 包含 Kerberos 信息,比如:
bash-2.05b# hostname
aixdce3.in.ibm.com
bash-2.05b# cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ISL.IN.IBM.COM
default_keytab_name = FILE:/etc/krb5/krb5.keytab
default_tkt_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
default_tgs_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
[realms]
ISL.IN.IBM.COM = {
kdc = fsaix12.in.ibm.com:88
admin_server = fsaix12.in.ibm.com:749
default_domain = in.ibm.com
}
[domain_realm]
.in.ibm.com = ISL.IN.IBM.COM
fsaix12.in.ibm.com = ISL.IN.IBM.COM
[logging]
kdc = FILE:/var/krb5/log/krb5kdc.log
admin_server = FILE:/var/krb5/log/kadmin.log
default = FILE:/var/krb5/log/krb5lib.log
bash-2.05b#
请注意,这里的 ‘kdc’ 和 ‘admin_server’ 条目都指向相同的主 KDC 机器(因为两个 Kerberos 守护进程都在这台机器上运行)。
要想检查客户机设置,需要使用 ‘/usr/krb5/bin/kinit’ 和 ‘/usr/krb5/bin/klist’ 命令,如下所示:
bash-2.05b# hostname
aixdce3.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: admin/admin@ISL.IN.IBM.COM
Valid starting Expires Service principal
05/22/08 09:46:13 05/23/08 09:43:53 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
另外,使用 kadmind 接口检查客户机是否可以联系 kadmind 服务器:
bash-2.05b# /usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
kadmin: getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
host/fsaix12.in.ibm.com@ISL.IN.IBM.COM
host/huntcup.in.ibm.com@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
kadmin: q
bash-2.05b#
现在,Kerberos 客户机已经配置好了,这个客户机直接针对主 KDC。在下一节中,看看如何针对从 KDC 配置客户机并以主 KDC 作为备用。
针对从 KDC 配置 IBM NAS 客户机(以主 KDC 作为备用)
这种情况下的配置步骤与前面相似。这一次,客户机机器是 ‘aixdce39.in.ibm.com’。
在运行 config.krb5 命令时,使用的所有选项与前一个示例相同。惟一的差异是,这一次用 -c 指定从 KDC 机器的主机名,而不是主 KDC。
现在在这台机器上配置客户机:
[root@aixdce39 / ] #hostname
aixdce39.in.ibm.com
[root@aixdce39 / ] #config.krb5 -C -d in.ibm.com -r ISL.IN.IBM.COM -c
huntcup.in.ibm.com -s fsaix12.in.ibm.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
The command completed successfully.
[root@aixdce39 / ] #
检查 /etc/krb5/krb5.conf 文件:
[root@aixdce39 / ] #cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ISL.IN.IBM.COM
default_keytab_name = FILE:/etc/krb5/krb5.keytab
default_tkt_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
default_tgs_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
[realms]
ISL.IN.IBM.COM = {
kdc = huntcup.in.ibm.com:88
admin_server = fsaix12.in.ibm.com:749
default_domain = in.ibm.com
}
[domain_realm]
.in.ibm.com = ISL.IN.IBM.COM
fsaix12.in.ibm.com = ISL.IN.IBM.COM
huntcup.in.ibm.com = ISL.IN.IBM.COM
[logging]
kdc = FILE:/var/krb5/log/krb5kdc.log
admin_server = FILE:/var/krb5/log/kadmin.log
default = FILE:/var/krb5/log/krb5lib.log
[root@aixdce39 / ] #
这一次,客户机将与从 KDC(huntcup.in.ibm.com)通信。用 /usr/krb5/bin/kinit 和 /usr/krb5/bin/klist 命令检查配置。
[root@aixdce39 / ] #hostname
aixdce39.in.ibm.com
[root@aixdce39 / ] #/usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
[root@aixdce39 / ] #/usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: admin/admin@ISL.IN.IBM.COM
Valid starting Expires Service principal
05/22/08 20:12:38 05/23/08 20:12:25 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
[root@aixdce39 / ] #
另外,使用 /usr/krb5/sbin/kadmin 命令检查 kadmin 接口:
[root@aixdce39 / ] #/usr/krb5/sbin/kadmin -p admin/admin
Authenticating as principal admin/admin@ISL.IN.IBM.COM with password.
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
kadmin: getprincs
K/M@ISL.IN.IBM.COM
admin/admin@ISL.IN.IBM.COM
host/fsaix12.in.ibm.com@ISL.IN.IBM.COM
host/huntcup.in.ibm.com@ISL.IN.IBM.COM
kadmin/admin@ISL.IN.IBM.COM
kadmin/changepw@ISL.IN.IBM.COM
kadmin/history@ISL.IN.IBM.COM
krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
kadmin: q
[root@aixdce39 / ] #
既然一切正常,下面就让客户机把主 KDC 作为在从 KDC 出问题时使用的备用机器。为此,需要修改 /etc/krb5/krb5.conf 文件。编辑这个文件并添加 kdc = <master_KDC_hostname>,如下所示:[root@aixdce39 / ] #cat /etc/krb5/krb5.conf
[libdefaults]
default_realm = ISL.IN.IBM.COM
default_keytab_name = FILE:/etc/krb5/krb5.keytab
default_tkt_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
default_tgs_enctypes = des3-cbc-sha1 arcfour-hmac aes256-cts des-cbc-md5
des-cbc-crc
[realms]
ISL.IN.IBM.COM = {
kdc = huntcup.in.ibm.com:88
kdc = fsaix12.in.ibm.com:88
admin_server = fsaix12.in.ibm.com:749
default_domain = in.ibm.com
}
[domain_realm]
.in.ibm.com = ISL.IN.IBM.COM
fsaix12.in.ibm.com = ISL.IN.IBM.COM
huntcup.in.ibm.com = ISL.IN.IBM.COM
[logging]
kdc = FILE:/var/krb5/log/krb5kdc.log
admin_server = FILE:/var/krb5/log/kadmin.log
default = FILE:/var/krb5/log/krb5lib.log
[root@aixdce39 / ] #
在 /etc/krb5/krb5.conf 中添加两个 ‘kdc’ 条目的目的是,让这个客户机尝试联系首先列出的 KDC,如果第一个 KDC 不可用,就联系列出的第二个 KDC。如果愿意,可以指定更多的 KDC,但是总会使用第一个可用的条目。
为了检查备用机制,停止 huntcup.in.ibm.com 上的从 KDC,这会迫使客户机使用 fsaix12.in.ibm.com 上的主 KDC。
可以使用 /usr/krb5/sbin/start.krb5 和 /usr/krb5/sbin/stop.krb5 命令启动和停止 IBM NAS 守护进程。更多信息请参考 AIX Version 5.3 Expansion Pack CD 附带的 IBM NAS Version 1.4 Administration Guide。
运行以下命令停止从 KDC:
-bash-2.05b# hostname
huntcup.in.ibm.com
-bash-2.05b# stop.krb5 krb5kdc
Stopping /usr/krb5/sbin/krb5kdc...
/usr/krb5/sbin/krb5kdc was stopped successfully.
The command completed successfully.
-bash-2.05b#
在客户机上尝试运行 /usr/krb5/bin/kinit 命令。
[root@aixdce39 / ] #hostname
aixdce39.in.ibm.com
[root@aixdce39 / ] #/usr/krb5/bin/kinit admin/admin
Password for admin/admin@ISL.IN.IBM.COM: <------ Enter Kerberos administrator
password here.
[root@aixdce39 / ] #/usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: admin/admin@ISL.IN.IBM.COM
Valid starting Expires Service principal
05/22/08 20:38:03 05/23/08 20:38:03 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
Renew until 05/23/08 20:38:09
[root@aixdce39 / ] #
可以看出,如果从 KDC 停止运行了,客户机可以无缝地连接主 KDC 并继续运行。
结束语
本文是分为三部分的系列文章的第 1 部分,讨论了使用旧有数据库的 IBM NAS 从 KDC 的配置和使用方法。第 2 部分将讨论如何把从 KDC 更新为主 KDC。第 3 部分讲解如何配置用 LDAP 作为存储 Kerberos 数据的后端的主-从 KDC。
Tags:IBM Network Authentication
编辑录入:爽爽 [复制链接] [打 印]- ››IBM WebSphere常见问题解答
- ››IBM WebSphere Studio V5相关认证资料
- ››IBM WebSphere应用服务器发展趋势
- ››IBM WebSphere Application Server诊断和调优(一...
- ››IBM WebSphere Application Server诊断和调优(二...
- ››IBM WebSphere Performance Pack服务器
- ››IBM WebSphere软件概述
- ››IBM PowerVM 实战手册,第 3 部分 : VIO server 配...
- ››IBM PowerVM 实战手册,第 2 部分 : VIO server 准...
- ››IBM p 系列服务器系统固件升级攻略
- ››IBM PowerVM 概述
- ››IBM Systems Director 在 AIX 上的常见问题及解决...
更多精彩
赞助商链接