ads模式Samba服务器配置示例

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:
以下内容摘选自笔者即将出版上市的新作——《金牌网管师——大中型企业网络组建、配置与管理》一书。 7.5 ads模式Samba服务器配置示例

本节要介绍ads模式下Samba服务器的配置方法。相对于前面介绍的user模式下的Samab服务器,ads模式的配置更为复杂,因为它涉及到Windows域网络中的Kerberos身份验证技术,除了需要配置主配置文件smb.conf外,还需要配置用于Kerberos身份认证的配置文件/etc/krb5.conf,用于控制Samba服务器Linux系统账户与Windows域账户交换的/etc/nsswitch.conf文件。还需要使用“net ads join -S”命令把Samba服务器加入到Windows AD域中。

仍采用上节的两个共享目录:/usr/share和/etc/program,要求使用主机名为lycb-DC1,域名为lycb.local的Windows Server 2003域控制器进行身份验证,允许所有用户对/usr/share共享目录具有只读权限,仅允许administrators组成员对/etc/program共享目录具有写入权限,而其他的用户对/usr/share共享目录具有只读权限。当然首先也要确保Windows Server 2003域网络与Samba服务器处于同一网段。如果不处于同一网段,则要配置好相应的网络路由。另外,在Samba服务器中要用DNS域名格式配置好主机名和域搜索路径。

7.5.1 ads模式主配置文件配置示例

根据上述要求,可以写如下Samba服务器主配置文件smb.conf。

[global]

workgroup = lycb # 指定AD域的NetBIOS名称。必须有这个语句,否则不能在域网络中搜索得到该Samba服务器

server string = File Server

netbios name = Sambaserver

security = ads # 指定Samba服务器的工作模式为ads

hosts allow = 172.16. 127.

encrypt passwords = yes

guest account = alice # 指定alice用户作为来宾访问账户

realm = lycb.local # 指定Windows域名(DNS格式)

password server = 172.16.0.1 # 指定担当身份验证服务器的服务器IP地址

[homes]

comment = Home Directories

browseable = no

writable = yes

path = /home/%U

valid users = %U

[share]

comment = All user's share directory

path = /usr/share

public = no

guest ok =yes

readonly = yes

[program]

comment = Program Files

path = /etc/program

valid users = @administrator alice # 指定该共享目录仅允许域网络中的administrtors组成员和alice用户访问

public = no

writable = yes

另外,建议在[global]部分使用以下所示配置,使得winbind服务可以列出Samba服务器加入的AD中的所有用户和组信息。确保在windbind服务运行时,可以使用在DC中的用户和组来进行类似文件/目录权限设置,以及samba共享定义等。

idmap uid = 15000-20000 # 指定一个uid范围,该范围内的uid被用来映射Linux用户到Windows用户SID,而且要确保这个id范围内没有被本地或者NIS用户占用,在winbind服务启动后,也不能在该ID范围内添加用户。

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

winbind enum groups = yes # 指定winbind服务是否能在系统上创建Windows域组。一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。

winbind enum users = yes # 指定winbind服务是否能在系统上创建Windows域用户。一般情况下都要设置为yes,除非你处于某种原因希望关闭该功能。

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

template homedir = /homes/%D/%U # 用来指定为域用户产生主目录。使用变量替换可使winbind服务把用户主目录设置为/homes/MYDOMAIN/username。

template shell = /bin/bash # 控制samba在哪里寻找域用户的主目录。

然后,管理员需要手工编辑/etc/nsswitch.conf文件,这样winbind能实现使用域上的用户。具体将在7.4.3节介绍。

使用testparm命令检查主配置文件的语法和完整的综合有效设置,确认无识后即可进行下面的krb5.conf配置文件。

7.5.2 krb5.conf配置文件配置示例

在配置ads模式Samba服务器时,/etc/krb5.conf配置文件必须配置的。它是作为Kerberos身份验证模块,可以使Samba服务器对Windows AD域有更好的支持。

在/etc/krb5.conf配置文件主要是配置与域有名的项目,在RedHat Enterprise Linux 5系统中属于包krb5-libs-1.5-17.i386.rpm。打开/etc/krb5.conf配置文件,然后按下面格式进行修改并保存(本示例域名为lycb.local)。

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log

[libdefaults]

default_realm = LYCB.LOCAL # 指定默认领域名

dns_lookup_realm = false # 指定无需DNS解析领域请求包

dns_lookup_kdc = ture # 指定允许DNS解析kdc请求包

ticket_lifetime = 24h # 指定Kerberos认证票证有效期

forwardable = yes # 允许转发解析请求

