先在windows server 2003上搭建一个名字为taokey.com的域

由于搭建windows域比较简单,这里就不说了。

1.查看所需要的安装包是否已经成功安装

[root@samba ~]# rpm -qa | grep samba    //查看下samba服务所需的软件包

samba-3.0.33-3.39.el5_8

samba-client-3.0.33-3.39.el5_8

samba-common-3.0.33-3.39.el5_8

[root@samba ~]# rpm -qa | grep krb5    //查看下krb5是否安装

pam_krb5-2.2.14-22.el5

krb5-libs-1.6.1-70.el5_9.2

krb5-workstation-1.6.1-70.el5_9.2

pam_krb5-2.2.14-22.el5

krb5-server-1.6.1-70.el5_9.2

krb5-auth-dialog-0.7-1

krb5-devel-1.6.1-70.el5_9.2

krb5-devel-1.6.1-70.el5_9.2

krb5-server-ldap-1.6.1-70.el5_9.2

krb5-libs-1.6.1-70.el5_9.2

Krb是Kerberos的简称,Kerberos协议是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。Kerberos采用对称密钥体制对信息进行加密。其基本思想是:能正确对信息进行解密的用户就是合法用户。用户在对应用服务器进行访问之前,必须先从第三方(Kerberos服务器)获取该应用服务器的访问许可证(ticket)。

2.查看下linux系统samba服务器的IP地址:

[root@samba ~]# ifconfig eth0 | grep "inet addr"

inet addr:192.168.1.28  Bcast:192.168.1.255 Mask:255.255.255.0

windows server 2003的IP地址是192.168.1.30

[root@samba ~]# setup

Samba f服务器加入windows_第1张图片

选择"Authentication conf iguration",然后点击 "Run Tool"

Samba f服务器加入windows_第2张图片

选择"Use Winbind"、"Use Kerberos"、"Use Winbind Authertication",点击"Next"

Samba f服务器加入windows_第3张图片

Realm:域名(TAOKEY.COM),KDC:域服务器的IP地址(192.168.1.30),清空Admin Server,选择"Next"

Samba f服务器加入windows_第4张图片

Domain:TAOKEY,IP192.168.1.30,ADS范围:TAOKEY.COM,选择/bin/bash,选择Join Domain

Samba f服务器加入windows_第5张图片

选择"Yes"

Samba f服务器加入windows_第6张图片

域控的账号和密码,选择OK

Samba f服务器加入windows_第7张图片

选择Ok,然后退出就可以


不过这个是图形安装,字符界面安装如下:

首先看下修改后的/etc/nsswitch.conf

[root@samba ~]# sed -n '33,35'p /etc/nsswitch.conf

passwd:    files winbind (就是先读files 然后再通过winbind认证)

shadow:    files

group:      files winbind

再看下/etc/krb5.conf这个修改后的配置文件

[root@samba samba]# cat /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 = TAOKEY.COM    //默认域名

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 24h

forwardable = yes

[realms]

EXAMPLE.COM = {

kdc = kerberos.example.com:88

admin_server = kerberos.example.com:749

default_domain = example.com

}

TAOKEY.COM = {

kdc = 192.168.1.30:88

kdc = 192.168.1.30    //域服务器IP地址

}

[domain_realm]

.example.com = EXAMPLE.COM

example.com = EXAMPLE.COM

taokey.com = TAOKEY.COM

.taokey.com = TAOKEY.COM

[appdefaults]

pam = {

debug = false

ticket_lifetime = 36000

renew_lifetime = 36000

forwardable = true

krb4_convert = false

}

看下smb.conf的配置

[root@samba samba]# cat smb.conf

[global]

workgroup = TAOKEY

password server = 192.168.1.30    //域服务器

realm = TAOKEY.COM

security = ads    //必须启用

idmap uid = 16777216-33554431

idmap gid = 16777216-33554431

template shell = /bin/bash

winbind use default domain = true

winbind offline logon = true

template homedir = /home/%U

winbind separator = /

winbind enum users = Yes

winbind enum groups = Yes

[root@samba ~]# /etc/init.d/smb restart

[root@samba samba]# net ads join -U [email protected]

到大客户端查看下,是否成功加入windows域。

Samba f服务器加入windows_第8张图片

成功加入域了,实验成功。

7.5.4  把Samba服务器加入到AD域

