1.samba服务器软件需求  

krb5-user krb5-doc krb5-config  (krb5-workstation\pam_krb5\krb5-libs\krb5-devel为Centos需要的软件)

samba-3.0.5-2  

2.配置kerberos(关键)  

下面配置参数让 Kerberos 进程知道处理活动目录服务器,对 /etc/krb5.conf 做适当的修改,修改时需要注意的是 Kerberos 是大小写敏感的。  

这是我的krb5.conf配置文件:  

[logging]  

default = FILE:/var/log/krb5libs.log  

kdc = FILE:/var/log/krb5kdc.log  

admin_server = FILE:/var/log/kadmind.log  


[libdefaults]  

default_realm = DOMAIN.COM  //改这里

dns_lookup_realm = false  

dns_lookup_kdc = false  

forwardable = yes

[realms]  

DOMAIN.COM = {  

kdc = 192.168.2.248   //为AD服务器的ip地址

# admin_server = kerberos.example.com:749  

default_domain = MYDOMAIN.COM   //需要加入的域名

}  


[domain_realm]  //改这里

.mydomain.com = MYDOMAIN.COM  

mydomain.com = MYDOMAIN.COM   


3.连接2003服务器  


kinit 用户名@DOMAIN.COM  

Kerberos 的 kinit 命令将测试服务器间的通信,后面的域名MYDOMAIN.COM 是你的活动目录的域名,必须大写,否则会收到错误信息:  

kinit(v5): Cannot find KDC for requested realm while getting initial credentials.  


如果通信正常,你会提示输入口令,口令正确的话,就返回 bash 提示符,如果错误则报告:  

kinit(v5): Preauthentication failed while getting initial credentials.  

配置 /etc/nsswitch.conf

修改 /etc/nsswitch.conf ,让Winbind做为passwd和group验证时的标准 (只修改

下面的部分,其它的不用改)

passwd:     files winbind

shadow:     files

group:      files winbind


Samba 的配置文件 /etc/samba/smb.conf

[global]

 workgroup = DOMAIN

client ldap sasl wrapping = sign  //绞尽了脑汁 必须添加  然后才可以用 net ads join -U username 加入域 

  //报错  kinit succeeded but ads_sasl_spnego_krb5_bind failed: Strong(er) authentication required

 idmap gid = 15000-20000

 idmap uid = 15000-20000

 winbind use default domain = yes

 template shell = /bin/bash

 template homedir = /homes/%D/%U

 security = ads

 realm = DOMAIN.COM

 password server = 10.136.74.64 //域服务IP地址

 winbind separator = / 

 winbind enum groups = yes

 winbind enum users = yes

[homes]

comment = %U 's Home Directories

browseable = no


writeable = yes


valid users = %D/%U

path = /home/%D/%U //必须和上面的template创建的目录相同

preexec=/home/domain/buildhome %D %U %G


Samba 加入 Win 2003 域

net rpc join -W DOMAIN -U user 或者 net ads join -U user


会出提示pasword: 

输入Win2003域的用户密码

成功会出现 Joined domain XXX

重新启动 samab 和 winbind


/etc/init.d/samba restart

/etc/init.d/winbind restart

确认加入win2003域成功,可以


1.到Win2003的域控计算机上,依次点击 “开始”-”所有程序“-“系统管理工



具” - “Active Directory 使用者及计算机”

在其中依次点击 “YUVAD.COM"-- "computer",找到安装 debian的计算机名称 debian

2.在Debian中执行 wbinfo -t   出现 

checking the trust secret via RPC calls succeeded

说明主机信任已成功建立

执行 wbinfo -u 可列出debian中的用户和win2003 域中的用户信息

执行 wbinfo -g 可列出debian中的组和win2003 域中的组信息

自动建立用户主目录

当域用户登入 samba 时,可以看到samba上已经有了一个与域帐号同名的共享资料

夹,但当点击进入时会提示无法使用,这是因为按上的配置,Samba不会自动为登入

的域用户建立主目录。所以可以使用脚本来自动建立主目录,并在[homes]中添加一



preexec=/home/domain/buildhome %D %U %G


cat  /home/domain/buildhome


umask 0077


if [ ! -d /home/$1/$2 ]; then


mkdir /home/$1/$2

chown $2 /home/$1/$2

chgrp $3 /home/$1/$2

fi

或者

vi /etc/pam.d/sshd

auth sufficient /lib/security/pam_winbind.so //ssd登录时用winbind认证

account sufficient /lib/security/pam_winbind.so

session required /lib/security/pam_mkhomedir.so //自动创建登录用户的目录

最后用net ads group/user add/delete来添加查看删除AD用户 //删除域服务器上的组和用户

 

至此完成了所有的配置。