如何安装和配置kerberos服务器

时间:2020-03-21 11:48:00  来源:igfitidea点击:

什么是kerberos,以及kerberos是如何工作的

Kerberos服务器建议:

  • Kerberos基础结构不需要高端配置的硬件。但仍建议使用KDC服务器,以保持足够合理的服务器配置。
  • 建议将单个IP地址分配给KDC服务器,因为服务器提供的KDC票证包括服务器的IP地址。如果服务器同时配置有多个NIC卡,则Kerberos客户端可能会因为与具有不同IP地址的KDC服务器联系而遇到问题。
  • KDC服务器计算机上不应运行任何其他服务,因为KDC服务器上任何其他服务的危害都可能使整个基础架构受到威胁。
  • 部署一台主KDC服务器和从KDC服务器,将是冗余的另一项优势。

安装Kerberos

在centos/RHEL中,Kerberos服务器所需的软件包如下。

  • krb5服务器(http://rpmfind.net/linux/rpm2html/search.php?query=krb5-server)
  • krb5-libs(http://rpmfind.net/linux/rpm2html/search.php?query=krb5-libs)

我们可以为Centos 5/Rhel 5下载以下版本。

krb5-libs-1.6.1-70.el5.i386.rpm
krb5-server-1.6.1-70.el5.i386.rpm

正确安装它们,在配置之前,请确保以下事项。

  • 出于安全原因,不应在KDC服务器上打开任何不需要的端口。确保通过运行NMAP或者执行netstat来确保。
  • 限制所有其他不需要对此KDC机器进行访问/身份验证的子网/IP。

为Kerberos设置REALM

在kerberos部署中,在所有CAPS中选择域名作为Kerberos REALM是一个常见的约定。
这里要注意的一件事是,REALM名称始终区分大小写。

配置Kerberos的第一步是如下编辑文件/etc/krb5.conf。
假设我们需要为域theitroad.com配置REALM,让我们将REALM名称保持为theitroad.com,我们的/etc/krb5.conf将如下所示。

[root@myvm1 ~]# cat /etc/krb5.conf
 default_realm = theitroad.com
[realms]
 theitroad.com = {
  kdc = kerberos.theitroad.com:88     #this lists the kdc server for the realm
  admin_server = kerberos.theitroad.com:749 #admin server where all database modifications are done
  default_domain = theitroad.com
 }
[domain_realm]
 .theitroad.com = theitroad.com
 theitroad.com = theitroad.com

default_realm(这是本地领域或者默认领域)

kdc(此选项指定领域中的KDC服务器。
我们可以使用不同的kdc参数添加多个KDC服务器。

现在让我们创建kerberos数据库

可以如下所示进行。

[root@myvm1 ~]# /usr/kerberos/sbin/kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'theitroad.com',
master key name 'K/[email protected]'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:

-s选项创建一个存储文件,这将有助于自动验证。

我们也可以使用-r选项指定REALM,但是如果在krb5.conf文件中仅提及一个REALM,则不需要这样做。

Kerberos会要求数据库的主密码。

下一步是编辑ACL文件/var/Kerberos/krb5kdc/kadm5.acl。
默认情况下,此文件将包含以下内容。

*/[email protected] *

我们需要对其进行编辑以适合我们的REALM,

*/[email protected] *

这是访问数据库的权限。
该条目意味着在我们的theitroad中以/admin结 tail的用户帐户whoes条目。
IN领域将获得访问KDC的完全权限。

现在,让我们为我们的领域theitroad.com创建该/admin用户。

这可以通过以下方法来完成。

[root@myvm1 ~]# kadmin.local -q "addprinc admin/admin"
Authenticating as principal root/[email protected] with password.
WARNING: no policy specified for admin/[email protected]; defaulting to no policy
Enter password for principal "admin/[email protected]":
Re-enter password for principal "admin/[email protected]":
Principal "admin/[email protected]" created.

“ kadmin.local”命令将仅在KDC服务器的根控制台上运行。
addprinc代表添加主体(如果我们还记得我们在以前的文章中对它的解释,则是kerberos中的主体)。
甚至管理员用户也是负责人。

Kerberos服务器进程

需要在kerberos服务器上运行的守护程序如下。

  • krb5kdc
  • kadmin

必须将它们都配置为使用chkconfig命令在启动时启动,如下所示。

chkconfig kadmin on

chkconfig krb5kdc on
[root@myvm1 ~]# /etc/init.d/krb5kdc start
Starting Kerberos 5 KDC:                                   [  OK  ]
[root@myvm1 ~]# /etc/init.d/kadmin start
Starting Kerberos 5 Admin Server:                          [  OK  ]
[root@myvm1 ~]#

现在,在开始上述两个过程之后,我们就完成了配置KDC的工作。

在Kerberos中创建用户或者主体

在kerberos中创建用户或者委托人可以按照以下步骤进行。

[root@myvm1 ~]# kadmin.local
Authenticating as principal root/[email protected] with password.
kadmin.local:  addprinc sarath
WARNING: no policy specified for [email protected]; defaulting to no policy
Enter password for principal "[email protected]":
Re-enter password for principal "[email protected]":
Principal "[email protected]" created.

建议添加脚本以创建大量用户。
我们的KDC服务器已准备就绪,几乎可以进行所有配置。