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用户 //删除域服务器上的组和用户
至此完成了所有的配置。