如何安装和配置kerberos服务器
什么是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服务器已准备就绪,几乎可以进行所有配置。