目标:一、搭建一个基本的samba使用匿名访问web
二、搭建使用虚拟用户访问的samba服务器安全
三、搭建一个基于用户配置文件的samba服务器服务器
四、搭建一个企业经常使用的samba服务器实例网络
五、samba服务器经常使用配置参数总结介绍dom
六、samba的原理讲述ide
一、IP说明:学习
192.168.0.2——主机名:samaba.wqmsl.com samba服务器测试
192.168.0.3——主机名:client.wqmsl.com client客户端this
二、前期准备加密
更改主机名称(更改三处):一、hostname更改,二、hosts更改,三、/etc/sysconfig/network
三、所需软件包以下
samba-common-3.0.33-3.14.el5
samba-3.0.33-3.14.el5
system-config-samba-1.2.41-5.el5
samba-swat-3.0.33-3.14.el5(用来web页面管理samba,来对Samba服务器进行图形化管理,安装的时候有依赖关系,使用yum安装哦)
samba-client-3.0.33-3.14.el5
下面咱们来安装一下samba吧
Samba的全部配置文件所在的目录
咱们通常配置smb.conf ,下面咱们来看一下里面的内容哈:
*******************
解释:
Smb.conf配置文件里面默认有288行,里面以“#”和“;”开头的全是注释语
常规的samba服务器配置过程以下:
一、编辑主配置文件smb.conf,指定须要共享的目录,为共享目录设置共享权限。
二、在smb.conf文件中指定日志文件名称和存放路径和日志的大小。
三、设置共享目录的本地系统权限。
四、从新加载配置文件或从新启动smb服务,使用配置生效
*******************
Global配置区域以下,此区域配置全局生效,对全部的共享文档生效哈:
共享文档配置区域以下:
家目录共享配置区域以下:
打印机共享配置区域以下:
看的差很少了吧,由于文件过多,因此samba文件为咱们区分的很明确,要配置什么就去什么区域配置哈:
在配置以前咱们最好先备份一下主配置文件,以避免之后文件损坏后好恢复
1、实现第一个实验目标,搭建一个基本的samba服务器,使用匿名访问
配置主配置文件smb.conf文件
workgroup ——配置所属的工做组
server string——服务器的描述
hosts allow——配置容许访问的网段,默认是注释掉的,意思就是容许全部访问
把默认的security = user(须要系统帐户访问) 改成security = share (可使用匿名访问)
****************************
解释:
[share] ——服务器共享文档名称
comment = share ——服务器说明
path = /share ——共享文档的路径
publice = yes ——容许匿名访问
writable = yes ——容许写入(前提是目录自己有其余用户写入的权限)
printable = no —— 并不是打印机
******************************
保存退出
创建共享文档目录并设置权限
设置冒险位(目的是用户a在共享目录里面写入文件,那么用户b登录看到以后只能读取却不能删除,起到了防止用户误删除其余用户的文件)
咱们在share目录里面创建一个文件进行测试
重启服务(从新加载)使用其中之一便可,我是为你们作演示
下面咱们使用Windows系统访问一下,下面看看哈:
看见了吧,共享目录share下面有咱们创建的test.share文件,我试着写入看看有没有权限哦
看见了吧 ,我创建成功了哦,说明第一个目标咱们实现了哈,那么下面咱们开始第二个目标哈
2、那么实现第二个目标,使用虚拟用户访问的samba服务器
这个其实很简单啦,只要三步便可实现
一、修改smb.conf开启虚拟用户访问,修改服务器安全模式
二、添加samba用户和虚拟用户映射
三、重启服务便可
下面咱们开始配置
修改smb.conf文件
修改服务器安全模式为user
在“Global Settings”区域添加以下参数,开启虚拟帐户映射
编辑smbusers文件,内容以下,我映射samba用户wqmsl为虚拟用户a,b,c
首先要有系统用户,而后添加到samba用户并设置密码
重启samba服务或者从新加载服务
使用映射用户a在客户端访问samba共享目录,要求输入用户和密码:
看到了吧,a用户经过了验证,共享目录里面有wqmsl的家目录,说明咱们用的实际是wqmsl用户访问的samba共享
下面咱们使用用户b访问samba服务试试看
访问的内容和用户a是同样的
(注意:在Windows下面默认会记录访问共享目录用户,再次访问就会默认登陆,因此咱们须要清除网络链接,打开运行—>cdm—>net use (查看现有的链接)—>net use * /del
以下图所示:)
使用虚拟用户在必定程度上保护了计算机上用户的帐号信息,安全么,能够用用,即便有人知道你的samba用户,可是要想破解你的系统密码仍是很难哈,会累死他的,整半天也只是一个虚拟用户而已哈。
说明咱们第二个目标已经实现了,那么咱们进行第三个目标哦!
3、如今咱们来实现第三个目标,搭建一个基于用户配置文件的samba服务器
使用独立用户的配置文件能够更好的去为用户配置权限,并且也很是的方便,就和咱们在vsftpd里面不是也用到过虚拟用户和用户的单独配置文件么,其实差很少的,不过实现起来仍是比较简单的哦,下面咱们开始作吧
咱们先简单的实现一下,公司的share共享目录你们都有读写的权限,总经理须要有一个本身的共享目录,又不能让你们看见或者访问,不想让你们看见的话可使用隐藏共享目录的参数来实现,可是这样的话只要让别人知道了总经理的共享目录名称便可访问到了,因此这里咱们使用单独配置文件来实现,又方便又安全是否是哈
如今咱们开始配置吧
include = /etc/samba/%U.smb.
***************************
解释:
include = /etc/samba/%U.smb.conf ————含义:读取用户的单独配置文件,位置在/etc/samba/下的以 用户名.smb.conf 命名的配置文件
有一些资料里面会config file 来写,它和include是有区别的,区别在于使用include字段的时候samba还会读取smb.conf 里面的共享目录配置,可是使用config file 的时候就不会了,它会直接去读取用户的单独配置文件,以后咱们经过实验来讲明吧
***********************
复制用户单独配置文件,直接复制smb.Conf为用户的配置文件便可
配置jingli的共享目录
*********************
解释:
valid users = jingli ———— 含义:只容许jingli来访问本共享目录
*********************
在根目录下面创建经理的共享目录并设置属主和属组为jingli,以便经理可以有彻底控制的权限
下面咱们使用客户端访问试试哈(访问以前记得要清除共享访问记录哦):
看看里面的内容:
看见没有,里面有经理的共享目录,而且还有share共享目录和jingli的家目录
我在里面建立文件看看
建立和删除都成功,说明权限正确
下面我在用别的用户访问试试,看看里面的内容
没有吧 只有共享的公共目录和用户的家目录,没有别的哈
公共用户登录以后根本看不见经理的共享文件夹
即便我知道了经理共享目录的名称为 jl,如图下:
是没有权限访问的哈。
用户独立配置文件目标实现,已经成功
目标 4和5 在笔记二里面再介绍吧,今天就写到这里了
4、下面咱们来实现第四个目标,咱们来作一个企业经典的samba服务器实例
实例以下:企业要求搭建samba服务器来提供文件共享服务,有财务部、销售部,还有公共共享文件目录,财务部和销售部都事关部门机密文件,别人不能读取,因此要实现只有公司经理能读取和写入财务部、销售部的共享目录,各个部门员工只能访问和写入本部门的共享目录,但不能删除其余用户写入的文件,公共目录职能读取不能写入。
下面咱们来作吧,一个一个来实现
先建立要共享的目录并为销售部和财务部加上冒险位(关于冒险位就很少说了,在“samba学习笔记一”里面讲过的哦)
编辑smb.conf文件
添加以下参数,是samba服务器读取用户或者组的单独配置文件
配置共享公共目录
保存退出
咱们建立所须要的帐户和组,经理:jingli, 财务部:c1 、c2(组:caiwu) 销售部:x1 、x2(组:xiaoshou) 其余部门员工帐号:q1
系统用户建立成功,咱们把这些用户添加成samba用户
全部的samba用户建立已经成功
咱们建立单独的用户、组配置文件,看下图:
其中smb.conf. bak 是我以前备份的smb.conf文件
配置xiaoshou组、caiwu组、jingli的配置文件
配置xiaoshou组的配置文件中的共享文档
配置caiwu组的共享文档,以下:
配置经理的配置文件,以下:
重启服务以下:
下面咱们来测试:
先使用经理的帐户登陆试试
登陆后看到的共享文档以下:
销售部、财务部、公共共享 都能看到的,还有一个是本身的家目录,下面咱们来测试权限,看有没有写入的权限
如上:销售部和财务部咱们都有写入的权限
下面咱们测试销售部门员工登陆状况
登陆后能访问的共享目录以下:
咱们在销售部目录建立文件
咱们测试一下冒险位的做用,我去删除jingli建立的文件试试:以下
没法删除,说明实验成功哦
下面测试财务部的哦,呵呵
这好似c1登陆后可以共享的目录,测试建立文件和删除其余用户的文件
固然咱们也可使用Linux客户端来访问并挂载samba共享目录,很简单,具体访问和挂载命令看第四部分“samba服务器配置文件经常使用参数和命令解释”
看到实验的结果了吧,全部的目标实现,第四个目标完成,那么咱们开始下一个呗!
4、samba服务器配置文件经常使用参数和命令解释:
全局配置参数
一、在global下添加一行字段username map = /etc/samba/smbusers开启用户账号映射功能。 samba账号 = 虚拟账号(映射账号)
hosts allow 和 hosts deny 字段的使用
二、hosts allow 字段定义容许访问的客户端
hosts deny 字段定义禁止访问的客户端
hosts deny = All 表示全部客户端,不是说名称为all的主机哈,这是通配符哦。
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示容许 192.168.0.0网段IP地址访问,可是192.168.0.100和192.168.0.78除外
(这个也能够加入到共享目录的配置里面,这样的话只对共享目录生效)
三、在[global]中加入config file = /etc/samba/smb.conf.%U,表示samba服务器读取 /etc/samba/smb.conf.%U文件,其中%U表明当前登陆用户。
也能够添加以下参数:不过是有区别的,“我在samba学习笔记一”里面讲过了
(看看效果吧,我修改smb.conf里面的读取用户配置参数include为config file以后,用客户端访问以下:
看到了吧,在smb.conf里面配置的share共享文档没有啦,说明config file参数讲不读取smb.conf里面的共享目录,而是直接读取了用户或组的单独配置文件,两个字段参数各有所长,因此看你怎么用了 )
include = /etc/samba/%U.smb.conf表示使samba服务器加载/etc/samba目录下格式为“用户名.smb.conf”的配置文件。
include = /etc/samba/%G.smb.conf表示使samba服务器加载/etc/samba目录下格式为“组名.smb.conf”的配置文件。
四、security = share / user........安全级别的参数:
定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式:
share:任何用户无需用户名和口令便可访问服务器上的资源。
user:samba的默认配置,在访问共享资源以前必须经过本地用户验证。
Server:验证是经过另外一台服务器进行的,若是失败,就退到user级。
domain:验证经过网络上的Windows的主域控制器进行。
后面三种安全级都要求“用户”在提供共享的Linux主机上要有账户的。
五、默认/etc/samba下面没有smbpasswd文件,解决办法:在smb.conf文件中注释掉passdb backend = tdbsam 一行,在下面加上smb passwd file = /etc/samba/smbpasswd
六、使用加密口令 ———— encrypt password = yes/no
共享目录配置参数
一、comment = 备注信息
二、path = 绝对地址路径
三、public = yes #容许匿名访问
public = no #禁止匿名访问
(public和valid users 不能同时使用,这样public没效果)
四、valid users = @组名,用户名 ,可是前提是public设置成no
invalid users = @组名,用户名,就算你上面容许他了,可是加入这句,这个用户也 会 被拒绝。通常用在容许全部,而禁止某几个用户的时候使用
五、readonly = yes #只读
readonly = no #读写
read list = @组 用户 指定只能读取该共享资源的用户和组。
六、writable = yes #读写
writable = no #只读
七、write list = 用户名
write list = @组名,用户名
write list 要生效的话,writeable 也设置成no
八、smbpasswd 的参数命令以下:
-a 添加用户 #smbpasswd -a wqmsl
-x 删除用户 #smbpasswd -x wqmsl
-d 禁用账号 #smbpasswd -d wqmsl
-e 取消禁用 #smbpasswd -e wqmsl
-n 清除密码 #smbpasswd -a wqmsl
九、writable yes 全部账号都容许写入
writable no 全部账号都禁止写入
write list 写入权限账号列表 列表中的账号容许写入
十、browseable = no表示隐藏该目录
十一、smbclient命令格式:smbclient -L 目标IP地址或主机名 -U 登陆用户名%密码
smbclient -L 192.168.0.188 -U boss%boss
十二、smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
1三、mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名
1四、testparm /etc/samba/smb.conf 命令检查
1八、
1五、1)samba服务的启动
service smb start 或 /etc/rc.d/init.d/smb start
2)samba服务的中止
service smb stop 或 /etc/rc.d/init.d/smb stop
3)samba服务的重启
service smb restart 或 /etc/rc.d/init.d/smb restart
4)samba服务配置从新加载
service smb reload 或 /etc/rc.d/init.d/smb reload
(注意:Linux服务中,当咱们更改配置文件后,必定要记得重启服务哦,让服务从新加载配置文件,这样新的配置才能够生效么)
5)自动加载samba服务
chkconfig --level 35smb on #运行级别3自动加载
chkconfig --level 35smb off #运行级别3不自动加载
1六、设置是否容许打印配置文件中的全部打印机开机时自动加载 load printers = yes
设置Samba 服务启动时,将自动加载的打印机配置文件 printcap name = /etc/printcap
5、samba服务器的介绍和原理
Samba概述
Samba是最早在Linux和Windows两个平台之间架起了一座共享的桥梁哦,正是因为Samba的出现,咱们能够在Linux系统和Windows系统之间互相通讯,如拷贝文件、实现不一样操做系统之间的资源共享等等,咱们能够将其架设成一个功能很是强大的文件服务器,也能够将其架设成打印服务器提供本地和远程联机打印,甚至咱们可使用samba Server彻底取代NT/2K/2K3中的域控制器,作域管理工做,很强大的哦
Samba应用环境
文件和打印机共享、身份验证和权限设置、名称解析:Samba经过nmbd服务能够搭建NBNS(NetBIOS Name Service)服务器 、浏览服务。
Samba工做原理
Samba服务功能强大,这与其通讯基于SMB协议有关。SMB还提供目录和打印机共享,并支持认证、权限设置。SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的13七、138及TCP协议的139端口,后期SMB通过开发,能够直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议445端口。
制做人:wqml QQ :459176770