Samba与Win2003 AD的整合

xiaoxiao2022-06-12  17

今天下午没什么事情,就看了些关于如何整合linux samba服务器和Windows AD的文章。其实就是利用linux的winbindd服务来使用Windows AD为Samba进行用户认证。自己在操作的过程中,也遇到了错误,写下来,留个念想吧,:)   一.环境介绍 WINDOWS 2003 SERVER + AD 域名:exchange.umtest.local ip地址: 192.168.0.117 账户:   administrator 密码:   R0ck1t   REDHAT AS 4 U4 + Kerbose 5 + Samba 3 (其实都是系统默认安装上的软件包) 机器名: TSM-SC ip地址:192.168.0.235 账户:   root 密码:   123456   二.开始配置   1. 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 = EXCHANGE.UMTEST.LOCAL (验证域的realm,必须全部大写) dns_lookup_realm = false dns_lookup_kdc = false[realms] EXCHANGE.UMTEST.LOCAL = {  kdc = 192.168.0.117:88  admin_server=192.168.0.117:749  default_domain = EXCHANGE.UMTEST.LOCAL }[domain_realm].exchange.umtest.local = EXCHANGE.UMTEST.LOCALexchange.umtest.local = EXCHANGE.UMTEST.LOCAL[kdc] profile = /var/kerberos/krb5kdc/kdc.conf[appdefaults] pam = {   debug = false   ticket_lifetime = 36000   renew_lifetime = 36000   forwardable = true   krb4_convert = false }

配置完成以后,可以通过kinit工具进行测试,方法如下:

#kinit administrator@EXCHANGE.UMTEST.LOCAL

如果配置正确,就会直接返回到shell。

Samba 和 MS AD 的系统时间相差不大于5分钟, 否则会出现下面的错误:

kinit(v5): Clock skew too great while getting initial credentials

2.Samba的配置

系统默认的配置文件在/etc/samba/smb.conf,如果是从源码包安装的,会在/usr/local/etc/smb.conf。 更改配置文件如下:

[global]   workgroup = EXCHANGE               (域的NETBIOS名字)   netbios name = TSM-SC   server string = Samba Server     security = ADS                      (设置为AD验证)   realm = EXCHANGE.UMTEST.LOCAL        (验证域realm,必须大写)   password server = 192.168.0.117      (PDC,这里就是AD服务器)   encrypt passwords = yes   os level = 20   dns proxy = no   idmap uid = 10000-20000   idmap gid = 10000-20000   winbind use default domain = yes

   winbind separator = /   winbind enum users = yes   winbind enum groups = yes 

- 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,除非你处于某种原因希望关闭该功能

配置完成,你要将Samba加入AD中,命令如下:

#net ads join -U administrator@EXCHANGE.UMTEST.LOCAL

然后重新启动samba

#service smb restart

3. 配置NSS

Nss为Name Service Switch,控制帐号的验证。编辑/etc/nsswitch.conf,如下

passwd: files winbindgroup: files winbind

配置完成,启动winbind服务,

#winbindd

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

使用wbinfo –t验证Samba主机已成功加入AD

# wbinfo –tchecking the trust secret via RPC calls succeeded

说明主机信任已成功建立

如果得到如下的信息,重新运行一下#winbindd就可以解决

#wbinfo -tchecking the trust secret via RPC calls failederror code was (0x0)Could not check secret

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

用getent passwd 和getent group你可以看到本地服务器及域服务器上所有的用户及组的信息。

好了,到这里你访问samba服务器时,就需要正确输入域名了,形如:EXCHANGE\rwang,输入正确,就可以访问了。

饿死了,胃疼,还是先闪人了,以后再慢慢学习,添加新的东西。

5.解决访问samba时,个人目录的问题

在samba的配置文件中加入如下内容:       

[global]   template homedir=/homes/%D/%U[homes]   comment = Home Directories   path=/homes/%D/%U   valid users=%U   browseable = no   writable = yes

然后,逐个为用户建立目录并分配权限(这一步是比较麻烦),我们的域是EXCHANGE,为用户hrwang建立目录,方法如下

#mkdir -p /homes/EXCHANGE#cd /homes/EXCHANGE#mkdir hrwang#chown "EXCHANGE\hrwang":"EXCHANGE\domain users" hrwang

好了,用service smb restart 重启samba服务,再登陆samba服务器,可以看到除了其它共享的目录外,还有一个自己的目录,而且可以写。 相关资源:kerberos认证过程,AD域认证
转载请注明原文地址: https://www.6miu.com/read-4933360.html

最新回复(0)