`
genwen
  • 浏览: 24209 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Samba与Win2003 AD的整合

阅读更多
今天下午没什么事情,就看了些关于如何整合linux samba服务器和Windows AD的文章。其实就是利用linux的winbindd服务来使用Windows AD为Samba进行用户认证。自己在操作的过程中,也遇到了错误,写下来,留个念想吧,:)
 
一.环境介绍
WINDOWS 2003 SERVER + AD
域名:exchange.umtest.local
ip地址: 192.168.0.117
账户:   administrator
密码:   R0ck1t
 
REDHAT AS 4 U4 + Kerbose 5 + Samba 3 (其实都是系统默认安装上的软件包)
机器名: TSM-SC
ip地址:192.168.0.235
账户:   root
密码:   123456
 
二.开始配置
 
1. Kerberos配置
 
Win2003系统默认通过Kerberos做身份验证,Kerberos验证需要安装Krb5软件包。配置文件及测试都很简单。Krb5的配置文件为/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 = 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.LOCAL
exchange.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 winbind

group: files winbind

配置完成,启动winbind服务,

#winbindd

4. 确认Samba主机帐号在AD中正确注册

使用wbinfo –t验证Samba主机已成功加入AD

# wbinfo –t
checking the trust secret via RPC calls succeeded

说明主机信任已成功建立

如果得到如下的信息,重新运行一下#winbindd就可以解决

#wbinfo -t
checking the trust secret via RPC calls failed
error 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服务器,可以看到除了其它共享的目录外,还有一个自己的目录,而且可以写。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics