您的位置:首页 > 其它

samba 加入Windows AD 域

2013-07-10 10:53 295 查看
配置这个samba 2:3.6.6-2 版本的samba,前后花了我将近三周时间,配置完之后大概写了个注意文档。

希望对大家有所帮助。

参考配置文件有很多,就没一一列举。那些配置都是针对比较老旧的版本,参考性不是很强,而且许多配置之间略有不同,所以也就不列举了,有兴趣的可以自己查着对比下。

另外看到过一个比较新的文档,自己尝试了下,没有成功。有兴趣的可以试试,网址如下:

https://www.linux-answered.com/2012/05/06/how-to-join-a-debian-6-to-a-windows-active-directory-domain/

另外注意哪些samba版本支持win7 : https://wiki.samba.org/index.php/Windows7

下面是我的大概整理,希望能提供一点帮助。

Debian6SAMBA加入AD域配置过程整理
域与工作组概念http://hi.baidu.com/fuck3r/item/3e7efa177ffb62751109b576
为什么要用域:http://yuelei.blog.51cto.com/202879/113185

Tips(几个易错点):

1. 我在虚拟机装的 Windows server 2003. 注意要用桥接方式,否则会单向ping不通

IP最好改成组内的IP模式。

2. 进入Windows server 系统后, 按右Ctrl + Delete 进入系统。
3. 新建立的server 系统没有任何服务,需要添加上服务并重启。

4. 虚拟机的Server 系统安装完就有AD,我每次都是先删除再重安一个。
重装的时候测试直到成功为止,不要换选项。
正向查找区域内,可能重启看不到所有文件,右键重新加载一下。
详细过程网上搜,大多差不多。
5. 用Windows 系统的机器测试加入建好的域时,需要把DNS改成server的IP
同一台机器,多次改变域,经常出错,改本机名字也会出问题。
6. 要修改 /etc/hosts 给linux 机器增加DNS解析路径:

10.10.3.148vincentchou.testzhou.com testzhou.com www.testzhou.com testzhou

hosts 文件第一列为IP地址,第二列为真实的FQDN(全名),后面的列均为别名。

7. 本机ping不通域名时候,要删除外网DNS 和网关
服务器ping不通要修改/etc/resolv.conf
Nameserver 10.10.3.×××
8. Kinit administrator@TESTZHOU.COM域名要大写
需要的话要时间同步
kinit(v5): Cannotfind KDC for requested realm while getting initial credentials

确认修改了krb5.conf中的dns_lookup_kdc = true/yes
Cannot resolvenetwork address for KDC in requested realm while getting initial credentials

确定修改了 /etc/resolv.conf
9. 新版的samba 对应的 winbind 名字不同

10.要在AD域和samba服务器中建立相同的用户。

smbpasswd -a <username> #
与server 域用户密码一致。

11.测试 wbinfo –u /-g /t errorlookup 的时候 很可能是 /etc/init.d/winbind 服务没起来,

有几次都是启动过了,不知道怎么停了,再次启动一下就好了。

12. 本测试环境 net ads join -U administrator
不行!后来修改成用 rpc
方式登录。



Tips: 需要修改的几个文件集合:

/etc/samba/smb.conf

/etc/krb5.conf

/etc/nsswitch.conf

/etc/hosts

/etc/resolv.conf

/etc/init.d/winbind # 新版本的名 winbind.dpkg-new 对应samba2.3.6.6 也能正常使用。





Tips: 几个软件包作用说明:

