网络安全课设Kerberos实验报告.docx
《网络安全课设Kerberos实验报告.docx》由会员分享,可在线阅读,更多相关《网络安全课设Kerberos实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
网络安全课设Kerberos实验报告
附件《网络安全课程设计》实验报告格式
2012-2013学年第2学期
《网络安全课程设计》实验报告3
实验名称:
完成时间:
实验18安全协议之Kerberos协议
2014-6-4
(练习三)
姓
名:
石心刚
学号
110342124
姓
名:
何伊林
学号
110342106
姓
名:
白冠军
学号
110342101
姓
名:
尹新来
学号
110342136
姓
名:
饶明艺
学号
110342122
指导教师:
崔鸿
班级
110342A
实验效果
实验报告
总评
实验目的
1.了解身份认证的原理及其重要意义
2.学习Kerberos身份认证全过程
3.学会在Linux下配置Kerberos身份认证系统
系统环境
Linux
网络环境
交换网络结构
实验工具
krb5vl.6.2
实验步骤
本练习主机A〜F为一组。
实验角色说明如下:
实验主机
实瞬角色
主机上
主ZK
主机反C
MDC
主机D
TELWET服芻器(朕吐汕*客尸
■-耳
主机E
FTP服务器(
主机F
普通用户(Kertexos^户端)
首先使用“快照X”恢复Linux系统环境。
一.配置主KDC
在此过程中,将使用以下配置参数:
领域名称=CSERVER.NETLAB
DNS域名=cserver.netlab
主KDC=lab
admin主体=admin/admin
admin主体密码:
admin
数据库管理密码:
jlcss
(1)首先为主KDC改名,编辑/etc/sysconfig/network文件,把HOSTNAM改为kdc1,保存后重启系统。
(2)配置/etc/resolv.conf文件使本机找到DNS服务器,修改内容如下。
dam盘1“cserver.zteil&b
nMHfervar1TZ.16.0.254
其中domain后面用来标识DNS域名,nameserver后面则用来标识DNS服务器的IP地址。
在本实验中我们就以“应用服务器”作为DNS服务器,它的全限制域名是lab,IP可以根据实验情况进行调整。
(3)主KDC配置时钟同步服务ntpd。
Kerberos服务对于时间同步的要求是很高的,通过ntpd可以同步Kerberos系统中各台主机的时间。
修改/etc/ntp.conf,把OUTTIMESERVERS里的几行注释掉,然后添加一行。
raitricl172.16.0.02S5.255.255.0zunnodi£ynotraj-
上述内容表示对172.16.0.0网络内主机提供时钟同步服务。
(4)启动ntpd服务,输入:
servicentpdstart,然后将它设为开机自启,输入:
chkconfigntpdon。
(注意:
该服务启动后需要几分钟的时间才可以正常使用)
(5)修改/etc/hosts文件,当本机远程访问其它主机时,会先在此文件中查找其他主
机信息。
修改内容如下:
127.0.0.1
locallioEt.1ocalrilomam
IocrILoet
kdlcL.cserver,ne+lal?
kdcl
(6)修改/etc/krb5.conf,关于每个模块的信息可以参见实验原理。
需要修改的有三
部分,具体如下面信息:
首先在libdefaults里default_realm改为领域名称CSERVER.NETLAB在realms里把kdc后面的值改为主KDQ即本机)信息,把default_realm改为DNS域名lab。
Clibd&fsulis]
=CSE1VER.METLAB
dn,5_l>clup_realm=壬辺
4«kup_kdc-falseti=24h
forware—yes[realms]GS^EVER.NETLAE={
kdc=kdcl.cservtr.netlab:
SS
admi.n_s#rvflr=kdcl.cisrv^rnetlat:
T49deHaul二cserv&r.n&tlab
[domain_reJe]
.cserver.liatlib-CSERVER.BETLABeservtr.n电口也b二CSERVER.NZTLAB
(7)切换至/opt/kerberos/var/krb5kdc目录,打开配置文件kdc.conf,将域名改为对应值(CSERVER.NETLAB
[reaiLiiis]
CSERVIR.BITUL0'f
flrtiit18r_ksy_l5
5uppertsd_e:
rte+yp-dss.3-hiftic-s.lial:
normilarcfoar-hm*cZdes-hmic-shil'n
onm^ldes"clc"m-d51normals~cbc~erc'normaldes."cbc"crc:
v4des"cbe-crc!
i£e3
plJUILI:
U*3vC:
*3vJTTL-|.|:
IV|LJ1_|.Jt7口4匚
rootSHostSHguest]#telnot127,0.0.1
vying127.0.0.L…
[onnectedtoHostSB.NetlabC127.0.0.1).
'scapecharacterts]・
■i?
cioraCorerelease5(Bordeaux*
ernel2.6.15'1.2054_FC5onan1680
.ogiri:
uuost
Password
rRu&st(3Hostt5B"_]$
(8)创建数据库。
切换至/opt/kerberos/sbin目录,执行命令:
./kdb5_utilcreate-s,然后输入数据
库管理密码jlcss并确认。
命令执行完毕后,会在/opt/kerberos/var/krb5kdc目录下生成
若干principal文件,它们就是KDC的数据库文件。
(9)修改ACL文件,设置kerberos中各主体的权限。
切换至/opt/kerberos/var/krb5kdc目录,编辑文件kadm5.acl,内容形式如下(具体含义参见Kerberos设置相关文档)。
nQCSEma.rniAE*
hiciecsEmihetlabaimczlkicl/*C5ER¥ER.ffETLAJilNITLAB
*eC5ERV£B.NETLABcil*1/adm1r^CSERVIR.
*/*QCSEEVER.NETLABi*/kdcieCSEK¥ER.BETLAB*-mislift
(No
Infocouldt»mdfor*:
B4teuLd0=50D
butyouEhouidbnrout.)
“i
1mluiJii/lcuiLJi^LlLuiiife(乍1?
丄5赴丄匕idiUeaiLsabl
Ldied)
Pl'Ci
toR(m:
i=GSieniri"Q
1ixh14ddr»is
Fai(>f,■iiAilttrcss
riArj(*
11]
(1
0
n.on.n■111
G.0.0.D:
+
LISTEN
tCD
0
0
Q.0,U,Q;ZL
ot0,0,0:
*
LISTEN
tcp
U
<1
U.0.0.0:
2J
匕0.0.D:
+
LlSTtN-
tcp
0
0
127.0.0.U23
127.0iD*liaoew
ESTABLISHED
5
0
0
12700.1^00093
1270.0.1:
ZJ
ESTABLCSHFD
Ir[
Ci
0
:
;rrrr:
127.nn1eoooo
:
:
:
*
11STEM
tcp
c
Q
:
:
;旳
:
:
:
*
LISTEN
tcp
0
<|
:
;;山
:
;;*
-
!
mmctOHrxctr^R1ft
(10)为主
KDC数据库添加主体。
切换至/opt/kerberos/sbin/目录,执行命令:
./kadmin.local,进入kerberos控制台,
按下面步骤为主KDC数据库添加主体。
1为数据库添加管理主体admin/admin,执行kerberos命令:
addprincadmin/admin,
并输入该管理员密码(这里设为admin)。
2为kadmind服务创建密钥表文件,此命令序列创建包含kadmin和changepw主体项
的特殊密钥表文件kadm5.keytab。
执行kerberos命令:
ktadd-k/opt/kerberos/var/krb5kdc/kadm5.keytabkadmin/adminkadmin/changepw。
3执行kerberos命令:
listprincs,查看主体文件是否添加成功。
4执行kerberos命令:
quit,退出kerberos控制台,返回至sbin目录。
(11)执行命令:
./krb5kdc启动krb5kdc服务;执行命令:
./kadmind,启动kadmind服务。
(12)为使以上两个命令开机自启动,编辑/etc/rc.local文件,追加如下两行内容:
/opt/k电:
rbexos/sbin/lcrb5kdc
/o®t/k电fberoi/sbin/lkadmind.
文徉Q编辑b查看卫
终端■:
!
■标签勁
帮助⑪
£(jE?
faul1:
mi
Rdescription:
Thetelnetserverserves
telnet
sessioils;ltuses\
NunoncryptodusornairiQ/passwordijairsfor
alithoutLcatLon.
icctelnot
flHRS
=REUSE
t_typc
=stream
vait
=no
user
=rout
server
=/usr/shin/in.
Leilieid.
loponfailuye
■4=USERID
dis%
=no
%
s.
r/ctcJiinctd・dztelnet*
[只读]IL.30IC
1,1
伽
.配置从KDC
在此过程中,将配置两个分别名为kdc2和kdc3的新从KDC此外,还将配置增量传播。
此过程新添加的配置参数:
从KDC=lab和lab
(1)首先需要为两台从KDC改名,编辑/etc/sysconfig/network文件,把HOSTNAME
改为kdc2或者kdc3,保存后重启系统。
(2)主、从三台KDC主机都修改/etc/hosts文件。
下面以主KDC为例,第一行为原始标识,后面三行为各KDC标识。
(hosts文件需要修改,把主、从kdc分别写出来,127.0.0.1不变)。
127.0.0.1localhost.locallQinaLJiLoe俎host
kdd.cserver.netlatkdul
WfJ7kdc2nitlatb血2
必kdc3.cserver,lcdc3
(3)修改从KDC主机的/etc/resolv.conf为与主KDC-致。
然后同步主、从KDC!
的时
间,从KDC执行命令:
ntpdate主kdcIP,不然在从KDC访问主KDC数据库时会出现时间不同步错误。
「注」从KDC同步时间后,可能会导致虚拟主机与宿主机系统时间不一致,从而影响实验平台的正常运行。
(4)从KDC参照主KDC修改/etc/krb5.conf文件,但注意要把第二个kdc行设成自己
的主机信息,admin_server设成主KDC
[1lLde£anlts]defanlt.realr*=CSERV1R.lITTLABdn_1&olup—r&alm-sedni_lo*kup_kJc-«
lickfet_lifttimt=24kfonrwardable=yes
[realms]
CSIRVEE.1IETLAE={
ide=kdjcl.cservtr.iitlLa'b^SSkdc-kdc^.cserver.netLablSBadjiin_ser7er=kdcl.cserver,netlab;749d*fiTilt_doiiain=CKtTver.n^tlab
}
[doniaiTL_Fealni]
.
文件心编辑旧查看①终端(L标签四帮助助
=曲葩=
.禍定]
root^IlostCB]#vim.etcold.conf.rool^HostGB/]flsorviuowinotdrestart停止xlnetdi
Jfi动xinetd:
[root^HosttiB:
']#
(5)主KDC进入sbin目录,执行命令:
./kadmin-padmin/admin,输入管理员密码admin,进入kadmin控制台。
首先将主KDC主体添加到数据库中。
执行kadmin命令:
addprinc-randkeyhost/kdcl.cserver.netlab
其中randkey表示采用随机密钥,由于KDC用户可以通过管理员admin登录到数据库中,
而不需要用本机的主体登录,所以采用随机密钥,这样可以极大地增加系统安全性。
继续执行kadmin命令:
ktaddhost/lab。
通过listprincs命令查看主体文件是否添加成功。
最后执行quit命令退出kadmin控制台。
(6)从KDC以admin用户启动kadmin。
将从KDC主机主体添加到数据库中,执行命令:
addprinc-randkey
host/kdcXlab(其中kdcX是自己的主机名)。
接下来执行命令:
ktaddhost/kdcX.cserver.netlab。
退出kadmin控制台。
(7)所有KDC请求TGT票据,只有在两台KDC都有TGT票据的时候,它们才能正常地进行数据传递。
切换至/opt/kerberos/bin目录,执行命令:
./kinit-k-t/etc/krb5.keytabhost/kdcX.cserver.netlab
其中kinit是获取TGT票据的命令,参数k表示使用密码表文件,参数t表示指明密钥
表文件所在位置,而命令行最后就是用户的主体。
执行命令:
klist,查看KDC请求的TGT票据是否成功。
(8)主、从KDC在目录/opt/kerberos/var/krb5kdc下新建文本文件kpropd.acl,用
于主、从KDC之间的数据传递。
所以该文件中应该有所有KDC主机信息
Kost/kdel..n*11ab@CSER.VTR.1TETLAB
host/kdcZ.cserv«r.ik^tlabSCSEMR.NTHAE;host/kdc3.cs*rv«rnetlib@CSERYER.NETLAE
文件旧编辑®查看丁终端①标签®帮助也
LM促]「卅宀iL«n定J
.rool^lI'jsL6B/_ffvim/etc/xinetd.confrouL^]lcjsl6B/]icexineLdrestart停JhxLnetd:
.启就Jxfnetd:
[root^lfostfiB/Ifftelnet127.1.2.17TryiRff127.1.2-17...
Connected1c127.1.2.17(127.1.2.17)L
I;scupechoi'iictcris'.'.
ConnectionclosedbyforeiRnhost.
[root^HostSB/Jff|
3.配置应用服务器和客户机(主机DE、F)
(1)应用服务器和客户机也需要修改主机名,按照主、从KDC改名的方法,将它们分别改名为telnet_server、ftp_server和client,并重启系统。
(2)应用服务器和客户机修改/etc/hosts文件,使它包含系统中所有KDC和其它服务器及客户机的信息。
(配置方法参见步骤二丨
(2))。
(3)应用服务器和客户机修改/etc/resolv.conf文件,使之与主KDC一致。
然后应用
服务器和客户机同步主KDC的时间,并执行命令:
ntpdate主kdcIP。
(4)主KDC为客户机添加主体,并更新从KDC数据库。
切换至/opt/kerberos/sbin目录,执行命令:
./kadmin-padmin/admin,输入管理员
密码admin,进入kadmin控制台。
为两台应用服务器添加主体,并为其设置一个初始密码。
执行命令:
addprinc
host/lab(其中hostname指的是分别对应于E、F的主机名),并在
其后输入并确认该主体的密码。
为客户机添加主体,并为其设置一个初始密码,执行命令:
addprincclient@CSERVER.NETLAB并在其后输入并确认该主体的密码。
主KDC执行listprincs命令查看主体文件是否添加成功。
将上面设置的这三个主体的密码采用安全方式通知相应主机。
(5)客户机、应用服务器都设置/etc/krb5.conf文件,仅需修改libdefaults、
domain_realm和realms三个模块,其中前两个部分与主KDC一致,realms模块中kdc和
admin_server都填写主KDC的标识。
[1jbe^lni—CSERVIR.
dns_lofllnp_r»sin-fals»dns_lo*ku.p_kilc=falstticks=24h
=yes.
[realms]
CSERHKIRTLJ^二[
kdc=kdci.CEanrer.iuetlib:
8S
idnin_server=kdcl,cserver.netlab:
T49defsult^donain-CE«rv«r.n^tlab
}
〔d帅和it』e=alm]
eserv«rn«tl&b=CSERV^RHETLAB
5serveritstlib=CSERVER.KETUkE
(6)应用服务器需要在本机创建一个加密原密钥的密钥表(keytab)。
在sbin目录下执行命令:
./kadmin-phost/lab,并确认密码,
登录主体数据库。
执行命令:
ktaddhost/lab,用以创建一个加密密码的密钥表文
件/etc/krb5.keytab。
执行quit命令,退出kerberos控制台。
4.KDC之间的数据传递
(1)在应用服务器获取密钥表文件后(即完成实验步骤三丨(6)后),主KDC中新建
一个用于数据传播文件slave_datatrans,也就是把整个KDC数据的数据信息打包到一个文
件里,切换至/opt/kerberos/sbin目录,执行命令:
./kdb5_utildump
/opt/kerberos/var/krb5kdc/slave_datatrans。
在这一步才进行数据传播,是因为在前面的步骤中主KDC的数据库会被改变,而后面不
会再变了。
(2)在本实验中所用的krb5-1.6.2版本中,需要在所有从KDC上新建一个空的
kerberos数据库,且数据库密码要与主KDC的数据库密码相同。
在sbin目录中执行命令:
./kdb5_utilcreate-s,然后输入数据库管理密码jlcss并确认。
(3)为了实现主KDC到从KDC的kerberos数据传播,需要在所有KDC上建立端口监听。
所有KDC在sbin目录中执行命令:
./kpropd-S,机器就是自动监听传播端口(默认为88)。
(4)手动将主KDC中的数据传递到从KDC中,在sbin目录中执行命令:
./kprop-f/opt/kerberos/var/krb5kdc/slave_datatranskdc2
./kprop-f/opt/kerberos/var/krb5kdc/slave_datatranskdc3
当出现"databasepropagationtokdc2:
SUCCEEDED字样提示信息时,表明数据传递已成功,这时在每个从KDC上都会保存一份主KDC的数据库备份,就算主KDC出现故障,它们也能继续为域内主机提供kerberos服务。
(5)从KDC新建一个数据库备份文件,它用于各KDC之间的鉴别。
在sbin目录中执行
命令:
./kdb5_utilstash,并输入数据库管理密码jlcss确认。
(6)从KDC启动krb5kdc和kadmind,编辑/etc/rc.local使服务开机后自启。
(7)kerberos客户机和应用服务器,修改/etc/krb5.conf文件,把realms模块中kdc
后面的标识修改为给他提供服务的从kdc的标识。
即kdc=kdcXlab(X依从
kdc情况调整)。
(8)应用服务器在本机获取一个身份认证票证(TGT)。
切换至/opt/kerberos/bin目录,