1.实现环境
Debian 4.2+Samba 3.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
netbios name = debian
server string = Samba &ADS Test Server
security = domain
password server = dc.test.com
preferred master = no
domain master = no
domain logons = no
log file = /var/log/samba.log
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum groups = no
winbind enum users = no
注:此二行表示为是否在linux下添加AD帐号,只有加了此二行,在使用getent passwd和gentent group才能显示AD上面的帐号和组
winbind separator = /
winbind use default domain = yes
template homedir = /home/test/%U 注:此处为homes而不是home,我在此处就走了很多弯路,当然也可以自己设定在/home/%D/%U
template shell = /bin/bash
[homes]
comment = User's Home Directories
path = /home/test/%U 和上面 template homedir的值一样
browseable = no
valid users = %U
特别注意:此二处为一定要是%U,而不能使用%S ,%U 需要的客户端用户名即登录用户名,而%S是 当前共享名
writable = yes
[A组]
comment = Group A
path = /usr/keynetsamba/a
browseable = yes
vaild users = @gpa
writable = yes
create mode = 755
directory mode = 0755
[B组]
comment = Group B
path = /usr/keynetsamba/b
browseable = yes
vaild users = @gpb
writable = yes
create mode = 755
directory mode = 0755
这些设置的一个简单的说明如下:
- 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,除非你处于某种原因希望关闭该功能。
- template homedir - 用来指定为域用户产生主目录。上面的示例中使用了变量替换,将使得winbind把用户主目录设置为/home/MYDOMAIN/username。
需要注意的是如果希望特定域或者所有域用户在samba目录有主目录,那么管理员必须手工创建,虽然template homedir控制samba在哪里寻找域用户的主目录,但是不会自动创建,所以要自己手动创建,并设定权限。
5. 配制NSS
Nss为Name Service Switch,控制帐号的验证修改/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户,内容如下:
passwd: files winbind
group: files winbind
shadow: files winbind
hosts: files dns wins
bootparams:nisplus [NOTFOUND=retum] files
protocols: db files
services: files
ethers: db files
rpc: files
networks: files dns
netmasks: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus
6.将debian加入2003域
net rpc join -S dc.test.com -U administrator
如果遇到错误提示类似为: Failed to open /var/lib/samba/secrets.tdb
请执行:sudo chmod 777 /var/lib/samba/secrets.tdb
7.重启samba与winbind服务
sudo /etc/init.d/samba restart
sudo /etc/init.d/winbind restart
8. 确认Samba主机帐号在AD中正确注册
wbinfo –t
checking the trust secret via RPC calls succeeded
说明主机信任已成功建立
使用wbinfo -u列出AD中注册的帐号信息。Wbinfo –g可以返回AD中的组信息。
此时可以使用windows客户端来访问samba服务器了。
注:如果samba服务器上安装有iptables服务,而且filter链里的INPU 为DROP,请打开以下端口,方能正常使用samba服务:
TCP: 139,445
UDP:137,138
TCP:88(此为krb5验证端口)
阅读(764) | 评论(0) | 转发(0) |