1 Samba原理
1.1 Samba概述
接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛哈~,原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁哈,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至我们可以使用samba Server完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常方便滴哈~既然samba这样滴强大哈,我们还不赶快来把玩一下哈~~~
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这个进程来管理数据传输哈~~~
2 安装Samba服务
2.1 Samba所需软件
在我们安装Samba服务之前哈,我们先来了解一下其所需要的软件包以及它们的用途哈~
samba-3.0.25b-0.el5.4.i386.rpm:该包为Samba服务的主程序包。服务器必须安装该软件包,后面的数字为版本号(我们安装时使用的是RHEL5.1DVD版,如果是RHEL5.1CD版则该软件包位于第二张RHEL5安装光盘上)。
samba-client-3.0.25b-0.el5.4.i386.rpm:该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具(该软件包位于第一张RHEL5安装光盘哈~)
samba-common-3.0.25b-0.el5.4.i386.rpm:该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包(这个软件包也位于第一张RHEL5安装光盘哈~)
samba-swat-3.0.25b-0.el5.4.i386.rpm:当安装了这个包以后,就可以通过浏览器(比如IE等哈)来对Samba服务器进行图形化管理(这个软件包位于第三张RHEL5安装光盘哈)。