[realms]

LYCB.LOCAL = {

kdc = 172.16.0.1:88 # 指定KDC服务器和KDC服务端口

admin_server = 172.16.0.1:749 # 指定域控制器和管理端口

default_domain = lycb.local # 指定默认域

}

[domain_realm]

.lycb.local = LYCB.LOCAL

lycb.local = LYCB.LOCAL

# 以上两条其实是设置一个领域搜索范围,并通过这两个语句可以使得领域名与大小写无关。

[kdc]

profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]

pam = {

debug = false

ticket_lifetime = 36000

renew_lifetime = 36000

forwardable = true # 允许转发请求

krb4_convert = false

}

把以上内容(“#”说明部分无需要粘贴)全部替换原/etc/krb5.conf配置文件中的原有内容并保存。但一定要注意其中各部分的领域名大小写不能写错,哪怕一个字母的大小写错了都不行。这一点非常重要。

这时我们可以用kinit命令来测试一下Samba服务器与Windows Server 2003域控制器间的通信是否正常。后面接一下Windows Server 2003域中已存在并启用的用户账户即可。如直接用域管理员账户administrator账户,则可输入该账户的以下命令(后面的域名一定要大写):

Kinit administrator@LYCB.COM

正常情况下会提示你输入administrator账户的密码,如下所示。如果出现“kinit(v5): Cannot find KDC for requested realm while getting initial credentia”这样的错误提示,则可能是上面在administrator@LYCB.COM中的域名部分不是全部大写,或者是你在/etc/krb5.conf配置文件中有关领域名称配置语句中的大小写输入错误,一定要按照本示例,或者默认配置文件那样正确输入大写或小写域名。

[root@sambaserver ~]# kinit administrator@LYCB.LOCAL

Password for administrator@LYCB.LOCAL:

7.5.3 nsswitch.conf配置文件配置示例

Nsswitch.conf配置文件是用来控制在用户访问Samba服务器时与Windows域中DC中的用户账户的切换,使用DC中的用户账户来进行身份验证。Nsswitch.conf配置文件是在/etc目录下,要配置的内容也非常简单。只需要编辑以下两行语句即可:

passwd: files winbind

group: files winbind

shadow: files winbind

hosts: files dns wins

networks: files dns

protocols: db files

services: db files

ethers: db files

rpc: db files

用“#”符号注释掉所有与上面语句配置不一致的语句,保存配置文件。

7.5.4 把Samba服务器加入到AD域

通过前面几个配置文件的成功配置,现在就可以把Samba服务器加入到Windows Server 2003域网络中,成中域客户端了。但首先要使用“service smb restart”和“service winbind restart”命令重启smb和winbind服务。然后使用以下命令把Samba服务器加入到域中(此时只能使用有权把客户机加入到域的域用户账户,通常是直接使用域管理员账户administrator)。正常情况下会出现要求你输入管理员账户的密码,然后过一会就会出现成功加入XXX.XXX领域的提示,如图7-21就是成功加入到本示例中LYCB.COM领域的提示。

net ads join –U administrator

clip_image002[1]

图7-21 Samba服务器成功加入AD域的提示

一般来说如果通过前面用kinit命令对两服务器间通信的测试,则本步也不会有什么问题。但建议不要在上面的命令中的管理员账户administrartor后再加领域尾缀,因为此时在Samba服务器上已建立了与DC上同名且密码一样的administrator账户了。再加上领域尾缀,反而可能会出现“SMB Signature verification failed on incoming packet!”这样的错误提示,结果加入不成功。

然后使用“wbinfo –u”可以在Samba服务器上查看域中现有的域用户账户,使用“wbinfo –g”命令可以查看域中现有的组账户。如果能列出这些账户出来(如图7-22所示),证明域加入真正成功了。用“wbinfo –t”命令确认Samba主机帐号在AD中正确注册。如果注册成功会有“checking the trust secret via RPC calls succeeded”的提示。

这时我们可以在Windows Server 2003 DC的“Active Directory用户和计算机”管理单元的“Computers”容器中见到Samba服务器了。如本示例中的Samba服务器NetBIOS名称为sambaserver,如图7-23所示。这时Samba服务器就相当于AD中的一台客户机,并且已使用了administrator账户登录。上一切正常后就可以在Windows Server 2003域网络中的客户端机访问Samba服务器了。这时Samba服务器成为了域成员了,域用户可以像访问Windows系统域成员主机一样访问Samba服务器的共享资源了,当然是否能访问这也得得依照相应共享资源的用户访问权限来定。

可是发现在Windows系统域客户端,或者Linux客户端中访问Samba服务器时出现如图7-24所示的错误提示。看似是由于防火墙阻止了,可是此时Samba服务器上的防火墙关了还不行,肯定不再与防火墙有关了。此时我在DC上管理这台机时出现不能管理localhost.localhost这台计算机的错误提示。这台Samba服务器已改成sambaserver.lycb.local了啊,而且在smb.conf主配置文件中也加了“netbios name = sambaserver”这个语句。况且在DC中也正确显示了这个名称啊,为什么还是显示localhost.localhost这个默认的主机名呢?

clip_image004[1]

图7-22 在Samba服务器上列出的域用户和组账户

clip_image006[1]

图7-23 在DC上见到的Samba服务器

clip_image008[1]

图7-24 在域网络中访问Samba服务器时出现的错误提示

网上查了很久,都没有找到答案,最终还是自己想到了前面介绍的lmhosts这个主机文件,打开一看,果然仍是“127.0.0.1 hostlocal”这样的设置,把它改成“172.16.3.100 sambaserver.lycb.local”,重启smb进程,再次访问,就不再有这个错误提示了。直接在“网上邻居”中可见到Samba服务器的共享资源了(如图7-25所示),连身份验证都不用,因为此时Samba服务器已成为了域成员,所有域用户都可以在其被授予的权限范围内访问所能访问的共享资源,就像Windows域内其他Windows系统主机一样。

我们再来打开在本示例中不允许匿名访问,仅允许administrators组成员和alice用户访问的program目录,此时会打开如图7-26所示身份验证对话框。输入帐户和密码后即进入到这个共享目录,如图7-27所示。

clip_image010[1]

图7-25 在域网络Windows系统主机上打开的Samba服务器

clip_image012[1] clip_image014[1]

图7-26 访问非允许匿名访问共享目录时弹出的身份验证对话框 图7-27 进入到的program共享目录

本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/261293如需转载请自行联系原作者


茶乡浪子

相关文章
|
8天前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
1月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
62 6
|
1月前
|
SQL 存储 数据管理
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
Hadoop-15-Hive 元数据管理与存储 Metadata 内嵌模式 本地模式 远程模式 集群规划配置 启动服务 3节点云服务器实测
57 2
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
1月前
|
Ubuntu Linux Windows
Ubuntu 14.04安装samba服务器
Ubuntu 14.04安装samba服务器
23 0
|
2月前
|
弹性计算 运维 监控
阿里云ECS实例使用示例
使用阿里云ECS实例的流程简便快捷:登录阿里云控制台,在ECS实例列表中选择目标实例并进入详情页,点击“启动”按钮激活实例,确保预装系统和应用完成。运行后,通过控制台监控CPU、内存及磁盘使用情况,如需调整配置,可选择实例后点击“重启”应用新设置。阿里云ECS助力企业轻松上云、高效运维。[1][3] 相关链接:阿里云ECS使用流程 https://startup.aliyun.com/info/1078898.html
|
4月前
|
SQL 弹性计算 资源调度
云服务器 ECS产品使用问题之bin/spark-sql --master yarn如何进行集群模式运行
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
数据采集 弹性计算 供应链
阿里云服务器付费模式:按量付费、包年包月和抢占式实例全解析
阿里云服务器提供包年包月、按量付费与抢占式实例三种付费模式。包年包月为预付费,适合长期稳定使用,价格更优惠并支持备案。按量付费则为后付费模式,按小时结算,适合短期或访问量波动大的场景,但不支持备案。抢占式实例基于按量付费,价格更低(最多节省90%),适用于无状态应用,如临时测试或可弹性伸缩的Web服务,但存在被系统释放的风险,同样不支持备案。根据具体需求选择合适的付费模式能够有效降低成本并提高效率。
129 0
|
4月前
|
弹性计算 供应链 并行计算
阿里云ECS服务器五种计费模式有啥区别?包年包月、按量付费、抢占式实例、节省计划和预留实例券
阿里云服务器计费多样化:包年包月适合长期稳定服务,如Web网站;按量付费适合短期或波动需求,如测试、扩展;抢占式实例享折扣但可能被释放,适合无状态任务;预留实例券抵扣按量付费账单;节省计划提供资源使用承诺的折扣,适用于用量稳定的业务。
142 7
|
3月前
|
Ubuntu 关系型数据库 应用服务中间件
在Ubuntu 18.04上安装和配置pgAdmin 4服务器模式的方法
在Ubuntu 18.04上安装和配置pgAdmin 4服务器模式的方法
80 0

热门文章

最新文章