Samba服务搭建.docx
《Samba服务搭建.docx》由会员分享,可在线阅读,更多相关《Samba服务搭建.docx(14页珍藏版)》请在冰豆网上搜索。
Samba服务搭建
RHCE备考-Samba服务搭建与应用
一、实验目的:
通过实验学会Samba服务器的搭建和应用配置(只是针对RHCE考试要求而言,具体的深入应用,在此不做讨论);
二、实验环境:
VMware环境下
Sambaserver:
192.168.1.12
Linuxtestclient:
192.168.1.11(亦为YUMserver)
Windowstestclient:
192.168.1.10
三、解决方案:
Samba安装部分
Samba所需软件:
samba-3.0.33-3.7.el5.i386.rpm:
该包为Samba服务的主程序包。
服务器必须安装该软件包,后面的数字为版本号(我安装时使用的是RHEL5.3DVD版,CD-2)。
samba-client-3.0.33-3.7.el5.i386.rpm:
该包为Samba的客户端工具,是连接服务器和连接网上邻居的客户端工具并包含其测试工具.(CD-1)
samba-common-3.0.33-3.7.el5.i386.rpm:
该包存放的是通用的工具和库文件,无论是服务器还是客户端都需要安装该软件包.(CD-1)
samba-swat-3.0.33-3.7.el5.i386.rpm:
当安装了这个包以后,就可以通过浏览器(比如IE等)来对Samba服务器进行图形化管理.(CD-3
CD-1/2/3等即安装盘若是CD版,其安装包所在的位置)
Samba安装:
a.开启防火墙和SElinux
[root@testclient~]#system-config-securitylevel
b.Samba软件安装
b.1安装前检查下系统是否已经安装了Samba软件包
[root@testclient~]#rpm-qa|grepsamba//默认情况下是安装了客户端工具和通用工具及库文件
b.2Samba安装
[root@testclient~]#yum-yinstallsamba//附图安装后查看包情况
Samba服务器配置
C.Samba服务器常规配置
C.1主要配置文件smb.conf
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf
C.2前期准备工作
C.2.1建立共享目录
[root@testclient~]#mkdir/share//建立了共享目录share、sales、tech
[root@testclient~]#mkdir/sales
[root@testclient~]#mkdir/tech
C.2.2建立samba帐户
[root@testclient~]#groupaddshare
[root@testclient~]#groupaddsales
[root@testclient~]#groupaddtech
[root@testclient~]#useraddaa–Gshare
[root@testclient~]#passwdaa
[root@testclient~]#smbpasswd-aaa
[root@testclient~]#useraddbb–Gsales
[root@testclient~]#passwdbb
[root@testclient~]#smbpasswd-abb
[root@testclient~]#useraddcc–Gtech
[root@testclient~]#passwdcc
[root@testclient~]#smbpasswd-acc
C.2.3备份一份主配置文件
[root@testclientsamba]#cp-psmb.confsmb.conf.bak
C.3修改主配置文件:
[root@testclient~]#vim/etc/samba/smb.conf
修改samba服务器名称
指定samba服务器安全级别
开启打印机服务
文件目录的共享
[homes]
comment=HomeDirectories
readonly=No
browseable=No
[printers]
comment=AllPrinters
path=/var/spool/samba
writelist=+staff
printable=Yes
browseable=No
[share]-------------------共享目录:
share
comment=share-------------------共享目录名描述:
share
path=/share--------------------共享路径:
/share
validusers=@share,bb------------只允许share组和bb用户访问
writelist=@share,bb------设置该共享目录只有share组和bb用户可写
readonly=yes--------------设置共享目录只读
[sales]----------------------共享目录:
sales
comment=sales-------------共享目录名描述:
share
path=/sales--------------共享路径:
/sales
readonly=yes--------------设置该共享文档为只读
hostsallow=192.168.1.10----------该共享目录只允许访问的机器
[tech]----------------------共享目录名:
tech
comment=nobrowseable---------------共享目录名描述:
nobrowseable
path=/tech-----------------共享路径:
/tech
writelist=@tech---------------该目录只有tech组成员可写
readonly=No--------------该目录具有读写权限
browseable=Yes--------------隐藏该目录
安装文本打印机(在此省略)
开启防火墙及其SElinux
[root@testclient~]#system-config-securitylevel
6.1启用防火墙,并勾上samba信任服务项。
Iptables开启端口137-138:
udp139/445:
tcp
nmbd=137/udp,138/udp
smbd=139/tcp,445/tcp
6.2SElinux模式为强制:
[root@testclient~]#getenforce
Enforcing
利用SElinux排错服务的提示,执行下列命令,设置bool值:
[root@testclient~]#setsebool-Psamba_enable_home_dirs=1
[root@testclient~]#chcon-R-tsamba_share_t'/sales'
[root@testclient~]#chcon-R-tsamba_share_t'/share'
Note:
sealert–b可调出SElinux排错服务工具
启动服务
[root@testclient~]#servicesmbrestart
[root@testclient~]#servicecupsrestart
[root@testclient~]#chkconfigsmbon
[root@testclient~]#chkconfigcupson
-------------------------------到此位置,samba服务端配置完成---------------------------------
Samba客户端检测
为节省时间,检验过程省略,自己去体验。
只提供检验方法:
Linux:
首先确定客户端已经安装了smbclient工具包
Smbclient命令格式如下:
Smbclient–L目标地址或主机名–U登陆用户名%密码
Window下的检测:
直接在IE地址栏输入\\目标IP即可
至此:
Samba服务器的搭建以及日常应用的配置已经完全结束,更多的应用和熟练操作需要不断的练习和理解。
附录:
关于Samba的一些理论理解和配置文档操作说明.
1Samba原理
1.1Samba概述
接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛,原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁哈,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至我们可以使用sambaServer完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常方便.
1.2Samba应用环境
文件和打印机共享:
文件和打印机共享是Samba的主要功能,SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户可以访问。
身份验证和权限设置:
smbd服务支持usermode和domainmode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机。
名称解析:
Samba通过nmbd服务可以搭建NBNS(NetBIOSNameService)服务器,提供名称解析,将计算机的NetBIOS名解析为IP地址。
浏览服务:
局域网中,Samba服务器可以成为本地主浏览服务器(LMB),保存可用资源列表,当使用客户端访问Windows网上邻居时,会提供浏览列表,显示共享目录、打印机等资源。
1.3Samba工作原理
Samba服务功能强大,这与其通信基于SMB协议有关。
SMB不仅提供目录和打印机共享,还支持认证、权限设置。
在早期哈,SMB运行于NBT协议(NetBIOSoverTCP/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类型确认后,客户端会发送sessionsetup指令数据包,提交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对sessionsetup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用。
--------sessionsetup&X请求------->
客户端 服务器
--------sessionsetup&X响应------->
步骤3:
访问共享资源
客户端访问Samba共享资源时,发送treeconnect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。
--------treeconnect&X请求------->
客户端 服务器
--------treeconnect&X响应------->
步骤4:
断开连接
共享使用完毕,客户端向服务器发送treedisconnect报文关闭共享,与服务器断开连接。
--------treedisconnect请求------->
客户端 服务器
--------treedisconnect响应------->
(2)Samba相关进程
Samba服务是由两个进程组成,分别是nmbd和smbd。
nmbd:
其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:
其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。
当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输.
3Samba常规服务器配置
在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文件中的设置,判断客户端是否有权限访问,只有拥有权限才可以访问服务器的资源。
Samba服务器同样会对用户的行为进行记录,每一次访问的信息都会记录在日志文件中,以便我们Linux管理员查询哪些客户端访问过Samba服务器。
我们大致讲了Samba工作流程后,下面我们将对Samba具体配置过程中遇到的重要概念进行详细讲解
3.1主要配置文件smb.conf
我们先从最重要的配置文件开始哦,Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf。
如果把Samba服务器比喻成一个公共图书馆,那么/etc/samba目录中,那么主配置文件/etc/samba/smb.conf文件,就相当于这个图书馆的图书总目录,记录着大量的共享信息和规则,所以该文件是samba服务非常重要的核心配置文件哈,几乎绝大部分的配置文件都在该文件中进行滴。
此外,在smb.conf这个配置文档中本身就含有非常丰富的说明哈,所以在我们配置之前可以先看一下这样说明性的文字。
我们先看一下smb.conf这个文件:
vim/etc/samba/smb.conf
smb.conf配置文件有288行内容,配置也相对比较复杂哈,不过我们不用担心,Samba开发组按照功能不同,对smb.conf文件进行了分段划分,条理非常地清楚。
下面我们来具体看下smb.conf的内容哈,smb.conf大致分为三个部分,我们来了解一下,其中我们经常要使用到的字段,我们将以实例解释,其他字段我们整理到字段汇总,有兴趣的可以去看下去:
1、samba配置简介
smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及相关信息。
smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改它。
smb.conf中还有以“;”开头滴,这些都是samba配置的格式范例,默认是不生效滴,可以通过去掉前面的“;”并加以修改来设置想使用的功能。
2、GlobalSettings
GlobalSettings设置为全局变量区域。
那什么是全局变量哈?
全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效滴。
这与以后我们学习的很多服务器配置文件相似。
该部分以[global]开始:
smb.conf配置通用格式,对相应功能进行设置:
字段=设定值
下面我们说下[global]常用字段及设置方法:
1)设置工作组或域名称
工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。
我们设置samba服务器的工作组为RHEL5
2)服务器描述
服务器描述实际上类似于备注信息哈,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在serverstring配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了
我们设置samba描述信息为“RHEL5FileServer”。
3)设置samba服务器安全模式
samba服务器有share、user、server、domain和ads五种安全模式,用来适应不同的企业服务器需求。
(1)share安全级别模式
客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。
(2)user安全级别模式
客户端登录samba服务器,需要提交合法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
(3)server安全级别模式
客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。
(4)domain安全级别模式
如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域。
(5)ads安全级别模式
当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。
3、ShareDefinitions共享服务的定义
ShareDefinitions设置对象为共享目录和打印机,如果我们想发布共享资源,需要对ShareDefinitions部分进行配置。
ShareDefinitions字段非常丰富,设置灵活。
我们先来讲下几个最常用的字段哈~
1)设置共享名
共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,给网络用户访问时使用,并且共享名可以与原目录名不同。
共享名设置非常简单:
[共享名]
我们来看个例子,Samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public
2)共享资源描述
网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么哈。
格式:
comment=备注信息
举个例子,samba服务器上有个/sales目录存放公司销售部的数据,为了对公司部门员工进行区分,可以添加备注信息。
3)共享路径
共享资源的原始完整路径,可以使用path字段进行发布,务必正确指定。
格式:
path= 绝对地址路径
samba服务器上/share/tools目录存放常用工具软件,需要发布该目录为共享,我们可以这样做。
4)设置匿名访问
共享资源如果对匿名访问进行设置,可以更改public字段。
格式:
public=yes #允许匿名访问
public=no #禁止匿名访问
samba服务器/share共享目录允许匿名用户访问,可以这样设置。
5)设置访问用户
如果共享资源存在重要数据的话,需要对访问用户审核,我们可以使用validusers字段进行设置
格式:
validusers=用户名
validusers=@组名
我们来看下面一个例子哈,samba服务器/share/tech目录存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理帐号为gm
6)设置目录只读
共享目录如果限制用户的读写操作,我们可以通过readonly实现哈~
格式:
readonly=yes #只读
readonly=no #读写
samba服务器公共目录/public存放大量共享数据,为保证目录安全我们只允许读取,禁止写入
7)设置目录可写
如果共享目录允许用户写操作,可以使用w