环境介绍:
PDC(域控制器)
操作系统: Windows server 2003 企业版
主机名:pdc.test.com
Netbios name:pdc
域名:test.com
IP 地址:192.168.0.222
客户端:
操作系统:RedHat AS 4.0
主机名: redhat4
Netbios name : linux
IP 地址:192.168.0.251
Samba 版本:3.0.12
配置 NSS
[root @test root] # vi /etc/nsswitch.conf
passwd: files winbind
group: files winbind
配置 samba
[root @test root] # vi /etc/samba/smb.conf
#============ Global Setting============
workgroup = test
# 这里一定要设置成 PDC 的 netbiosname ,如果设置成 test.com 的话,虽然可以加入域,但用 net rpc testjoin 测试 samba 的域成员关系时,会显示“unabled to find a suitable server join to domain”TEST.COM” is not valid”
netbiosname = linux2
server string = Samba server
log file = /var/log/samba/%m.log
max log size = 50
security = domain
password server = pdc.test.com
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
wins support = yes
dns proxy = no
idmap uid = 15000-20000
idmap gid = 15000-20000
template shell = /bin/false
winbind use default domain = yes
winbind enum groups = yes
winbind enum users = yes
winbind separator = /
template homedir = /homes/%D/%U
参数解析:
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,除非你处于某种原因希望关闭该功能。
template homedir : 用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/homes/MYDOMAIN/username。
需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然template homedir控制samba在哪里寻找域用户的主目录,但是不会自动创建。
[homes]
Path = /homes/%D/%U
Writable = yes
Browseable = no
Valid users = %U
配置 kerberos
[root @test root] # vi /etc/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 = TEST.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[realms]
TEST.COM = {
kdc = 192.168.0.222:88
admin_server = 192.168.0.222:749
default_domain = test.com
}
[domain_realm]
.test.com = TEST.COM
test.com = TEST.COM
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
linux 加入 windows 2003 域,也要在 Linux 将 DNS 服务器的地址指向 windows 域的 DNS 服务器,默认一般就是域控制器,如果没有在Linux 中设置 DNS 服务器地址的话,在加入域时会提示:“Unable to find a suitable server”
[root @test root] # vi /etc/resolv.conf
nameserver 192.168.0.222
重启 network 服务,以使上面的设置生效
[root @test root] # service network restart
重启 samba 和 winbind 服务
[root @test root] # service smb restart
[root @test root] # service winbind restart
加入 windows 2003 域
[root @test root] # net rpc join –S pdc.test.com –U administrator
Passwd:
Joined domain TEST.
# 上面提示加入 test 域成功。
重启 samba 和 winbind 服务
[root @test root] # service smb restart
[root @test root] # service winbind restart
测试 samba 的域成员状态
[root @test root] # net rpc testjoin
Join to 'TEST' is OK
上面表示 linxu 已经成功加入域,这时候就可以在 AD 的 computer 处看到这台 linxu 主机了。
[root @test root] # wbinfo –t
checking the trust secret via RPC calls succeeded
说明主机信任已成功建立
[root @test root] # wbinfo –g
返回 AD 的组信息
[root @test root] # wbinfo –u
返回 AD 的用户信息
附录:关于是应该是使用 RPC 还是 ADS 的一点参考
我应该以ADS模式还是以RPC模式,把我的红帽企业Linux Samba 3.0.x 服务器加入到Windows 2000 或者 Windows 2003活动目录域中?
解决方法:
对于Samba服务器,有两种域安全模式,加入到Windows 2000或者Windows 2003域控制器(DC‘s)控制的域中: RPC 模式 RPC(远程过程调用)模式的域成员是"NT4"样式的域成员,可以在/etc/samba/smb.conf中通过security=domain设定. 只要域控制器运行在混合模式下,Samba的基于RPC的域成员代码更加成熟和稳定可以很好地与Windows2000/2003域控制器工作。混合模式是Windows2000/2003域控制器的默认运行模式。
ADS 模式 ADS(活动目录服务)模式的域成员,可以在 /etc/samba/smb.conf中通过设定security=ads和定义活动目录域realm = YOUR.ACTIVE.DIRECTORY.NAME 来设定。
活动目录域成员对于Samba 3.X 是比较新的,而RPC模式更加成熟一些。ADS模式可以不考虑Windows的域控制器工作在什么模式下和域功能级别。
推荐:如果你的Windows2000/2003活动目录(AD)域控制器(DC)工作在混合模式下,我们推荐Samba服务器以RPC模式加入.当加入RPC模式时,Samba服务不会有显著的网络功能损失和不需要经常更新DC而导致Samba服务器不能和其他的网络正确地工作。
如果DC的运行模式/域功能级别被升级到了2000或者2003主动模式,DC仅仅与以ADS模式加入的域成员通信.同时,记住一旦一个DC的运行模式被升级,在没有删除和重建活动目录时,是不能返回到混合模式的.因此,为了达到最大的Samba兼容性,我们推荐使用DC混合模式.
如果你想把一个基于红帽企业版Linux 3的Samba服务器加入到一个工作在ADS模式的AD域中,系统管理员应该首先保证Samba RPM软件包的版本应该至少是3.0.9-1.3E.3.这个版本之前的Samba RPM软件包不能在活动目录环境中工作。3.0.9-1.3E.3的Samba RPM软件包可以在红帽网络的更新频道中获得。
下面的命令以root的身份运行,来更新主要的Samba软件包和相关的软件包:
# up2date samba samba-client samba-common
Fetching Obsoletes list for channel: rhel-i386-as-3...
Fetching rpm headers...
########################################
Name Version Rel
----------------------------------------------------------
samba 3.0.9 1.3E.3 i386
samba-client 3.0.9 1.3E.3 i386
samba-common 3.0.9 1.3E.3 i386
Testing package set / solving RPM inter-dependencies...
########################################
samba-3.0.9-1.3E.3.i386.rpm ########################## Done.
samba-client-3.0.9-1.3E.3.i ########################## Done.
samba-common-3.0.9-1.3E.3.i ########################## Done.
Preparing ########################################### [100%]
Installing...
1:samba-common ########################################### [100%]
2:samba ########################################### [100%]
3:samba-client ########################################### [100%]
[root@samba-vmsrv1 samba]#