整理:debian 下samba用windows 2003 AD进行身份验证成功

参考:http://bbs2.chinaunix.net/thread-968948-1-1.html

前几天使用ubuntu8.04配置不成功,后来安装了debian,配置成功了。方法如下:

按照上面的参考文档我使用了第二种方法,也就是使用winbind。

1.实现环境

Debian4.2+Samba3.0+Krb5

2.软件包安装

Samba及Krb5都是用新立得安装

3.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=TEST.COM

dns_lookup_realm=false

dns_lookup_kdc=false

ticket_lifetime=24h

forwardable=yes

[realms]

TEST.COM={

kdc=dc.test.com:88

admin_server=dc.test.com: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

}

4.SAMBA配置

[global]:

workgroup=TEST

netbiosname=debian

serverstring=Samba&ADSTestServer

security=domain

passwordserver=dc.test.com

preferredmaster=no

domainmaster=no

domainlogons=no

logfile=/var/log/samba.log

idmapuid=10000-20000

idmapgid=10000-20000

winbindenumgroups=no

winbindenumusers=no

注:此二行表示为是否在linux下添加AD帐号,只有加了此二行,在使用getentpasswd和gententgroup才能显示AD上面的帐号和组

winbindseparator=/

winbindusedefaultdomain=yes

templatehomedir=/home/test/%U注:此处可以自己设定在/home/%D/%U

templateshell=/bin/bash

[homes]

comment=User'sHomeDirectories

path=/home/test/%U和上面templatehomedir的值一样

browseable=no

validusers=%U

特别注意:此二处为一定要是%U,而不能使用%S,%U需要的客户端用户名即登录用户名,而%S是当前共享名

writable=yes

[A组]

comment=GroupA

path=/usr/keynetsamba/a

browseable=yes

vaildusers=@gpa

writable=yes

createmode=755

directorymode=0755

[B组]

comment=GroupB

path=/usr/keynetsamba/b

browseable=yes

vaildusers=@gpb

writable=yes

createmode=755

directorymode=0755

这些设置的一个简单的说明如下:

-idmapuid-指定一个uid范围,该范围内的uid被用来映射UNIX用户到windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,winbind启动以后,也不能在该ID范围内添加用户。

-idmapgid-指定一个gid范围,该范围内的gid被用来映射UNIX用户到windows的组SID,而且要确保这个id范围内没有被本地或者NIS组占用,winbind启动以后,也不能在该ID范围内添加新组。

-winbindseparator-指定一个字符作为分隔符,winbind将使用该分隔符来用户或组名。使用该配置将使得域用户表示为"MYDOMAIN+username",域组被表示为"MYDOMAIN+DomainUsers"

-winbindenumgroups和winbindenumusers-指定winbind是否在系统上创建域的组/用户,一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。

-templatehomedir-用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/home/MYDOMAIN/username。

需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然templatehomedir控制samba在哪里寻找域用户的主目录,但是不会自动创建,所以要自己手动创建,并设定权限。

5.配制NSS

Nss为NameServiceSwitch,控制帐号的验证修改/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户,内容如下:

passwd:fileswinbind

group:fileswinbind

shadow:fileswinbind

hosts:filesdnswins

bootparams:nisplus[NOTFOUND=retum]files

protocols:dbfiles

services:files

ethers:dbfiles

rpc:files

networks:filesdns

netmasks:files

netgroup:files

publickey:nisplus

automount:files

aliases:filesnisplus

6.重启samba与winbind服务

sudo/etc/init.d/sambarestart

sudo/etc/init.d/winbindrestart

7.将debian加入2003域

netrpcjoin-Sdc.test.com-Uadministrator

如果遇到错误提示类似为:Failedtoopen/var/lib/samba/secrets.tdb

请执行:sudochmod777/var/lib/samba/secrets.tdb

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

wbinfo–t

checkingthetrustsecretviaRPCcallssucceeded

说明主机信任已成功建立

使用wbinfo-u列出AD中注册的帐号信息。Wbinfo–g可以返回AD中的组信息。

此时可以使用windows客户端来访问samba服务器了。

注:如果samba服务器上安装有iptables服务,而且filter链里的INPU为DROP,请打开以下端口,方能正常使用samba服务:

TCP:139,445

UDP:137,138

TCP:88(此为krb5验证端口)

相关推荐