当前位置:文档之家› 网络安全课设Kerberos实验报告

网络安全课设Kerberos实验报告

附件《网络安全课程设计》实验报告格式2012-2013学年第2学期《网络安全课程设计》实验报告3实验名称:实验18 安全协议之Kerberos协议完成时间: 2014-6-4(练习三)姓名:石心刚学号:110342124姓名:何伊林学号:110342106姓名:白冠军学号:110342101姓名:尹新来学号:110342136姓名:饶明艺学号:110342122指导教师:崔鸿班级:110342A实验目的1.了解身份认证的原理及其重要意义2.学习Kerberos身份认证全过程3.学会在Linux下配置Kerberos身份认证系统系统环境Linux网络环境交换网络结构实验工具krb5 v1.6.2实验步骤本练习主机A~F为一组。

实验角色说明如下:首先使用“快照X”恢复Linux系统环境。

一.配置主KDC在此过程中,将使用以下配置参数:领域名称= LABDNS 域名= lab主KDC = labadmin 主体= admin/adminadmin主体密码:admin数据库管理密码:jlcss(1)首先为主KDC改名,编辑/etc/sysconfig/network文件,把HOSTNAME改为kdc1,保存后重启系统。

(2)配置/etc/resolv.conf文件使本机找到DNS服务器,修改内容如下。

其中domain后面用来标识DNS域名,nameserver后面则用来标识DNS服务器的IP地址。

在本实验中我们就以“应用服务器”作为DNS服务器,它的全限制域名是lab,IP可以根据实验情况进行调整。

(3)主KDC配置时钟同步服务ntpd。

Kerberos服务对于时间同步的要求是很高的,通过ntpd可以同步Kerberos系统中各台主机的时间。

修改/etc/ntp.conf,把OUT TIMESERVERS里的几行注释掉,然后添加一行。

上述内容表示对172.16.0.0网络内主机提供时钟同步服务。

(4)启动ntpd服务,输入:service ntpd start,然后将它设为开机自启,输入:chkconfig ntpd on。

(注意:该服务启动后需要几分钟的时间才可以正常使用)(5)修改/etc/hosts文件,当本机远程访问其它主机时,会先在此文件中查找其他主机信息。

修改内容如下:(6)修改/etc/krb5.conf,关于每个模块的信息可以参见实验原理。

需要修改的有三部分,具体如下面信息:首先在libdefaults里default_realm改为领域名称LAB;在realms里把kdc后面的值改为主KDC(即本机)信息,把default_realm改为DNS域名lab。

(7)切换至/opt/kerberos/var/krb5kdc目录,打开配置文件kdc.conf,将域名改为对应值(LAB)。

(8)创建数据库。

切换至/opt/kerberos/sbin目录,执行命令:./kdb5_util create -s,然后输入数据库管理密码jlcss并确认。

命令执行完毕后,会在/opt/kerberos/var/krb5kdc目录下生成若干principal 文件,它们就是KDC的数据库文件。

(9)修改ACL文件,设置kerberos中各主体的权限。

切换至/opt/kerberos/var/krb5kdc目录,编辑文件kadm5.acl,内容形式如下(具体含义参见Kerberos设置相关文档)。

(10)为主KDC数据库添加主体。

切换至/opt/kerberos/sbin/目录,执行命令:./kadmin.local,进入kerberos控制台,按下面步骤为主KDC数据库添加主体。

①为数据库添加管理主体admin/admin,执行kerberos命令:addprinc admin/admin,并输入该管理员密码(这里设为admin)。

②为kadmind服务创建密钥表文件,此命令序列创建包含kadmin和changepw主体项的特殊密钥表文件kadm5.keytab。

执行kerberos命令:ktadd -k /opt/kerberos/var/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw。

③执行kerberos命令:listprincs,查看主体文件是否添加成功。

④执行kerberos命令:quit,退出kerberos控制台,返回至sbin目录。

(11)执行命令:./krb5kdc启动krb5kdc服务;执行命令:./kadmind,启动kadmind服务。

(12)为使以上两个命令开机自启动,编辑/etc/rc.local文件,追加如下两行内容:二.配置从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不变)。

(3)修改从KDC主机的/etc/resolv.conf为与主KDC一致。

