Samba 3.0 正在紧张的开发之中,本文是 Samba 3.0 和 Windows 2000 的活动目录集成的经验。对于需要在异构环境下工作的读者而言,也是先睹为快的一个过程。
Windows 2000 和 XP 采用 Kerberos 认证协议来使用活动目录,在带有 NT 的环境下,我们需要 Windows 2000 的混合域模型才能让 NT 和 2000 互操作,Samba 被认为是 NT 4.0 类型的域控制器。(这里需要一些微软认证工程师的知识,如果各位看官不懂那就跳过作罢)
要让 Samba 3.0 跑起来,我们需要下面的环境:
Windows 2000 Server 作为域控制器
OpenLDAP 的 Linux 开发库,目前最新版本为: 2.0.23-4 ,下载地点:
ftp://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/openldap-devel-2.0.23-4.i386.rpm
MIT Kerberos 的 Linux 开发库,目前最新版本为1.2.4-1。
krb5-devel 下载地点:ftp://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/krb5-devel-1.2.4-1.i386.rpm
\\krb5-libs 下载地点:ftp://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/krb5-libs-1.2.4-1.i386.rpm
krb5-workstation 下载地点:ftp://ftp.redhat.com/pub/redhat/linux/7.3/en/os/i386/RedHat/RPMS/krb5-workstation-1.2.4-1.i386.rpm
最新 alpha 版本的 Samba 源代码,目前最新为 build 17 ,下载地点:http://us4.samba.org/samba/ftp/alpha/
如果不知道是否有安装过以上开发库,可以用 rpm -qa 命令来检查:
rpm -qa |grep openldap 来检查 openldap-devel 库
rpm –qa | grep krb 来检查 Kerberos 库
如果没有就用 rpm -i 来安装了。
Red Hat Linux 7.3 缺省安装模式下缺少 krb5-workstation 库。
--------------------------------------------------------------------------------
两台服务器的 IP 地址分别为:
Win2K - 10.109.10.133
Linux - 10.109.10.132
--------------------------------------------------------------------------------
Samba 3.0 的安装比较简单:
gunzip -cd samba-3.0-alpha17.tar.gz | tar xvf -
cd samba-3.0-alpha17/source
./configure -prefix=/usr/local/samba
检查 include/config.h 文件包含下面两行:
#define HAVE KRB5 1
#define HAVE LDAP 1
然后就是 make;make install
配置 Kerberos
下面配置参数让 Kerberos 进程知道处理活动目录服务器,对 /etc/krb5.conf 做适当的修改,修改时需要注意的是 Kerberos 是大小写敏感的。
另外一个需要检查的地方是,两台服务器的时钟同步问题,如果时间超过5分钟他们将不能通信。
测试连接正常的一个命令是:
/usr/kerberos/bin/kinit nuser@SLOWE.COM
Kerberos 的 kinit 命令将测试服务器间的通信,后面的域名 SLOWE.COM 是你的活动目录的域名,必须大写,否则会收到错误信息:
kinit(v5): Cannot find KDC for requested realm while getting initial credentials.
如果通信正常,你会提示输入口令,口令正确的话,就返回 bash 提示符,如果错误则报告:
kinit(v5): Preauthentication failed while getting initial credentials.
配置 Samba
Samba 使用 /usr/local/samba/lib/smb.conf 作为配置文件,我们先配置一个十分简单的文件:
realm = SLOWE.COM // 活动目录服务器域名
ads server = 10.109.10.133 // 活动目录地址
security = ADS // 采用活动目录加密
encrypt passwords = yes // 采用加密的口令
配置完 Samba 和 Kerberos 后,需要在 Windows 2000 活动目录下建立一个计算机帐号,如果需要在 Linux 上来完成的话,运行:
/usr/kerberos/bin/kinit administrator@SLOWE.COM
输入口令后,建立帐号:
/usr/local/samba/bin/net ads join
如果成功的话,会看到如下提示:
Joined 'LDAPS' to realm 'SLOWE.COM.
去 Windows 2000 服务器检查上面的工作:打开活动目录用户和计算机,查看其中的条目,如果成功的话,就可以看到你的 Linux 服务器。
然后在 Linux 机器上,你就可以采用 smbclient 命令连接到 Windows 的共享文件夹,而不需要输入口令(因为采用了Kerberos )。
/usr/local/samba/bin/smbclient //w2k/c\$ -k
这个命令可能会产生一些错误信息,但是不要紧它能工作的。
由于 Samba 3.0 还是 Alpha 版本,所以在安装和配置过程中产生很多错误。所以,如果你足够勇敢的话,可以去迎接这种挑战的,如果能看到成功的喜悦,为什么不拿出来和我们共享呢?
Samba 3.0 的未来之路: http://us6.samba.org/samba/development.html