在 AIX V6 上的 telnet、FTP 和 r 命令中配置和启用 Kerberos 身份验证
2008-09-06 08:18:01 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備胶绮崝锕傚礈濞嗘挸绀夐柕鍫濇川绾剧晫鈧箍鍎遍幏鎴︾叕椤掑倵鍋撳▓鍨灈妞ゎ厾鍏橀獮鍐閵堝懐顦ч柣蹇撶箲閻楁鈧矮绮欏铏规嫚閺屻儱寮板┑鐐板尃閸曨厾褰炬繝鐢靛Т娴硷綁鏁愭径妯绘櫓闂佸憡鎸嗛崪鍐簥闂傚倷鑳剁划顖炲礉閿曞倸绀堟繛鍡樻尭缁€澶愭煏閸繃宸濈痪鍓ф櫕閳ь剙绠嶉崕閬嶅箯閹达妇鍙曟い鎺戝€甸崑鎾斥枔閸喗鐏堝銈庡幘閸忔﹢鐛崘顔碱潊闁靛牆鎳愰ˇ褔鏌h箛鎾剁闁绘顨堥埀顒佺煯缁瑥顫忛搹瑙勫珰闁哄被鍎卞鏉库攽閻愭澘灏冮柛鏇ㄥ幘瑜扮偓绻濋悽闈浶㈠ù纭风秮閺佹劖寰勫Ο缁樻珦闂備礁鎲¢幐鍡涘椽閸愵亜绨ラ梻鍌氬€峰ù鍥敋閺嶎厼鍨傞幖娣妼缁€鍐煥濠靛棙顥滈柣锕備憾濮婂宕掑▎鎺戝帯濡炪們鍨归敃銈夊煝瀹ュ鍗抽柕蹇曞Х椤斿姊洪幖鐐插姶闁告挻鐟╅幃姗€骞庨懞銉у幐闂佸憡鍔戦崝搴㈡櫠閺囩姷纾奸柍褜鍓熷畷姗€鍩炴径鍝ョ泿闂傚⿴鍋勫ú銈吤归悜鍓垮洭鏁冮埀顒勬箒濠电姴锕ら悧蹇涙偩濞差亝鐓涢悘鐐额嚙婵″ジ鏌嶇憴鍕伌鐎规洖宕埢搴ょ疀閹惧妲楃紓鍌氬€搁崐鐑芥⒔瀹ュ绀夐幖杈剧到閸ㄦ繃銇勯弽顐粶濡楀懘姊洪崨濠冨闁搞劍澹嗙划濠氬箮閼恒儱鈧敻鏌ㄥ┑鍡欏嚬缂併劏妫勯湁闁绘ǹ宕甸悾鐑樻叏婵犲啯銇濇俊顐㈠暙閳藉鈻庨幇顓炩偓鐑芥⒑鐠囨彃顒㈤柣顓у櫍瀹曪繝骞庨懞銉ヤ粧濡炪倖娲嶉崑鎾垛偓瑙勬礀閻栧ジ銆佸Δ浣哥窞閻庯綆鍋呴悵顐⑩攽閻樻剚鍟忛柛锝庡灣瀵板﹪宕滆閸嬫挾绮☉妯绘悙缂佺姵鐓¢弻娑㈠Ψ椤旂厧顫╅梺钘夊暟閸犳牠寮婚敐澶婃闁圭ǹ瀛╅崰鎰版⒑閼姐倕鏋庣紓宥咃躬瀵鈽夐埗鈹惧亾閿曞倸绠f繝闈涙川娴滎亝淇婇悙顏勨偓銈夊礈濞嗘挻鍋嬮柛鈩冪▓閳ь剚妫冨畷姗€顢欓崲澹洤绠圭紒顔煎帨閸嬫捇鎳犻鈧崵顒傜磽閸屾艾鈧娆㈤敓鐘茬獥婵°倕鎳庣粻浼存煙闂傚鍔嶉柛瀣ф櫊閺岋綁骞嬮敐鍡╂缂佺虎鍘搁崑鎾绘⒒娴h櫣甯涢柛鏃€娲滅划鏃堟濞磋櫕鐩畷姗€顢欓崗鍏夹氶梻渚€鈧偛鑻晶顖炴煏閸パ冾伃妤犵偞甯¢獮瀣攽閹邦亞纾婚梺璇叉唉椤骞愭搴g焼濞撴埃鍋撻柛鈺冨仱楠炲鏁傞挊澶夋睏闂備礁婀辩划顖滄暜閳哄倸顕遍柍褜鍓涚槐鎾存媴閻熸澘濮㈤悷婊勫閸嬬喖宕氶幒鎴旀瀻闁规儳鐤囬幗鏇炩攽閻愭潙鐏﹂柣顓у枛閳讳粙顢旈崼鐔哄幍闁荤喐鐟ョ€氼剚鎱ㄩ崶銊d簻闁靛濡囩粻鐐存叏婵犲啯銇濋柡灞芥嚇閹瑩鎳犵捄渚純濠电姭鎷冮崒姘ギ闂佸搫鐬奸崰鏍箹瑜版帩鏁冮柨婵嗘噽閿涙捇姊绘担鐟邦嚋缂佽瀚板畷鎴濃槈閵忕姷鍘撮梺鐟邦嚟婵參宕戦幘缁樻櫜閹煎瓨锚娴滅偓銇勯幘瀵糕姇婵炲懎锕弻锛勪沪閻e睗锝嗙箾绾板彉閭鐐茬箳娴狅箓鎸婃径濠呭帿闂傚倸鍊烽悞锕傛儑瑜版帒纾归柡鍥ュ灩缁犵娀鏌熼柇锕€鏋熸い顐f礋閺岀喖骞嗚閹界姴鈹戦娑欏唉闁哄本鐩獮姗€寮堕幋鐘点偡闂備礁鎲¢幐绋跨暦椤掑嫧鈧棃宕橀鍢壯囨煕閳╁喚娈樺ù鐘虫倐濮婃椽鎳¢妶鍛瘣闂佸搫鎳忛惄顖炲箖妤e啯鍊婚柦妯猴級閵娧勫枑濠㈣埖鍔曠壕濠氭煙閸撗呭笡闁哄懏鐓¢獮鏍垝閻熸澘鈷夐梺璇茬箰缁夌懓顫忛搹鍦<婵☆垵顕ч棄宥呪攽閻愭彃绾ч柨鏇樺灪娣囧﹪鎮界粙璺槹濡炪倖鐗楀銊╂偪閳ь剟姊婚崒姘偓鎼佹偋婵犲嫮鐭欓柟閭﹀枦婵娊鏌ゅù瀣珖缁炬崘妫勯湁闁挎繂鐗婇ˉ澶愭煟閹炬潙濮堥柟渚垮妼铻g紒瀣仢椤鈹戦垾鍐茬骇闁告梹鐟╅悰顔嘉熼崗鐓庣彴闂佽偐鈷堥崜锕€危娴煎瓨鈷掑ù锝嚽归弳閬嶆煙绾板崬浜扮€规洘鍔栫换婵喰掔粙鎸庡枠鐎殿喛鍩栭幆鏃堝箻鐎涙ɑ婢戝┑锛勫亼閸婃牕顫忔繝姘ラ悗锝庝憾閸熷懘鏌曟径娑滅濞存粍绮嶉妵鍕箻鐠鸿桨绮跺┑鈩冨絻椤兘寮婚敐澶嬫櫜闁搞儜鍐ㄧ婵°倗濮烽崑鐐垫暜閿熺姷宓侀悗锝庡枛缁秹鏌嶈閸撶喖骞冨Δ浣虹瘈婵﹩鍘搁幏娲煟閻斿摜鎳冮悗姘煎弮瀹曟洖螖閸涱喚鍘卞┑鈽嗗灥閵嗏偓闁稿鎹囬幃銏ゅ箵閹烘垹闃€婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘垿濡甸崟顖氱闁告鍋熸禒鑲╃磼閻愵剙鍔ゆい顓犲厴瀵鎮㈤悡搴n槶閻熸粌绻掗弫顔尖槈閵忥紕鍘撻梻浣哥仢椤戝懘鎮橀敃鍌涚厪闁搞儜鍐句純濡ょ姷鍋炵敮鈥崇暦閸楃儐娓婚柟顖嗗本顥$紓鍌氬€搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾閽樻繈姊洪鈧粔鎾几娴g硶鏀介柣妯挎珪閻ㄦ垹鈧鎸风欢姘跺蓟濞戙垹鐒洪柛鎰典簴婵洭姊虹粙鍖″姛闁稿繑锕㈠璇测槈濡攱鏂€闂佺硶鍓濋〃蹇斿閳ь剚淇婇悙顏勨偓鏍ь潖瑜版帒绀夐柡鍥ュ灩閻撴﹢鏌熸潏楣冩闁稿﹤顭烽弻娑㈠Ψ閵忊剝鐝栭柡宥忕節濮婄粯鎷呴崨濠傛殘闂佸湱枪椤兘骞冮悜鑺ユ櫆闁伙絽澶囬弨铏節閻㈤潧孝婵炶绠撳畷鐢稿礃椤旂晫鍘撻梺鍛婄箓鐎氼剟寮抽悢鍏肩叆婵炴垶鐟ч惌鎺撴叏婵犲洨绱伴柕鍥ㄥ姍楠炴帡骞嬪⿰鍐╃€抽梻鍌欑閹诧繝鎮烽妷锔绘闁归棿绀侀悡婵嬫煙閻愵剚鐏遍柛顐邯閺屾盯顢曢妶鍛亖闂佸憡蓱閹倿寮婚敐鍫㈢杸闁哄洨鍋橀幋椋庣磼缂併垹骞栭柣鏍帶閻g兘骞嬮敃鈧粻濠氭偣閸ヮ亜鐨洪柣銈傚亾婵犵數鍋犻幓顏嗗緤娴犲绠熼柨鐔哄Т绾捐銇勯弽顐沪闁抽攱鍨归惀顏堫敇閻愭潙娅f繛瀛樼矊缂嶅﹪骞冪捄琛℃闁哄诞鍐ㄐ曢梻浣虹《閺備線宕戦幘鎰佹富闁靛牆妫楃粭鎺楁煕閻曚礁浜伴柟顖氬暙鐓ゆい蹇撴噽閸樺憡绻涙潏鍓у埌婵犫偓鏉堛劍娅犳い蹇撶墛閻撳啴鎮峰▎蹇擃仼闁诲繑鎸抽弻鐔碱敊閻e本鍣伴悗娈垮枛閻栧ジ鐛€n喗鍋愰弶鍫厛閺佸洭姊婚崒姘偓椋庣矆娴i潻鑰块弶鍫涘妿娴犳岸姊绘担渚敯濠殿喓鍊楅崚鎺撴償閵娿儳顦梺鍦劋椤ㄥ懐鐚惧澶嬬厱妞ゆ劑鍊曢弸搴∶归悩鐑橆仩缂佽鲸鎸婚幏鍛村礈閹绘帒澹嶆俊鐐€栧ú妯荤箾婵犲洤鏋侀柛鎰靛枛绾惧吋绻涢幋鐐跺妤犵偛鐗撳缁樻媴閸涘﹥鍎撳┑鐐茬湴閸ㄨ棄鐣峰┑鍡欐殕闁告洦鍓欓埀顒€鐖奸弻锝呂熼懖鈺佺闂佺粯鎸诲ú鐔煎蓟閻斿吋鍤嬫い鎺嗗亾濠碉紕鍘ч湁婵犲﹤瀚崝銈夋煃鐟欏嫬鐏撮柡浣哥Ч瀹曠喖顢曢埄鍐╃窔闂傚倷鑳舵灙闁挎洏鍎甸幃褔鎮╅懠顒佹濠电娀娼ч鍡涘疾濠靛鐓冪憸婊堝礈閻旂厧鐏抽柨鏇炲€搁柨銈嗕繆閵堝倸浜鹃梺缁樺笒閻忔岸濡甸崟顖氱鐎广儱鐗嗛崢锛勭磽娴e搫孝濠⒀傜矙閸┾偓妞ゆ巻鍋撻柛妯荤矒瀹曟垿骞橀弬銉︽杸闂佺粯枪娴滎剛绮i弮鍫熺厱閻庯綆鍋掑▓鏃堟煃鐟欏嫬鐏存い銏$懅濞戠敻鎮滈悾灞藉冀濠电姷鏁搁崑娑㈠箯閹寸姴绶ら柛顭戝暎閿濆绠涢柡澶庢硶椤斿﹪姊洪悷鏉挎毐缁剧虎鍙冨畷浼村箻鐠囪尙顔嗛梺缁樶缚缁垶宕甸幋锔界厾缂佸娉曟禒娑欐叏閿濆棗濮嶆慨濠傤煼瀹曟帒顫濋钘変壕闁绘垼濮ら崵鍕煠閸濄儲鏆╁ù鐘崇缁绘繈鎮介棃娑楃捕濡炪倖娲﹂崣鍐ㄧ暦濡も偓铻e〒姘煎灠濞堛劌顪冮妶鍡楀闁稿﹥鐗滈埀顒佺濮樸劑鍩€椤掑倹鍤€濠㈢懓锕畷浼村冀瑜夐弸鏃堟煏婵犲繐顩紒鈾€鍋撻梻浣圭湽閸ㄨ棄岣胯閻楀海绱撴担鍝勪壕婵犮垺岣跨划鏃堟偡闁箑娈ㄩ梺鍝勮閸庤京绮婚悽鍛婄厵闁绘垶岣跨粻姗€鏌涢悙鍨毈闁哄矉缍侀幃鈺呮倻濮楀棔鍝楅梺璇茬箰缁诲牓宕濆畝鍕垫晩闊洦绋戝敮閻熸粌顦靛畷鎴﹀箻閼搁潧鏋傞梺鍛婃处閸撴瑧鍠婂鍛斀闁宠棄妫楁禍婵堢磼鐠囨彃鈧潡鏁愰悙鍓佺杸婵炴垶鐟﹂崕顏堟⒑闂堚晛鐦滈柛姗€绠栭弫宥呪堪閸愶絾鏂€闂佸疇妫勫Λ妤呮倶閻樼粯鐓欑痪鏉垮船娴滀即鏌ㄥ┑鍫濅粶妞ゆ挸銈稿畷鍫曞煛閸愯法闂繝鐢靛仩閹活亞绱炴笟鈧棢闁规崘顕х粈澶屸偓骞垮劚椤︿即鎮″▎鎴犵<閻庯綆浜炴禒銏ゆ煛閸℃稐鎲鹃柡宀嬬秮閺佹劙宕惰楠炲螖閻橀潧浠滄い鎴濐樀瀵偊宕橀鑲╁姦濡炪倖甯掗崐缁樼▔瀹ュ應鏀介柣妯虹-椤f煡鏌涚€e墎绉柡灞剧洴婵$兘骞嬪┑鍡樻婵°倗濮村ú顓㈠箖濡ゅ啯鍠嗛柛鏇ㄥ墮绾板秶绱撴担鍓叉Ч闁瑰憡濞婇崹楣冨籍閸繄顦ㄥ銈嗘煥濡插牐顦归柡灞剧洴閸╁嫰宕楅悪鈧禍顏勎涢崟顐悑闁搞儮鏅濋敍婵囩箾鏉堝墽鍒板鐟帮躬瀹曟洟骞囬悧鍫㈠幈闂侀潧枪閸庨亶銆傚畷鍥╃<妞ゆ梻鈷堥崕蹇斻亜閹惧啿鎮戠€垫澘瀚埀顒婄秵娴滄牠宕戦幘缁樼叆閻庯絻鍔嬬花濠氭⒑閻熺増鎯堢紒澶婄埣钘濋柨鏃堟暜閸嬫挸鈻撻崹顔界亪闂佽绻戠换鍫ュ春閻愬搫绠i柨鏇楀亾闁绘搫绻濋弻娑㈠焺閸愮偓鐣兼繛瀵稿閸ㄨ泛顫忓ú顏勫窛濠电姴娴烽崝鍫曟⒑閸涘﹥澶勯柛娆忛鐓ら柛娑橈梗缁诲棝鏌曢崼婵堢闁告帊鍗抽弻娑㈡偆娴e摜浠搁悗瑙勬礃閸旀瑥鐣疯ぐ鎺濇晝闁挎繂鎳庢导搴㈢節绾版ɑ顫婇柛銊﹀▕瀹曘垼顦崇紒鍌氱У閵堬綁宕橀埡浣插亾閸偅鍙忔俊顖滃帶娴滈箖鎮楀鐐

