工作需求,需要samba服务器使用Active Directory来进行身份认证。折腾了一段时间,终于配置起来了。
Windows 2003域环境的搭建不多说了,网上很多教程,而且都是点鼠标的操作,没啥技术含量,着重讨论Linux的Samba服务器支持域认证的配置过程。
Win 2003 Server作为域控制器,客户端提交的认证请求和授权的过程是通过Kerberos5协议来完成的,所以要让Linux的samba服务器支持域认证,首先需要将Kerberos配置好。看我的配置文件
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = MNKW.COM #指定域
dns_lookup_realm = false
dns_lookup_kdc = true
ticket_lifetime = 24h
forwardable = yes
[realms]
MNKW.COM = {
kdc = 192.168.6.37:88 #设置密钥分发中心的接口,即域控制器的IP
admin_server = 192.168.6.37:749
default_domain = MNKW.COM
}
[domain_realm]
.mnkw.com = MNKW.COM #指定域
mnkw.com = MNKW.COM #指定域
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
在配置好以上之后,需要执行kinit来验证和初始化kerberos协议是否可以正常运行。
遇到的一些问题:
一、
[root@Gh0st CentOS]# kinit test111@mnkw.com
kinit(v5): Cannot find KDC for requested realm while getting initial credentials
原因:客户端主DNS未指向域控制器
解决:
编辑文件/etc/resolv.conf,将nameserver的值修改成域控制器的IP地址。
二、
[root@Gh0st CentOS]# kinit test111@mnkw.com
Password for test111@mnkw.com:
kinit(v5): Clock skew too great while getting initial credentials
原因:
客户端与认证服务器的时间差距太大,将客户端与认证服务器的时间同步即可
解决:
安装ntp软件,执行ntpdate –b 192.168.6.37(域控制器的IP),时间被同步
[root@Gh0st CentOS]# ntpdate -b 192.168.6.37
17 Sep 12:32:05 ntpdate[10302]: step time server 192.168.6.37 offset 2537.194742 sec
三、
[root@Gh0st CentOS]# kinit test111@mnkw.com
Password for test111@mnkw.com:
kinit(v5): KDC reply did not match expectations while getting initial credentials
解决:使用大写的域名
[root@Gh0st CentOS]# kinit administrator@MNKW.COM
Password for administrator@MNKW.COM:
[root@Gh0st CentOS]#
至此,kerberos的协议已经配置完成。http://hi.baidu.com/drinkey/blog/item/471a2f97a628226755fb969c.html