linux5.0-samba服务详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[RHEL5企业级Linux服务攻略] Samba服务全攻略1 Samba原理

1.1 Samba概述

接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛哈~,原因是Samba 最先在Linux和Windows两个平台之间架起了一座桥梁哈,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至我们可以使用samba Server完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常方便

1.2 Samba应用环境

文件和打印机共享:文件和打印机共享是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。

身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。

名称解析:Samba通过nmbd服务可以搭建NBNS(NetBIOS Name Service)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。

浏览服务:局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。

1.3 Samba工作原理

Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP 协议的137、138及TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

(1)Samba工作流程

当客户端访问服务器时,信息通过SMB协议进行传输,其工作过程可以分成四个步骤哈:步骤1:协议协商

客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB 类型。Samba服务器根据客户端的情况,选择最优的SMB类型,并做出回应。

--------negprot请求------->

客户端服务器

--------negprot响应------->

步骤2:建立连接

当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与Samba 服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用。

--------session setup &X请求------->

客户端服务器

--------session setup &X响应------->

步骤3:访问共享资源

客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源哈。

--------tree connect &X请求------->

客户端服务器

--------tree connect &X响应------->

步骤4:断开连接

共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。

--------tree disconnect请求------->

客户端服务器

--------tree disconnect响应------->

(2)Samba相关进程

Samba服务是由两个进程组成,分别是nmbd和smbd。

nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传。

3.Samba常规服务器配置

在Samba服务安装完毕之后,并不是直接可以使用Windows或Linux的客户端访问Samba 服务器哈,我们还必须对服务器进行设置,下面需要做的操作就是说我们要告诉Samba服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项哈,比如添加对共享目录内容的简单描述信息和访问权限等具体设置。

作为我们Linux系统工程师了解及熟悉Samba服务器的搭建流程是至关重要的。基本的Samba服务器的搭建流程主要分为四个步骤:

[1]、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。

[2]、在smb.conf文件中指定日志文件名称和存放路径。

[3]、设置共享目录的本地系统权限。

[4]、重新加载配置文件或重新启动smb服务,使用配置生效

为了更好地理解设定流程中每一步的作用,下面通过一个图例进行讲解哈~

Samba工作流程:

---------(1)---------> ----------(2)---------->smb.conf主配置文[客户端] [Samba服务器]

-------- (4)----------> ----------(3)---------->日志文件

(1)客户端请求访问Samba服务器上的Share共享目录。

(2) Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了Share目录,如果共享了这个目录则查看客户端是否有权限访问。

(3)Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都是需要我们设置。

(4)如果客户端满足访问权限设置,则允许客户端进行访问。

实际上,Samba服务器和我们的图书馆有点相似之处的,图书馆为读者共享了图书资源,而Samba服务器共享了我们的文件数据啊。

图书馆会有图书分类,比如科普类、文学类等,并且图书馆会对借阅的图书做限制,拥有资格的读者,才可以借阅相应的图书,当然读者访问图书馆时,图书管理员会对他们的浏览、借阅信息进行记录。

对于Samba服务器来说,其主配置文件smb.conf记录了共享的目录列表。比如share目录,temp目录等。对于每个共享目录,需要配置相应权限,服务器会根据smb.conf文件中的设

相关文档
最新文档