引言
AIX 中的网络应用程序(例如,telnet、FTP 和 rlogin、rsh、rcp 等 r 命令)本身支持 Kerberos 身份验证。管理员需要完成的所有工作包括安装和配置 Kerberos,以及配置 AIX 系统以使用该 Kerberos 设置进行身份验证。Kerberos 身份验证表示一旦您拥有有效的 Kerberos 票证(通过手动 /usr/krb5/bin/kinit 或集成登录获得),网络应用程序可以使用该票证作为您的身份验证令牌,并且一旦成功通过身份验证,您不需要输入密码就可以获得访问权限。
基本配置
为了启用 Kerberos 身份验证,需要在 Kerberos 前端以及 AIX 系统上设置一些通用基本配置。让我们看一下这些配置。
Kerberos 配置
让一台服务器计算机作为 Kerberos 主密钥分发中心(Key Distribution Center,KDC)这台计算机将负责所有与 Kerberos 相关的任务,例如生成票证、对用户进行身份验证,等等。管理员需要在这台计算机上安装和配置 IBM Network attached storage (NAS)(优选使用 1.4.0.7 或更高版本)以作为主 KDC。
网络中的所有其他计算机(您将在这些计算机上使用 telnet、FTP 或 r 命令进行登录)安装和配置 IBM NAS,作为主 KDC 的客户端。
telnet/FTP 守护进程将在这些计算机上运行,您将从客户端连接到这台计算机上。在这些计算机上也安装和配置 IBM NAS,作为主 KDC 的客户端。
有关 IBM NAS 服务器和客户端安装和配置的完整说明,请参考 AIX Version 5.3 Expansion Pack CD 中附带的 IBM NAS Version 1.4 Administration Guide。
对于本文中的示例,我参考了示例 Kerberos 环境。图 1 显示了该环境和逻辑信息流。
图 1:显示 Kerberized telnet 操作的示例
本文通篇使用了下列定义:
Kerberos 管理员名称:
admin/admin
Kerberos 领域名称:
ISL.IN.IBM.COM
IBM NAS 1.4.0.7 主 KDC:
主机名:land.in.ibm.com 端口: 88
操作系统:AIX 5.3
IBM NAS 1.4.0.7 管理服务器:
主机名:land.in.ibm.com 端口: 749
操作系统:AIX 5.3
IBM NAS 1.4.0.7 客户端:
主机名:fakir.in.ibm.com
操作系统:AIX 6.1
运行 telnet 服务的计算机:
主机名:fsaix005.in.ibm.com 端口: 23
操作系统:AIX 5.3
运行 FTP 服务的计算机:
主机名:fsaix005.in.ibm.com 端口: 21
操作系统:AIX 5.3
检查和同步所有计算机之间的时间差;误差不应超过 5 分钟。若要检查 Kerberos 配置的正确性,请使用 '/usr/krb5/bin/kinit admin/admin',后跟 '/usr/krb5/bin/klist' 并查看是否能够获得 Kerberos 票证,然后使用 '/usr/krb5/sbin/kadmin -p admin/admin' 检查所有事项(时间差以及更多项目)是否正常。
AIX 身份验证配置
为了确保所有网络应用程序在进行基于密码的标准身份验证之前尝试 Kerberos 身份验证,管理员需要更改所有 AIX 计算机上的身份验证方法首选项。
'/usr/bin/lsauthent' 命令显示当前身份验证模式首选项。bash-2.05b# /usr/bin/lsauthent
Standard Aix
若要更改身份验证模式首选项,请使用 '/usr/bin/chauthent' 命令。bash-2.05b# /usr/bin/chauthent -k5 -std
现在,'/usr/bin/lsauthent' 应显示类似下面的内容:bash-2.05b# /usr/bin/lsauthent
Kerberos 5
Standard Aix
请务必保留基于密码的标准身份验证方法(上面的 –std)作为后备身份验证方法,否则如果无法启用正确的 Kerberos 登录,您将无法登录到系统。
为 telnet 服务配置 Kerberos
在 Kerberos 环境中,每个 Kerberos 服务是由服务主体表示的。此服务主体只是普通的 Kerberos 主体,其持有用于解密由 Kerberos 服务器发送的响应的密钥。对于 telnet 服务也是如此,您将需要在 telnet 服务器上创建 telnet 服务主体并执行一些配置步骤。
请执行下列分步步骤为 telnet 服务配置 Kerberos。
如果您已经使用 AIX 'mkkrb5clnt' 命令配置了 Kerberos 客户端,那么您不需要执行步骤 1 和 2。'mkkrb5clnt' 命令创建 host 服务主体并将其存储在 /var/krb5/security/keytab/<hostname>.keytab 文件中。将此文件链接到缺省 keytab 文件 /etc/krb5/krb5.keytab。
在运行 telnet 服务的计算机 (fsaix005.in.ibm.com) 上,创建名为“host/<FQDN_telnetd_hostname>”的 telnet 服务主体。对于本例,它将是“host/fsaix005.in.ibm.com”。
使用完全限定域名(Fully Qualified Domain Name,FQDN)对于此设置的正常工作非常关键。
bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin: addprinc -randkey host/fsaix005.in.ibm.com
WARNING: no policy specified for host/fsaix005.in.ibm.com@ISL.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Principal "host/fsaix005.in.ibm.com@ISL.IN.IBM.COM" created.
将 telnet 服务主体添加到 keytab 文件 (/etc/krb5/krb5.keytab) 中。kadmin: ktadd host/fsaix005.in.ibm.com
Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type Triple DES
cbc
mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type ArcFour
with
HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type AES-256
CTS mode
with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type DES cbc
mode
with RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal host/fsaix005.in.ibm.com with kvno 3, encryption type AES-128
CTS mode
with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: q
bash-2.05b#
如果由于某种原因无法运行“kadmin”,则在 KDC 上创建服务主体并添加到 keytab 文件 (/etc/krb5/krb5.keytab) 中,然后将该 keytab 文件传送到运行 telnetd 的计算机(对于本例,是 fsaix005.in.ibm.com)上。
在运行 telnet 服务的计算机 (fsaix005.in.ibm.com) 上,运行 '/usr/krb5/bin/klist -k' 并检查条目。bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# /usr/krb5/bin/klist -k
Keytab name: FILE:/etc/krb5/krb5.keytab
KVNO Principal
---- ---------
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
bash-2.05b#
在运行 telnet 服务的计算机 (fsaix005.in.ibm.com) 上,创建新用户“vipin”,您将使用该用户远程登录到 fsaix005。更改该用户的密码。bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# mkuser -R files vipin
bash-2.05b# passwd vipin
Changing password for "vipin"
vipin's New password:
Enter the new password again:
bash-2.05b#
创建具有相同名称“vipin”的 Kerberos 主体。可以从 Kerberos 领域中的任何计算机(主 KDC 或客户机)上完成此操作。bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin: ank -pw vipin vipin
WARNING: no policy specified for vipin@ISL.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Principal "vipin@ISL.IN.IBM.COM" created.
kadmin: q
bash-2.05b#
转到配置了 Kerberos 客户端的任何其他客户端计算机 (fakir.in.ibm.com) 上。运行 '/usr/krb5/bin/kinit vipin' 以获取初始 Kerberos 票证,如下所示:bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit vipin
Password for vipin@ISL.IN.IBM.COM:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
02/16/08 04:31:41 02/17/08 04:31:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
尝试远程登录到 telnetd 计算机 (fsaix005.in.ibm.com)。如果一切顺利,系统将要求您输入密码,您将以用户“vipin”的身份登录。
下面是完成这项工作的命令:bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# telnet -l vipin fsaix005.in.ibm.com
Trying...
Connected to fsaix005.in.ibm.com.
Escape character is '^]'.
[ Kerberos V5 accepts you as ``vipin@ISL.IN.IBM.COM'' ]
telnet (fsaix005.in.ibm.com)
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
Last unsuccessful login: Wed Feb 13 11:50:40 CST 2008 on /dev/pts/2 from
land.in.ibm.com
Last login: Fri Feb 15 12:49:06 CST 2008 on /dev/pts/3 from aixdce8.in.ibm.com
$ hostname
fsaix005.in.ibm.com
$ id
uid=237(vipin) gid=1(staff)
$ exit
Connection closed
bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b#
这就是以 Kerberos 方式运行 telnet 所需完成的全部工作!请注意在发出 telnet 命令时的附加选项(位于上面突出显示的文本中)。
如果您希望检查是否确实获得 telnet 服务主体的票证,请在客户端上运行 /usr/krb5/bin/klist 并查看其输出。您应该看到与下面所示类似的内容:
bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
02/16/08 04:31:41 02/17/08 04:31:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
02/16/08 04:32:56 02/17/08 04:31:39 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
bash-2.05b#
为 FTP 服务配置 Kerberos
与 telnet 服务类似,您也可以配置 FTP 服务以接受和使用 Kerberos 身份验证。使用下列分步过程来实现这一目的:
创建 FTP 服务主体。这一次 FTP 服务主体的名称应为“ftp/<FQDN_ftpd_hostname>”。因此对于本例,它类似于“ftp/fsaix005.in.ibm.com”。创建主体:bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# kadmin -p admin/admin
Authenticating as principal admin/admin with password.
Password for admin/admin@ISL.IN.IBM.COM:
kadmin: ank -randkey ftp/fsaix005.in.ibm.com
WARNING: no policy specified for ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM;
defaulting to no policy. Note that policy may be overridden by
ACL restrictions.
Principal "ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM" created.
现在,将此主体条目添加到 keytab 文件 (/etc/krb5/krb5.keytab) 中。kadmin: ktadd ftp/fsaix005.in.ibm.com
Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type Triple DES
cbc
mode with HMAC/sha1 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type ArcFour
with
HMAC/md5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type AES-256 CTS
mode
with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type DES
cbc mode with
RSA-MD5 added to keytab WRFILE:/etc/krb5/krb5.keytab.
Entry for principal ftp/fsaix005.in.ibm.com with kvno 3, encryption type AES-128 CTS
mode
with 96-bit SHA-1 HMAC added to keytab WRFILE:/etc/krb5/krb5.keytab.
kadmin: q
bash-2.05b#
在运行 FTP 服务的计算机 (fsaix005.in.ibm.com) 上,运行 '/usr/krb5/bin/klist -k' 并检查 keytab 文件中的条目。此时该文件应当与如下所示类似: bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# /usr/krb5/bin/klist -k
Keytab name: FILE:/etc/krb5/krb5.keytab
KVNO Principal
---- ---------
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
3 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
bash-2.05b#
下一步是获取初始 Kerberos 票证。由于我们已经拥有名为“vipin”的 Kerberos 用户,因此我们将使用此主体来获取初始 Kerberos 票证,方法是使用 '/usr/krb5/bin/kinit' 命令。bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit vipin
Password for vipin@ISL.IN.IBM.COM:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
02/16/08 04:47:46 02/17/08 04:47:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
一旦我们拥有有效的票证,我们就已准备好以 kerborise 方式运行 FTP。bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# ftp fsaix005.in.ibm.com
Connected to fsaix005.in.ibm.com.
220 fsaix005.in.ibm.com FTP server (Version 4.2 Sat Jun 16 07:20:05 CDT 2007) ready.
334 Using authentication type GSSAPI; ADAT must follow
GSSAPI accepted as authentication type
GSSAPI authentication succeeded
Name (fsaix005.in.ibm.com:root): vipin
232 GSSAPI user vipin@ISL.IN.IBM.COM is authorized as vipin
ftp>
ftp> bye
221 Goodbye.
bash-2.05b#
若要交叉检查 Kerberos 形式的 FTP 会话是否成功,可以关闭 FTP 会话并执行 /usr/krb5/bin/klist 以查看我们 FTP 服务主体的其他票证。bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
02/16/08 04:47:46 02/17/08 04:47:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
02/16/08 04:49:20 02/17/08 04:49:19 ftp/fsaix005.in.ibm.com@ISL.IN.IBM.COM
bash-2.05b#
为 r 命令配置 Kerberos
AIX r 命令(如 rlogin、rsh 和 rcp)也支持 Kerberos 身份验证。我们来看一下这些命令如何使用 Kerberos 票证来允许我们无缝地执行工作。
所有 r 命令的 Kerberos 服务主体将再次采用“host/<FQDN_service_hostname>”,与 telnet 服务主体相同。因此,如果您已经配置了 Kerberos 形式的 telnet 身份验证,那么您就不需要执行任何其他配置步骤。您只需获取初始 Kerberos 票证并发出 r 命令。例如:
显示“rlogin”中的 Kerberos 身份验证的示例
bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit vipin
Password for vipin@ISL.IN.IBM.COM:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
04/21/08 08:54:26 04/22/08 08:54:25 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b# rlogin fsaix005.in.ibm.com -l vipin
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
Last unsuccessful login: Mon Apr 21 07:55:42 CDT 2008 on /dev/pts/1 from 9.182.185.101
Last login: Mon Apr 21 08:01:29 CDT 2008 on /dev/pts/1 from fakir.in.ibm.com
$ hostname
fsaix005.in.ibm.com
$ exit
Connection closed.
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
04/21/08 08:54:26 04/22/08 08:54:25 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
04/21/08 08:54:49 04/22/08 08:54:25 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
bash-2.05b#
显示“rsh”中的 Kerberos 身份验证的示例
我们也可以在“rsh”中执行与 rlogin 方式相同的 Kerberos 身份验证。bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit vipin
Password for vipin@ISL.IN.IBM.COM:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
04/21/08 08:58:08 04/22/08 08:58:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b# rsh fsaix005.in.ibm.com -l vipin
*******************************************************************************
* *
* *
* Welcome to AIX Version 5.3! *
* *
* *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
* *
* *
*******************************************************************************
Last unsuccessful login: Mon Apr 21 07:55:42 CDT 2008 on /dev/pts/1 from 9.182.185.101
Last login: Mon Apr 21 08:54:58 CDT 2008 on /dev/pts/1 from fakir.in.ibm.com
$ hostname
fsaix005.in.ibm.com
$ exit
Connection closed.
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
04/21/08 08:58:08 04/22/08 08:58:39 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
04/21/08 08:58:33 04/22/08 08:58:39 host/fsaix005.in.ibm.com@ISL.IN.IBM.COM
显示“rcp”中的 Kerberos 身份验证的示例
本例使用 Kerberos 身份验证将文件从一台计算机 (fakir.in.ibm.com) 复制到另一台远程计算机 (fsaix005.in.ibm.com)。
下面是我们要传送的位于 fakir.in.ibm.com 上的文件:bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# ls -l /home/vipin/progs/try.c
-rw-r--r-- 1 root system 200 Feb 14 03:55 home/vipin/progs/try.c
bash-2.05b#
将此文件复制到 fsaix005.in.ibm.com 上的 /home/vipin 目录中。fsaix005.in.ibm.com 上的 /home/vipin 中的当前内容如下:bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# ls -l /home/vipin/t*
ls: 0653-341 The file /home/vipin/t* does not exist.
bash-2.05b#
在 fakir.in.ibm.com 上运行 Kerberos 身份验证并获取初始 Kerberos 票证。bash-2.05b# hostname
fakir.in.ibm.com
bash-2.05b# /usr/krb5/bin/kinit vipin
Password for vipin@ISL.IN.IBM.COM:
bash-2.05b# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: vipin@ISL.IN.IBM.COM
Valid starting Expires Service principal
04/21/08 09:20:13 04/22/08 09:20:45 krbtgt/ISL.IN.IBM.COM@ISL.IN.IBM.COM
bash-2.05b#
一旦我们拥有有效的票证,我们就可以运行“rcp”命令:bash-2.05b# rcp /home/vipin/progs/try.c vipin@fsaix005.in.ibm.com:/home/vipin
bash-2.05b#
请注意我们如何传递 fsaix005.in.ibm.com 的用户名。我们还传递 fsaix005.in.ibm.com 上的目标目录。请牢记目标目录必须允许用户执行写操作,这一点非常重要。
在 fsaix005.in.ibm.com 上,我们还可以交叉检查文件复制操作,如下所示:bash-2.05b# hostname
fsaix005.in.ibm.com
bash-2.05b# ls -l /home/vipin/t*
-rw-r--r-- 1 vipin staff 200 Apr 21 09:21 /home/vipin/try.c
bash-2.05b#
请注意新复制文件的用户 ACL。
经常遇到的 kerberized telnet 错误
错误 | 解决方案 |
Kerberos V5 拒绝身份验证,因为 admin/admin@ISL.IN.IBM.COM 未获得登录指定帐户的权限。 | 初始 Kerberos 票证是使用“admin/admin”创建的,而不是使用您的普通用户名(在本例中是“vipin”)。运行 '/usr/krb5/bin/kdestroy' 以销毁早期 Kerberos 票证,然后使用 '/usr/krb5/bin/kinit <username>' 获取正确的票证并重试。 |
Kerberos V5 拒绝身份验证,因为 telnetd:krb5_rd_req failed:Decrypt integrity check failed。 | 在服务主体的密钥版本号中存在不匹配。删除服务主体(使用 'delprinc' kadmin 命令)并将其从 keytab 文件(使用 'ktrem' kadmin 命令)删除。再次重新创建新服务主体并将其添加到 keytab 文件,然后重试。 |
Kerberos V5 拒绝身份验证,因为 telnetd:krb5_rd_req failed:Generic RC I/O error。 | 在 telnet 服务器上,创建名为“/var/tmp”的目录(如果不存在)。这应当可以解决问题。 |
结束语
本文演示了如何在诸如 telnet、FTP 和 r 命令之类的支持 Kerberos 的 AIX 网络应用程序中使用 Kerberos 身份验证机制。
更多精彩
赞助商链接