完整word版samba服务器配置.docx
- 文档编号:7298329
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:46
- 大小:1.12MB
完整word版samba服务器配置.docx
《完整word版samba服务器配置.docx》由会员分享,可在线阅读,更多相关《完整word版samba服务器配置.docx(46页珍藏版)》请在冰豆网上搜索。
完整word版samba服务器配置
Samba概述
接触Linux我们听的最多的就是Samba服务,为什么Samba应用这么广泛,原因是Samba最先在Linux和Windows两个平台之间架起了一座桥梁,正是由于Samba的出现,我们可以在Linux系统和Windows系统之间互相通信,比如拷贝文件、实现不同操作系统之间的资源共享等等,我们可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至我们可以使用SambaServer完全取代NT/2K/2K3中的域控制器,做域管理工作,使用也非常方便。
一、Samba相关进程
Samba服务是由两个进程组成,分别是nmbd和smbd.
nmbd:
其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:
其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。
当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输。
二、Samba的安装及工作原理
建议在安装Samba服务之前,使用rpm-qa命令检测系统是否安装了Samba相关性软件包:
Rpm–qa|grepsamba
如果系统还没有安装Samba软件包,我们可以使用rpm命令安装所需软件包。
安装Samba主程序包:
rpm–ivhsamba-3。
0.25b—0。
el5。
4.i386.rpm
其他软件包的安装方法也一样
安装Samba客户端工具:
rpm–ivhsamba—client—3.0.25b-0.el5。
4。
i386。
rpm
安装Samba通用工具和库文件:
rpm–ivhsamba-common-3。
0.25b—0。
el5.4。
i386.rpm
其实我们一开始rpm—qa|grepsamba命令查询时已经发现客户端工具和通用工具及库文件已经安装了,我们上面两步安装就可以不要执行了,最后我们安装Samba图形化管理工具:
rpm–ivhsamba—swat—3。
0。
25b—0.el5。
4.i386.rpm
在Samba服务安装完毕之后,并不是直接可以使用Windows或Linux的客户端访问Samba服务器,我们还必须对服务器进行设置,下面需要做的操作就是说我们要告诉Samba服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项,比如添加对共享目录内容的简单描述信息和访问权限等具体设置.
作为我们Linux系统工程师了解及熟悉Samba服务器的搭建流程是至关重要。
基本的Samba服务器的搭建流程主要分为四个步骤:
[1]、编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限。
[2]、在smb.conf文件中指定日志文件名称和存放路径。
[3]、设置共享目录的本地系统权限。
[4]、重新加载配置文件或重新启动smb服务,使用配置生效
samba服务器的工作流程如下:
(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具体配置过程中遇到的重要概念进行详细讲解。
三、主要配置文件smb。
conf
我们先从最重要的配置文件开始,Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb。
conf。
如果把Samba服务器比喻成一个公共图书馆,那么/etc/samba目录中,那么主配置文件/etc/samba/smb.conf文件,就相当于这个图书馆的图书总目录,记录着大量的共享信息和规则,所以该文件是samba服务非常重要的核心配置文件,几乎绝大部分的配置文件都在该文件中进行。
此外,在smb.conf这个配置文档中本身就含有非常丰富的说明,所以在我们配置之前可以先看一下这样说明性的文字.
我们先看一下smb。
conf这个文件:
//先对这个文件复制个备份,然后在打开,以防止误修改原配文件.
cp/etc/samba/smb.conf/etc/samba/smb。
conf。
bak
vi/etc/samba/smb。
conf
smb.conf配置文件有将近三百行内容,配置也相对比较复杂,不过我们不用担心,Samba开发组按照功能不同,对smb.conf文件进行了分段划分,条理非常地清楚。
下面我们来具体看下smb。
conf的内容,smb.conf大致分为三个部分,我们来了解一下,其中我们经常要使用到的字段,我们将以实例解释
3。
1samba主要配置文件smb。
conf简介★★
smb.conf文件的开头部分为samba配置简介,告诉我们smb.conf文件的作用及相关信息。
smb.conf中以“#”开头的为注释,为用户提供相关的配置解释信息,方便用户参考,不用修改。
smb.conf中还有以“;”开头,这些都是samba配置的格式范例,默认是不生效,可以通过去掉前面的“;”并加以修改来设置想使用的功能.
3。
2GlobalSettings★★
GlobalSettings设置为全局变量区域。
那什么是全局变量?
全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效。
这与以后我们学习的很多服务器配置文件相似。
该部分以[global]开始:
smb。
conf配置通用格式,对相应功能进行设置:
字段=设定值
下面我们说下[global]常用字段及设置方法:
1)设置工作组或域名称
工作组是网络中地位平等的一组计算机,可以通过设置workgroup字段来对samba服务器所在工作组或域名进行设置。
我们设置samba服务器的工作组为RHEL4
2)服务器描述
服务器描述实际上类似于备注信息,在一个工作组中,可能存在多台服务器,为了方便用户浏览,我们可以在serverstring配置相应描述信息,这样用户就可以通过描述信息知道自己要登录哪台服务器了啊,我们设置samba描述信息为“RHEL4FileServer”.
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。
3ShareDefinitions共享服务的定义★★
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)设置目录可写
如果共享目录允许用户写操作,可以使用writable或writelist两个字段进行设置
writable格式:
writable=yes#读写
writable=no#只读
writelist格式:
writelist=用户名
writelist=@组名
注意:
[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
四、Samba服务日志文件(选)
日志文件对于samba非常重要,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。
在/etc/samba/smb。
conf文件中,logfile为设置samba日志的字段。
samba服务的日志文件默认存放在/var/log/samba/中,其中samba会为每个连接到samba服务器的计算机分别建立日志文件。
我们启动smb服务:
servicesmbstart
使用ls—a命令可以查看日志的所有文件。
其中,当samba服务器刚刚建立好后,只有两个文件,分别是nmbd。
log和smbd.log,它们分别记录nmbd和smbd进程的运行日志。
nmbd.log记录nmbd进程的解析信息。
smbd。
log记录用户访问samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。
当客户端通过网络访问samba服务器后,会自动添加客户端的相关日志。
所以,我们Linux管理员可以根据这些文件来查看用户的访问情况和服务器的运行情况。
另外当samba服务器工作异常时,也可以通过/var/log/samba/下的日志进行分析。
五、Samba服务密码文件
samba服务器发布共享资源后,客户端访问samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。
samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中,在客户端访问时,将用户提交资料与smbpasswd存放的信息进行比对,如果相同,并且samba服务器其他安全设置允许,客户端与samba服务器连接才能建立成功~那如何建立samba帐号呢?
在说之前先强调一点,samba帐号并不能直接建立,需要先建立Linux同名的系统帐号。
比如如果我们要建立一个名为michael的samba帐号,那Linux系统中必须提前存在一个同名的michael系统帐号.
samba中添加帐号命令为smbpasswd,命令格式:
smbpasswd–a用户名
我们来测试下,在samba服务器中添加samba帐号redking,我们建立samba帐号之前必须先添加相对应的系统帐号,使用useradd命令建立帐号redking,然后执行passwd命令为帐号redking设置密码~最后我们添加redking用户的samba帐号,执行smbpasswd添加帐号redking到samba配置文件中。
OK,Samba帐号添加完毕,如果我们在添加samba帐号时输入完两次密码出错:
Failedtomodifypasswordentryforuseramy,就像下面这样,这是因为Linux本地用户里没有amy这个用户,我们在系统里面添加一下就OK了~
所以,务必要注意在建立samba帐号之前,一定要先建立一个与samba帐号同名的系统帐号。
我们经过上面的设置,再次访问samba共享文件时就可以使用redking或amy帐号访问了。
注意:
解决/etc/samba目录下没有smbpasswd文件★★
原因:
smb。
conf文件启用了tdbsam验证.
解决:
smb。
conf文件中注释掉passdbbackend=tdbsam一行,加上smbpasswdfile=/etc/samba/smbpasswd,然后保存退出.
这样再建立用户就产生了/etc/samba/smbpasswd文件了。
使用cat命令查看smbpasswd文件内容~:
cat/etc/samba/smbpasswd
六、Samba的启动与停止
1)samba服务的启动
Servicesmbstart或/etc/rc.d/init.d/smbstart
2)samba服务的停止
Servicesmbstop或/etc/rc。
d/init。
d/smbstop
3)samba服务的重启
Servicesmbrestart或/etc/rc。
d/init。
d/smbrestart
4)samba服务配置重新加载
Servicesmbreload或/etc/rc.d/init.d/smbreload
注意:
Linux服务中,当我们更改配置文件后,一定要记得重启服务,让服务重新加载配置文件,这样新的配置才可以生效。
5)自动加载samba服务
我们可以使用ntsysv命令利用文本图形界面对smb自动加载进行配置,如果要自动加载smb,可以在其前面选中“*”,否则取消掉就不自动加载了~
七、share级别服务器实例及详解
Ok,上面已经对samba的相关性配置文件讲了个大概,现在我们通过实例来掌握一下samba具体使用流程来搭建samba服务器。
如果公司现在用一个工作组Workgroup需要添加samba服务器作为文件服务器,并发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问.
我们分析下,这个案例属于samba的基本配置,我们可以实用share安全级别模式,既然允许所有员工访问,则需要为每个用户建立一个samba帐号,那么如果公司拥有大量用户呢?
1000个用户,100000个用户,一个个设置会非常麻烦,我们可以通过配置security=share来让所有用户登录时采用匿名帐户nobody访问,这样实现起来非常简单~~~
1)修改samba主配置文件smb.conf
vi/etc/samba/smb。
conf
(1).设置samba服务器工作组名为Workgroup
(2).添加samba服务器注释信息为"FileServer"
(3)。
设置samba安全级别为share模式,允许用户匿名访问
(4)。
设置共享目录的共享名为public
(5).设置共享目录的绝对路径为/share
(6)。
最后我们设置允许匿名访问~
设置完smb。
conf后保存退出~
2)重新加载配置
上面我们说过,Linux为了使新配置生效,需要重新加载配置,可以使用restart重新启动服务或者使用reload重新加载配置~
注意:
这里强调一下细节,重启samba服务,虽然可以让配置生效,但是restart是先关闭samba服务,再开启服务,这样如果在公司网络运营中肯定会对客户端员工的访问造成影响,建议使用reload命令重新加载配置文件使其生效,这样不需要中断服务就可以重新加载配置~
samba服务器通过以上设置,现在用户就可以不需要输入帐号和密码就可以直接登录samba服务器并访问public共享目录~
我们测试下,在/share目录下建个文件试下:
touch/share/readme.txt
我们看下效果,开始-运行-输入samba服务器的访问地址\\ip
八、user级别服务器实例及详解
上面的案例我们讲了share安全级别模式的samba服务器,可以实现用户方便通过匿名方式访问,但是如果在我们samba服务器上存在重要文件的目录,为了保证系统安全性及资料保密性,我们就必须对用户进行筛选,允许或禁止相应的用户访问指定目录,这里share安全级别模式就不能满足我们这样的实际要求了。
实现用户身份验证的方法很多,我们可以将安全级别模式配置为user、server、domain和ads,但是最常用的还是user安全级别模式,下面就来看下user这个安全级别模式的配置~
如果公司有多个部门,因工作需要,我们就会分门别类的建立相应部门的目录,并将销售部的资料存放在samba服务器的/companydata/sales/目录下,集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问.
我们分析下,在/companydata/sales/目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级别,这样就启用了samba服务器的身份验证机制,然后在共享目录/companydata/sales下设置validusers字段,配置只允许销售部员工能够访问这个共享目录.
1)添加销售部用户和组并添加相应samba帐号,使用groupadd命令添加sales组,然后执行useradd命令和passwd命令添加销售部员工的帐号及密码~
接下来为销售部成员添加相应samba帐号
2)修改samba主配置文件smb.conf
(1)。
设置user安全级别模式
(2)。
设置销售部共享目录为sales
(3).指定共享目录为绝对路径为/companydata/sales
(4).设置可以访问的用户为sales组成员
3)重新加载配置
上个案例讲过了,要让修改后的Linux配置文件生效,我们就要重新加载配置。
#servicesmbreload
我们测试下,在/companydata/sales目录下建个文件试下:
#touch/companydata/sales/readme。
txt
输入销售部的帐号及密码进行登录
打开sales共享目录
这样销售部成员就可以进行访问sales共享目录下的数据了.
如果要不注销用sale1账户登陆,需要断开已经连接的会话,断开sale2用户登录的会话,方法如下,开始—运行—cmd-如下图输入命令.然后再次访问samba服务器用sale1账户登陆。
九、Samba高级服务器配置
上面说了下samba常规配置,这些已经可以使用企业内部资料通过网络共享并分配适当共享权限来管理共享目录,但这仅仅对于很多大型企业或安全要求高来说还是不能满足其需求,所以下面就来讲下samba高级服务器配置让我们搭建samba服务器功能更强大,管理更灵活,我们数据也更安全。
9。
1用户账号映射
前面已经说过,samba的用户帐号信息是保存在smbpasswd文件中,而且可以访问samba服务器的帐号也必须对应一个同名的系统帐号。
基于这一点,所以,对于一些hacker来说,只要知道samba服务器samba帐号,就等于是知道了Linux系统帐号,只要crack其samba帐号密码加以利用就可以攻击samba服务器。
所以我们要使用用户帐号映射这个功能来解决这个问题
用户帐号映射这个功能需要建立一个帐号映射关系表,里面记录了samba帐号和虚拟帐号的对应关系,客户端访问samba服务器时就使用虚拟来登录.
1)编辑主配置文件/etc/samba/smb.conf
在global下添加一行字段usernamemap=/etc/samba/smbusers开启用户帐号映射功能.
2)编辑此文件vi/etc/samba/smbusers
smbusers文件保存帐号映射关系,其有固定格式:
samba帐号=虚拟帐号(映射帐号)
帐号sale1和sale2就是我们上面建立的samba帐号(同时也是Linux系统帐号),s1和s2就是映射帐号名(虚拟帐号),帐号sale1和sale2在我们访问共享目录时只要输入s1或s2就可以成功访问了,但是实际上访问samba服务器的还是我们sale1和sale2帐号,这样一来就解决了安全问题~我们继续。
3)重启samba服务:
servicesmbrestart
4)验证效果~
输入我们定义的映射帐号s1及s2,注意我们没有输入帐号sale1和sale2,映射帐号s1、s2的密码和sale1和sale2帐号一样~
现在就可以通过映射帐号浏览共享目录了~
注意:
强烈建议不要将samba用户的密码与本地系统用户的密码设置成一样,可以避免非法用户使用samba帐号登录系统非法破坏~~~
9。
2客户端访问控制(选)
对于samba服务器的安全性,我们已经说过可以使用validusers字段去实现用户访问控制,但是如果企业庞大,存在大量用户的话,这种方法操作起来就显得比较麻烦~比如samba服务器共享出一个目录来访问,但是要禁止某个IP子网或某个域的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word samba 服务器 配置