[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log[libdefaults] default_realm = EXCHANGE.UMTEST.LOCAL (验证域的realm,必须全部大写) dns_lookup_realm = false dns_lookup_kdc = false[realms] EXCHANGE.UMTEST.LOCAL = { kdc = 192.168.0.117:88 admin_server=192.168.0.117:749 default_domain = EXCHANGE.UMTEST.LOCAL }[domain_realm].exchange.umtest.local = EXCHANGE.UMTEST.LOCALexchange.umtest.local = EXCHANGE.UMTEST.LOCAL[kdc] profile = /var/kerberos/krb5kdc/kdc.conf[appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
配置完成以后,可以通过kinit工具进行测试,方法如下:
#kinit administrator@EXCHANGE.UMTEST.LOCAL
如果配置正确,就会直接返回到shell。
Samba 和 MS AD 的系统时间相差不大于5分钟, 否则会出现下面的错误:
kinit(v5): Clock skew too great while getting initial credentials
2.Samba的配置
系统默认的配置文件在/etc/samba/smb.conf,如果是从源码包安装的,会在/usr/local/etc/smb.conf。 更改配置文件如下:
[global] workgroup = EXCHANGE (域的NETBIOS名字) netbios name = TSM-SC server string = Samba Server security = ADS (设置为AD验证) realm = EXCHANGE.UMTEST.LOCAL (验证域realm,必须大写) password server = 192.168.0.117 (PDC,这里就是AD服务器) encrypt passwords = yes os level = 20 dns proxy = no idmap uid = 10000-20000 idmap gid = 10000-20000 winbind use default domain = yes
winbind separator = / winbind enum users = yes winbind enum groups = yes
- idmap uid - 指定一个uid范围,该范围内的uid被用来映射UNIX用户到windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,winbind启动以后,也不能在该ID范围内添加用户。
- idmap gid - 指定一个gid范围,该范围内的gid被用来映射UNIX用户到windows的组SID,而且要确保这个id范围内没有被本地或者NIS组占用,winbind启动以后,也不能在该ID范围内添加新组。
- winbind separator - 指定一个字符作为分隔符,winbind将使用该分隔符来用户或组名。使用该配置将使得域用户表示为 "MYDOMAIN+username",域组被表示为"MYDOMAIN+Domain Users"
- winbind enum groups和winbind enum users - 指定winbind是否在系统上创建域的组/用户,一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能
配置完成,你要将Samba加入AD中,命令如下:
#net ads join -U administrator@EXCHANGE.UMTEST.LOCAL
然后重新启动samba
#service smb restart
3. 配置NSS
Nss为Name Service Switch,控制帐号的验证。编辑/etc/nsswitch.conf,如下
passwd: files winbindgroup: files winbind
配置完成,启动winbind服务,
#winbindd
4. 确认Samba主机帐号在AD中正确注册
使用wbinfo –t验证Samba主机已成功加入AD
# wbinfo –tchecking the trust secret via RPC calls succeeded
说明主机信任已成功建立
如果得到如下的信息,重新运行一下#winbindd就可以解决
#wbinfo -tchecking the trust secret via RPC calls failederror code was (0x0)Could not check secret
使用wbinfo –u 可以列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
用getent passwd 和getent group你可以看到本地服务器及域服务器上所有的用户及组的信息。
好了,到这里你访问samba服务器时,就需要正确输入域名了,形如:EXCHANGE\rwang,输入正确,就可以访问了。
饿死了,胃疼,还是先闪人了,以后再慢慢学习,添加新的东西。
5.解决访问samba时,个人目录的问题
在samba的配置文件中加入如下内容:
[global] template homedir=/homes/%D/%U[homes] comment = Home Directories path=/homes/%D/%U valid users=%U browseable = no writable = yes
然后,逐个为用户建立目录并分配权限(这一步是比较麻烦),我们的域是EXCHANGE,为用户hrwang建立目录,方法如下#mkdir -p /homes/EXCHANGE#cd /homes/EXCHANGE#mkdir hrwang#chown "EXCHANGE\hrwang":"EXCHANGE\domain users" hrwang
好了,用service smb restart 重启samba服务,再登陆samba服务器,可以看到除了其它共享的目录外,还有一个自己的目录,而且可以写。 相关资源:kerberos认证过程,AD域认证