通过前面几个配置文件的成功配置,现在就可以把Samba服务器加入到Windows Server 2003域网络中,成为域客户端了。但首先要使用service smb restart和service winbind restart命令重启smb和winbind服务。然后使用以下命令把Samba服务器加入到域中(此时只能使用有权把客户机加入到域的域用户账户,通常是直接使用域管理员账户administrator):

net ads join -U  administrator

正常情况下会出现要求你输入管理员账户的密码,然后过一会就会出现成功加入XXX.XXX领域的提示,如图7-22所示就是成功加入到本示例中LYCB.COM领域的提示。

 
(点击查看大图)图7-22  Samba服务器成功加入AD域的提示

一般来说如果通过了前面用kinit命令对两服务器间通信的测试,则本步也不会有什么问题。但建议不要在上面命令中的管理员账户administrartor后再加领域尾缀,因为此时在Samba服务器上已建立了与DC上同名且密码一样的administrator账户了。再加上领域尾缀,反而可能会出现"SMB Signature verification failed on incoming packet!"这样的错误提示,结果加入不成功。

然后使用wbinfo -u可以在Samba服务器上查看域中现有的域用户账户,使用wbinfo-g命令可以查看域中现有的组账户。如果能列出这些账户(如图7-23所示),则证明域加入真正成功了。用wbinfo -t命令确认Samba主机账号在AD中正确注册。如果注册成功会有"checking the trust secret via RPC calls succeeded"的提示。

 
(点击查看大图)图7-23  在Samba服务器上列出的域用户和组账户

这时可以在Windows Server 2003 DC的"Active Directory用户和计算机"管理单元控制台的Computers容器中见到Samba服务器。如本示例中的Samba服务器NetBIOS名称为sambaserver,如图7-24所示。这时Samba服务器就相当于AD中的一台客户机,并且已使用了administrator账户登录。一切正常后就可以在Windows Server 2003域网络中的客户端机上访问Samba服务器了。这时Samba服务器成为了域成员,域用户可以像访问Windows系统域成员主机一样访问Samba服务器的共享资源了,当然是否能访问这也得依照相应共享资源的用户访问权限来定。

可是发现在Windows系统域客户端或Linux客户端中访问Samba服务器时会出现如图7-25所示的错误提示。看似是由于防火墙阻止了,可是此时Samba服务器上的防火墙关了还不行,肯定不再与防火墙有关了。此时在DC上管理这台机时出现不能管理localhost.localhost这台计算机的错误提示。这台Samba服务器已改成sambaserver.lycb.local了呀,而且在smb.conf主配置文件中也加了netbios name = sambaserver这个语句,况且在DC中也正确显示了这个名称,那为什么还是显示localhost.localhost这个默认的主机名呢?

 
(点击查看大图)图7-24  在DC上见到的Samba服务器
 
(点击查看大图)图7-25  在域网络中访问Samba服务器时出现的错误提示

网上查了很久都没有找到答案,最终还是自己想到了前面介绍的lmhosts这个主机文件,打开一看,果然仍是127.0.0.1 hostlocal这样的设置,把它改成172.16.3.100 sambaserver.lycb.local,重启smb进程,再次访问,就不再有这个错误提示了。直接在"网上邻居"窗口中可以见到Samba服务器的共享资源了(如图7-26所示),连身份验证都不用,因为此时Samba服务器已成为了域成员,所有域用户都可以在其被授予的权限范围内访问所能访问的共享资源,就像Windows域内其他Windows系统主机一样。

 
(点击查看大图)图7-26  在域网络Windows系统主机上打开的Samba服务器

再来打开在本示例中不允许匿名访问、仅允许administrators组成员和alice用户访问的program目录,此时会打开如图7-27所示的身份验证对话框。输入账户和密码后即进入到这个共享目录,如图7-28所示。

 
图7-27  访问非允许匿名访问共享
目录时弹出的身份验证对话框
 
(点击查看大图)图7-28  进入到的program共享目录

至此,本章以命令方式配置Samba服务器的示例就全部介绍完了,至于使用system-config-samba工具在图形界面(如图7-29所示)下配置Samba服务器(当然先必须安装system-config-samba程序包),因篇幅的原因就不作介绍了。况且图形界面配置方式虽然简单,但配置不够灵活,比较少用。

 
(点击查看大图)图7-29  "Samba服务器配置"窗口