本文为大家介绍在ubuntu上搭建通过ad验证的samba文件服务器的方法,有需要的朋友可以参考下。
环境:
linux:ubuntu server 11.04
Windows:Windows 2003 AD
ads模式涉及到Windows域网络中的Kerberos身份验证技术,除了需要配置主配置文件smb.conf外,还需要配置用于Kerberos身份认证的配置文件/etc/krb5.conf,用于控制Samba服务器Linux系统账户与Windows域账户交换的/etc/nsswitch.conf文件。还需要使用“net ads join -S”命令把Samba服务器加入到Windows AD域中。
第一步,安装所需的软件包
第二步,修改/etc/krb5.conf (krb5-user软件包的配置文件)
在每一节中加入以下语句
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
# 指定Kerberos认证票证有效期
ticket_lifetime = 24000
#DOMAIN.INTERNAL是ad的后缀域名的大写
default_realm = DOMAIN.INTERNAL
# 指定无需DNS解析领域请求包
dns_lookup_realm = false
# 指定允许DNS解析kdc请求包
dns_lookup_kdc = ture
# 允许转发解析请求
forwardable = yes
[realms]
DOMAIN.INTERNAL = {
#domainserver.domain.internal是域控,还可以用IP的形式写,并加入端口号
#例如:kdc = 172.16.0.1:88/admin_server = 172.16.0.1:749
kdc = domainserver.domain.internal
admin_server = domainserver.domain.internal
default_domain = DOMAIN.INTERNAL
}
[domain_realm]
#domain.internal是ad的后缀域名
#设置一个领域搜索范围,并通过这两个语句可以使得领域名与大小写无关。
.domain.internal = DOMAIN.INTERNAL
domain.internal = DOMAIN.INTERNAL
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true # 允许转发请求
krb4_convert = false
}
第三步,修改/etc/samba/smb/conf,samba3的配置文件
第四步,配置名称解析,修改/etc/nsswitch.conf
Nsswitch.conf配置文件是用来控制在用户访问Samba服务器时与Windows域中DC中的用户账户的切换,使用DC中的用户账户来进行身份验证。Nsswitch.conf配置文件是在/etc目录下
按如下修改
第五步,配插PAM(入式验证模块)
编辑/etc/pam.d/common-account配置文件
只保留以下语句:
编辑/etc/pam.d/common-auth配置文件
只保留以下语句:
编辑/etc/pam.d/common-password配置文件
修改语句为:
编辑/etc/pam.d/common-session配置文件
确保有以下语句:
第六步,建一个目录去保存域用户的家目录
目录的名字要与smb.conf中定义的WORKGROUP的值一样
例如:
mkdir /home/DOMAIN
第七步,初始化Kerberos,并把Linux加入Windows AD
使用“wbinfo –u”可以在Samba服务器上查看域中现有的域用户账户,使用“wbinfo –g”命令可以查看域中现有的组账户。如果能列出这些账户出来,证明域加入真正成功了。用“wbinfo –t”命令确认Samba主机帐号在AD中正确注册。如果注册成功会有“checking the trust secret via RPC calls succeeded”的提示。
第九步,设置DNS
在Windows AD 的DNS上增加AD和Linux的正向和反向的主机记录,这一步不能少,少了会出现域用户无法打开Linux共享,提示没有权限的错误
第十步,重启samba服务
第十一步,配置SUDO
1、在AD上建立一个叫UnixAdmins的组,并把需要使用sudo管理服务器的用户加入此组中
2、在linux中把UnixAdmins组加入到/etc/sudoers,使用户可以使用sudo
%UnixAdmins ALL = (ALL) ALL
最后一步,设置共享目录
编辑/etc/samba/smb.conf