winbind是samba的一个组件,实现了微软的RPC调用、可插式验证模块和名字服务切换,通过这些功能可以使NT域用户能在linux主机上以linux用户身份进行操作。
在linux主机上可以查看NT域用户及组信息,就好象这些信息是UNIX本地的一样。当linux主机向操作系统查询任何用户或组名时,该查询都会被发往指定的域控制器,即KDC。
linux主机上的用户可以把NT域用户及组名当作“本地”账号来用,还可以把文件的属主改成NT域用户,甚至可以用一个域用户的身份登录到linux主机并运行一个X-Window会话。


Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(SingleSign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
虽然你的 Kerberos Realm 可以是任何 ASCII 字符串,习惯上还是让它和你域名一致,并且使用大写。例如你的域名是 example.com ,那么 Kerberos realm 最好写作 EXAMPLE.COM


这是NSS(Name Switching Service,名字交换服务)的配置文件,该文件的作用是告诉系统到哪里寻找各种信息(主机地址、用户密码和网络协议等)。
在本服务配置中,主要修改 passwd 和 group 使之从winbind组件中去从Windows服务器中找到对应的用户信息。


















Samba加入 AD 域的步骤:

一. 在虚拟机上装Windows service 2003, 在上面建立一个域。

计算机名: VINCENTCHOU

用户 Administrator

1 DNS前期准备
2 创建域控制器
(默认安装了AD域的话,第一次dcpromo要删除AD重启再次dcpromo)
3 创建计算机账号
4 创建用户账号
二. /etc/samba/smb.conf

主要修改部分:

[global]

security = ads

realm = TESTZHOU.COM

netbios name = TESTZHOU

password server = 10.10.3.148

workgroup = TESTZHOU   # case sensitive。

# winbind separator = /

#指定域用户名中域名和用户名之间的分隔符。

#windows域用户和组使用DOMAIN\users和DOMAIN\groups这样的形式表示。

idmap uid = 10000-20000

idmap gid = 10000-20000

#指定将域用户映射成linux本地用户的UID和GID范围。实际上linux系统内部运行是只识别uid和gid。

# 可能出现范围越界的问题,不同机器范围可能不一样,用testparm检查的时候修改就行

winbind enum users = yes

winbind enum groups = yes

template homedir = /home/%D/%U

template shell = /bin/bash

encrypt passwords = yes

winbind use default domain = yes

#此参数在单域环境中非常有用。默认windows域用户的完整用户名是“域名\用户名”的形式,例如\

#“DOMAIN\administrator”。将该值设置为yes,就不用加前缀了,即使用administrator就可以了。

#但不能与linux本地账户冲突。默认值为no。


用testparm 检查配置是否有问题。



三. /etc/krb5.conf

主要修改部分:

[libdefaults]

default_realm = TESTZHOU.COM

[kdc]

profile = /var/kerberos/krb5kdc/kdc.conf

[realms]

TESTZHOU.COM = {

kdc = 10.10.3.148:88

admin_server = 10.10.3.148:749

default_domain = TESTZHOU.COM

}

[domain_realm]

.testzhou.com = TESTZHOU.COM

testzhou.com = TESTZHOU.COM




配置完以上内容就能测试下kerberos是否配置成功

这个主要是大小写一定要保证,kinit的时候也要大写

Kinit administrator@TESTZHOU.COM 没有返回信息说明配置正确。

使用
klist
命令检查一下ticket是否有效.

# klist



四. NSS的配置文件是/etc/nsswitch.conf

#主要修改以下两个, 加入winbind就行。不一定改成files类型。

passwd: files winbind

group: files winbind

#然后可以用wbinfo查看是否绑定成功。

wbinfo –u # 查看域用户

wbinfo –g # 查看域用户组

wbinfo –t # test



五. net ads/rpc join -U administrator@TESTZHOU.COM

正常提示输入密码,然后显示加入成功



至此,samba已经成功的加入到windows2003的AD域中了。











这个没成功,应该是本机创建的,虚拟机上的Windows server。不是域用户进去的。

(此后发现直接输入IP能进去共享,应该和XP一样,不能直接点击进入,

因为点击后是\\Testzhou\test,可能需要名字解析)

所以我又用虚拟机建了个XP系统,测试了一下。(用的zhoudong 这个帐号进去的,没截图)

这个直接点进去的话出现的这个,然后不能处理,通过IP进去共享文件能正常操作。

试过,读写都没问题。

然后试过没加入域的机器,不能进入共享目录。

至此,配置验证完成。











后来又在samba 2:3.6.6-2 上测试了下。

winbind需要自己手动安装,无法apt-get得到。

好像需要手动增加用户组。(不确定是上周遗留下来的还是怎么回事。所以不确定这个会不会报错)

别的都跟上面一样。

然后又测试了下没加入域的windows用户,无法访问。





补充:另外域用户权限问题:

可以在每个用户的属性—账户—/登录时间和登录到,分别设置域用户的登录权限。

Samba 本身也能控制权限的。 限定特别的用户或者用户所在组的访问权限。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: