krb5安装与配置.docx
- 文档编号:8747893
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:20.58KB
krb5安装与配置.docx
《krb5安装与配置.docx》由会员分享,可在线阅读,更多相关《krb5安装与配置.docx(14页珍藏版)》请在冰豆网上搜索。
krb5安装与配置
kerberos的安装配置
1.下载软件
krb5-1.6.3.tar.gz
2.编译软件
将krb5-1.6.3.tar.gz使用ftp传输到linux机器。
使用root用户;
解压缩,执行configure和make
$tarzxvfkrb5-1.6.3.tar.gz
$cdkrb5-1.6.3
$./configure
$make
$makeinstall
缺省的将kerberos安装在/usr/local目录下;主要包括/usr/local/sbin、/usr/local/bin、/usr/local/man、/usr/local/lib等目录。
3.系统路径和IP地址及域名设置
3.1.用户路径设置
系统中原有kerberos程序,安装在/usr/kerberos下。
在用户krb下设置路径
修改编辑文件.bash_profile
PATH=/usr/local/sbin:
/usr/local/bin:
$PATH
exportPATH
保证系统执行命令,首先执行/usr/local/sbin目录的kerberos相关命令;
3.2.IP地址和域名设置
系统缺省域名为EXAMPLE.COM;在/etc/hosts文件中,设置相关名称;
192.168.1.201kerberos
192.168.1.201kdc
保证和都能够被ping通;
ping
ping
4.kdc配置
4.1./etc/krb5.conf文件的设置和含义
Kerberos区域是一个管理域,它有它自己的Kerberos数据库,每个Kerberos区域都有它自己的一套Kerberos服务员,你的区域名可以是任何内容,但是它应该映射到你在DNS中的区域,如果新Kerberos区域是为你的整个DNS域准备的,你应该将你的Kerberos区域取一个相同的名字(所有字母大写,这是Kerberos的惯例):
EXAMPLE.COM,或者,如果你正在下创建一个新的工程部区域,你应该选项ENG.EXAMPLE.COM作为区域名。
创建你自己的区域的第一步是创建/etc/krb5.conf文件,它包括了所有关于这个区域的必需的信息,每个想访问你新的Kerberos区域的计算机都必需要krb5.conf文件,这里有一个区域EXAMPLE.COM的样本文件,KDC和管理服务器都运行在机器上:
[logging]
default=FILE:
/var/log/krb5libs.log
kdc=FILE:
/var/log/krb5kdc.log
admin_server=FILE:
/var/log/kadmind.log
[libdefaults]
default_realm=EXAMPLE.COM
dns_lookup_realm=false
dns_lookup_kdc=false
ticket_lifetime=24h
forwardable=yes
[realms]
EXAMPLE.COM={
kdc=:
88
admin_server=:
749
default_domain=
}
[domain_realm]
=EXAMPLE.COM
=EXAMPLE.COM
[kdc]
profile=/usr/local/var/krb5kdc/kdc.conf
[appdefaults]
pam={
debug=false
ticket_lifetime=36000
renew_lifetime=36000
forwardable=true
krb4_convert=false
}
4.2.kdc.conf文件的设置
[kdc]
profile=/usr/local/var/krb5kdc/kdc.conf
根据该文件的指示方向,使用root用户在/usr/local目录下。
创建var目录,在var目录下,创建krb5kdc目录
#mkdir/usr/local/var
#mkdir/usr/local/var/krb5kdc
#cp/var/kerberos/krb5kdc/kdc.conf/usr/local/var/krb5kdc/.
#vi/usr/local/var/krb5kdc/kdc.conf
修改相关配置如下:
[kdcdefaults]
acl_file=/usr/local/var/krb5kdc/kadm5.acl
dict_file=/usr/share/dict/words
admin_keytab=/usr/local/var/krb5kdc/kadm5.keytab
v4_mode=nopreauth
[realms]
EXAMPLE.COM={
master_key_type=des3-hmac-sha1
supported_enctypes=des3-hmac-sha1:
normalarcfour-hmac:
normaldes-hmac-sha1:
normaldes-cbc-md5:
normaldes-cbc-crc:
normaldes-cbc-crc:
v4des-cbc-crc:
afs3
}
4.3.生成kerberos的本地数据库
kdb5_utilcreate-rEXAMPLE.COM-s
注意:
记住KDCmaster的口令
该命令将创建如下文件(缺省目录是:
/usr/local/var/krb5kdc.)
这个命令用来生成kerberos的本地数据库,
●principal.db:
Kerberosdatabasefiles,存放principal(和索引文件)
●principal.ok:
Kerberosdatabaselockfiles.
●principal.kadm5:
theKerberosadministrativedatabasefile,
●principal.kadm5.lock:
theadministrativedatabaselockfile;
●.k5stash:
thestashfile,存储KDCmasterkey
-r指定realm(kerberos术语),我们随便取一个叫EXAMPLE.COM.
principal拥有名字和密码,需要通过KDC来认证身份,它和KDC之间共享密钥,principal有两类,一类是普通用户,需要通过KDC认证身份并获取服务票据,另一类是服务提供者,它需要通过对KDC提供给用户的票据进行确认以信任用户并为用户提供服务。
第一类principal在登录系统手动输入密码。
第二类principal解密KDC发的票据时需要用到自己的密钥,这个密钥存放在某个.keytab文件里。
Keytab文件是通过KDC上的一个工具ktadd来生成的。
该文件一般位于/etc下。
Kerberos库中缺省具有下列用户票据;
执行命令:
#Kadmin.local
#kadmin.local:
listprincs
K/*************
kadmin/*****************
kadmin/********************
kadmin/*******************
kadmin/********************************
krbtgt/***********************
4.4.启动kdc服务
#/usr/local/sbin/krb5kdc
5.kadmind配置
5.1.本地的kadmin.local管理程序提供功能
1)策略管理
策略的增加、删除、修改、查询和统计功能;
add_policy,addpolAddpolicy
modify_policy,modpolModifypolicy
delete_policy,delpolDeletepolicy
get_policy,getpolGetpolicy
list_policies,listpols,get_policies,getpols
Listpolicies
2)个人账号管理
Principal的增加、删除、修改、查询和统计功能;
add_principal,addprinc,ank
Addprincipal
delete_principal,delprinc
Deleteprincipal
modify_principal,modprinc
Modifyprincipal
change_password,cpwChangepassword
get_principal,getprincGetprincipal
list_principals,listprincs,get_principals,getprincs
Listprincipals
get_privs,getprivsGetprivileges
3)程序注册kt管理
Keytable的增加、删除;
ktadd,xstAddentry(s)toakeytab
ktremove,ktremRemoveentry(s)fromakeytab
4)锁管理
lockLockdatabaseexclusively(usewithextremecaution!
)
unlockReleaseexclusivedatabaselock
5)程序功能
程序命令帮助和退出程序。
list_requests,lr,?
Listavailablerequests.
quit,exit,qExitprogram.
5.2.使用kadmin.local管理程序配置
5.2.1.增加安全策略
#kadmin.local
#kadmin.local:
add_policy-maxlife180days-minlife2days-minlength8-minclasses3-history10default
这个输入为我们从现在开始创建的账号定义了默认的策略,它确定了密码的最长有效期是180天,最小是2天;密码最小长度是8个字符,这些字符必须来自5个可用类型中3个不同的类型:
小写字母、大写字母、数字、标点符号和其他,保留最后10个密码的历史以便重新使用。
如果你想用字典检查密码,/usr/local/var/krb5kdc/kdc.conf
修改相关配置如下:
[kdcdefaults]
acl_file=/usr/local/var/krb5kdc/kadm5.acl
dict_file=/usr/share/dict/words
admin_keytab=/usr/local/var/krb5kdc/kadm5.keytab
5.2.2.增加管理员账号
#kadmin.local:
addprincadmin/admin
输入口令:
“admin12;”
根据上述的安全策略,口令中必须包含字母、数字和标点符号;三种类型字符组成的口令;而且至少是八位的口令;
#kadmin.local:
listprincs
查看是否存在admin/*****************账号
#kadmin.local:
quit
退出程序;
5.2.3.测试管理员账号
运行kinit和klist命令,检查admin/admin账号是否正常。
#/usr/local/bin/kinitadmin/admin
提示输入admin/admin的口令
“admin12;”
#klist
Ticketcache:
FILE:
/tmp/krb5cc_0
Defaultprincipal:
admin/*****************
ValidstartingExpiresServiceprincipal
06/07/0818:
13:
4206/08/0818:
13:
42krbtgt/***********************
Kerberos4ticketcache:
/tmp/tkt0
klist:
Youhavenoticketscached
5.2.4.为管理员账号admin/admin指定权限
现在为管理账号指定权限,它由文件/usr/local/var/krb5kdc/kadm5.acl中的条目决定。
为了给账号admin/admin授予“管理所有委托人”的权限,通过添加下面这样一行到/usr/local/var/krb5kdc/kadm5.acl中,并使用通配符实现:
admin/******************
5.3.远程的kadmin管理程序配置
5.3.1.创建一个包含密钥的keytab文件
#kadmin.local:
ktadd-k/usr/local/var/krb5kdc/kadm5.keytabkadmin/changepw
#cat/usr/local/var/krb5kdc/kadm5.keytab
查看该文件中是否存在kadmin/changepw的内容。
5.3.2.启动kadmind服务程序
现在为Kerberos管理后台服务的事情都准备好了,可以启动它了:
#/usr/local/sbin/kadmind
这个后台服务允许用户使用kadmin客户端工具远程管理你的Kerberos账号,而不需要登陆到KDC,如果你想让你的Kerberos后台服务随系统启动而启动,将它们添加到你KDC中的/etc/rc文件中。
5.3.3.使用kadmin客户端工具实现账号管理
使用前面kinit获取到的KerberosTGT,启动远程管理工具:
#kadmin
Authenticatingasprincipaladmin/*****************withpassword.
Passwordforadmin/*****************:
输入admin/admin的口令“admin12;”
kadmin:
listprincs
K/*************
admin/*****************
kadmin/*****************
kadmin/********************
kadmin/****************************
kadmin/*******************
krbtgt/***********************
添加princs:
kadmin:
addprinctest1/kerberos************************
输入口令“admin12;”再次确认口令;
kadmin:
addprinctest2/kerberos************************
输入口令“admin12;”再次确认口令;
kadmin:
quit
6.测试例子程序运行
1启动kdc服务器:
/usr/local/sbin/krb5kdc
2产生并导出服务sample所使用的密钥
使用kadmin.local命令产生一个服务sample所使用的principal;然后导出该principal到文件/etc/krb5.keytab文件中;
Kadmin.local:
addprincsample/********************************
输入口令“admin12;”再次确认口令;
kadmin.local:
ktadd-k/etc/krb5.keytabsample/********************************
7.测试sserver和sclient程序的运行
1在服务端启动sserver
进入/usr/local/sbin目录;并启动sserver服务,监听8899端口,该服务sample使用的密钥保存在/etc/krb5.keytab文件中;
[root@kerberossbin]#./sserver-p8899-ssample-S/etc/krb5.keytab
2在客户端首先获得test1/kerberos************************的票据
kinittest1/
输入口令“admin12;”
如果顺利的话,在/tmp下面会生成文件krb5*;这步如果不通,那么就必须检查以上步骤是否有漏洞。
可以用klist命令来查看credential。
命令如下:
[root@kerberos~]#kinittest1/********************************
Passwordfortest1/********************************:
[root@kerberos~]#klist
Ticketcache:
FILE:
/tmp/krb5cc_0
Defaultprincipal:
test1/********************************
ValidstartingExpiresServiceprincipal
10/25/0916:
23:
5410/26/0916:
23:
54krbtgt/***********************
Kerberos4ticketcache:
/tmp/tkt0
klist:
Youhavenoticketscached
[root@kerberos~]#
3客户端启动sclient程序
进入/usr/local/bin目录;运行sclient程序;访问主机的8899端口;服务名称为sample;
[oracle@kerberosbin]$cd/usr/local/bin
[oracle@kerberosbin]$./sclient8899sample
connected
sendauthsucceeded,replyis:
replylen47,contents:
Youaretest1/********************************
[oracle@kerberosbin]$
使用klist查看目前kerberos的TGT票据和服务票据;
[oracle@kerberosbin]$klist
Ticketcache:
FILE:
/tmp/krb5cc_512
Defaultprincipal:
test1/********************************
ValidstartingExpiresServiceprincipal
10/25/0900:
16:
4310/26/0900:
16:
43krbtgt/***********************
10/25/0900:
17:
0010/26/0900:
16:
43sample/********************************
Kerberos4ticketcache:
/tmp/tkt512
klist:
Youhavenoticketscached
[oracle@kerberosbin]$
8.测试sim_server和sim_client程序的运行
1在服务端启动sim_server
进入/usr/local/sbin目录;并启动sim_server服务,监听8899端口,该服务sample使用的密钥保存在/etc/krb5.keytab文件中;
[root@kerberossbin]#./sim_server-p8899-ssample-S/etc/krb5.keytab
2在客户端首先获得test1/kerberos************************的票据
kinittest1/
输入口令“admin12;”
如果顺利的话,在/tmp下面会生成文件krb5*;这步如果不通,那么就必须检查以上步骤是否有漏洞。
可以用klist命令来查看credential。
命令如下:
[root@kerberos~]#kinittest1/********************************
Passwordfortest1/********************************:
[root@kerberos~]#klist
Ticketcache:
FILE:
/tmp/krb5cc_0
Defaultprincipal:
test1/********************************
ValidstartingExpiresServiceprincipal
10/25/0916:
23:
5410/26/0916:
23:
54krbtgt/***********************
Kerberos4ticketcache:
/tmp/tkt0
klist:
Youhavenoticketscached
[root@kerberos~]#
3客户端启动sim_client程序
进入/usr/local/bin目录;运行sim_client程序;访问主机的8899端口;服务名称为sample;
[oracle@kerberosbin]$cd/usr/local/bin
[oracle@kerberosbin]$./sim_client-p8899-h-mhello
Gotcredentialsforsample.
Sentauthenticationdata:
509bytes
Sentchecksummedmessage:
122bytes
Sentencryptedmessage:
137bytes
[oracle@kerberosbin]$
服务器端sim_server能够显示接收到的信息;
[root@kerberossbin]#./s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- krb5 安装 配置