然后同步主、从KDC的时间,从KDC执行命令:ntpdate 主kdcIP,不然在从KDC访问主KDC数据库时会出现时间不同步错误。

「注」从KDC同步时间后,可能会导致虚拟主机与宿主机系统时间不一致,从而影响实验平台的正常运行。

(4)从KDC参照主KDC修改/etc/krb5.conf文件,但注意要把第二个kdc行设成自己的主机信息,admin_server设成主KDC。

(5)主KDC进入sbin目录,执行命令:./kadmin -p admin/admin,输入管理员密码admin,进入kadmin控制台。

首先将主KDC主体添加到数据库中。

执行kadmin命令:addprinc -randkey host/lab其中randkey表示采用随机密钥,由于KDC用户可以通过管理员admin登录到数据库中,而不需要用本机的主体登录,所以采用随机密钥,这样可以极大地增加系统安全性。

继续执行kadmin命令:ktadd host/lab。

通过listprincs命令查看主体文件是否添加成功。

最后执行quit命令退出kadmin控制台。

(6)从KDC以admin用户启动kadmin。

将从KDC主机主体添加到数据库中,执行命令:addprinc -randkey host/lab(其中kdcX是自己的主机名)。

接下来执行命令:ktadd host/lab。

退出kadmin控制台。

(7)所有KDC请求TGT票据,只有在两台KDC都有TGT票据的时候,它们才能正常地进行数据传递。

切换至/opt/kerberos/bin目录,执行命令:./kinit -k -t /etc/krb5.keytab host/lab其中kinit是获取TGT票据的命令,参数k表示使用密码表文件,参数t表示指明密钥表文件所在位置,而命令行最后就是用户的主体。

执行命令:klist,查看KDC请求的TGT票据是否成功。

(8)主、从KDC在目录/opt/kerberos/var/krb5kdc下新建文本文件kpropd.acl,用于主、从KDC之间的数据传递。

所以该文件中应该有所有KDC主机信息三.配置应用服务器和客户机(主机D、E、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 -p admin/admin,输入管理员密码admin,进入kadmin控制台。

为两台应用服务器添加主体,并为其设置一个初始密码。

执行命令:addprinc host/lab(其中hostname指的是分别对应于E、F的主机名),并在其后输入并确认该主体的密码。

为客户机添加主体,并为其设置一个初始密码,执行命令:addprinc *********************,并在其后输入并确认该主体的密码。

主KDC执行listprincs命令查看主体文件是否添加成功。

将上面设置的这三个主体的密码采用安全方式通知相应主机。

(5)客户机、应用服务器都设置/etc/krb5.conf文件,仅需修改libdefaults、domain_realm 和realms三个模块,其中前两个部分与主KDC一致,realms模块中kdc和admin_server都填写主KDC的标识。

(6)应用服务器需要在本机创建一个加密原密钥的密钥表(keytab)。

在sbin目录下执行命令:./kadmin -p host/lab,并确认密码,登录主体数据库。

执行命令:ktadd host/lab,用以创建一个加密密码的密钥表文件/etc/krb5.keytab。

执行quit命令,退出kerberos控制台。

四.KDC之间的数据传递(1)在应用服务器获取密钥表文件后(即完成实验步骤三|(6)后),主KDC中新建一个用于数据传播文件slave_datatrans,也就是把整个KDC数据的数据信息打包到一个文件里,切换至/opt/kerberos/sbin目录,执行命令:./kdb5_util dump /opt/kerberos/var/krb5kdc/slave_datatrans。

在这一步才进行数据传播,是因为在前面的步骤中主KDC的数据库会被改变,而后面不会再变了。

(2)在本实验中所用的krb5-1.6.2版本中,需要在所有从KDC上新建一个空的kerberos 数据库,且数据库密码要与主KDC的数据库密码相同。

在sbin目录中执行命令:./kdb5_util create -s,然后输入数据库管理密码jlcss并确认。

(3)为了实现主KDC到从KDC的kerberos数据传播,需要在所有KDC上建立端口监听。

所有KDC在sbin目录中执行命令:./kpropd -S,机器就是自动监听传播端口(默认为88)。

相关主题