Samba服务---SMB协议

Samba服务—SMB协议
在windows当中我们最常见的就是网上邻居可以看到同一互联网上连接的所有用户

在服务器端,linux与window Server相比的稳定性,安全性执行效率以及性价比都是较高的。所以好多window Server下跑的一些服务都会切换到运行在linux服务上,但是对于一些桌面用户来说用到的较多的就是文件共享协议。而在linux中我们可以使用 FTP NFS这类型文件共享协议,但是对于window上比较简单的直接打开的服务在linux中的nfs协议来说是不能在window上使用的这种直接将文件系统共享出来的协议为SMB。

与ftp的区别是不用将文件下载下来在使用,是直接可以在共享中打开使用的,所以说这种共享方式在使用当中是非常方便的,但是SMB是window当中的一种私有协议。即使如此在linux当也提供对SMB协议的一种支持。(虽然是window下的私有协议但是我们的开源技术团队为我们的linux也提供了这种服务称为samba服务,在开发过程中也是相当的艰苦 ,由于在window下是闭源的所以开发者是通过抓包分析window下所产生的数据包来实现的。弄清楚它的一个原理。)

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。

Samba服务是SMB的一个开源实现,而smb的一些主要功能如
下:

1.通过SMB协议进行文件共享
2.通过SMB协议进行打印共享(我们可以通过在linux上通过smb配置打印服务器,为window提供打印服务)
3.加入一个windows2000/2003/2008域环境
(在企业环境当中应用最多,目前smb是支持这三种主流的window服务操作系统的,好多企业当中整个的企业环境当中是使用window的域环境进行管理的,而所有的用户组,权限,组策略信息都是在window域环境进行配置的,那么但是我们的企业又想把一些应用服务和需要用到的一些域环境进行认证或者是做权限控制的这些应用服务去切换到linux系统当中,那在这种情况下就涉及到我如何和window下的这些域环境进行兼容,那么smb是可以加入window域环境当中,并且是可以和window下的这些域环境进行认证操作的。所以smb这个协议是相当强大的不仅限于只是实现文件共享)

SAMBA
安装samba。
Yum install samba -y
Samba拥有两个主服务(相关服务),对于一般使用的服务他只有一个主服务
smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用139/445端口
nmbd 提供Netbios(解析协议,慢慢的被淘汰)支持,使用137/138端口,而对于这种协议使用较少,现在都是dns进行解析
一般作为文件共享使用samba,则只需要smbd服务

SAMBA配置文件
Samba的配置文件为/etc/samba/smb.conf
配置文件分为三个部分
[global] 定义全局性配置(配置samba服务的相关参数)
[homes] 定义对用户家目录的共享配置(其实在默认情况下不做任何设置,直接启用服务我们就可以通过smb协议访问所有用户的家目录)
[printers] 定义打印机共享配置

[global]
workgroup = MYGROUP 定义该Samba服务器所在的工作组或者域(如果下面的security=domain的话)
server string = Samba Server Version %v
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用%v = Samba服务的版本号。
log file = /var/log/samba/log.%m 定义记录文件的位置LogFileName
max log size = 50 定义记录文件的大小size(单位是KB,如果是0的话就不限大小)
security = user
load printers = yes

定义Samba的安全级别,按从低到高分为四级:share,user,server,domain。它们对应的验证方式如下:

  • share:没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
  • user:samba的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
  • server:和user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。
  • domain:这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
    后面三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

[homes]
在smb.conf文件中一般没有对这个目录的设定特定内容比如路径等。当客户机发出服务请求时,就在smb.conf文件的其它部分查找友特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密码文件得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享。下面是这个段的最基本的几个设置。
comment = Home Directories
browseable = no
writable = yes

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
write list = +staff @用来指定可以在该共享下写入文件的用户
这里printable指明该打印机可以打印, guest ok说明游客也能打印,path指明打印的文件队列暂时放到/var/spool/samba目录下。

主配置文件格式:
[global] ###全局控制段###
workgroup = workgroup #工作组
server string = Samba Server Version %v
security = user
encrypt passwords = yes #密码加密
wins support = yes #wins支持
log level = 1 #日志级别
max log size = 1000 #最大日志kb
read only = no #可读写

[homes] #家目录
browsable = no #浏览
map archive = yes

[printers] #打印机
path = /var/tmp #指定目录
printable = yes #是个打印机
min print space = 2000 #空间

e.g.
[global]
workgroup = workgroup

[homes]
browseable = no
writable = yes

[test]
path = /share
comment = test a directory

#重启服务
[root@mail samba]# systemctl restart smb
[root@mail samba]# systemctl restart nmb

windows系统中删除登陆缓存信息
cmd>net use * /delete
在window资源设备器上去访问:\192.168.0.130

提示要账号和密码:
添加samba用户
(先useradd添加用户)
[root@localhost samba]# smbpasswd -a xixi
New SMB password:
Retype new SMB password:
Added user xixi.
查看samba用户用
#pdbedit -L
最后看到两个目录 用户家目录 xixi test 对应得是/share

Multiuser机制
所需软件包:cifs-utils
手动挂载:mount //服务器地址/共享名 挂载点
开机挂载配置/etc/fstab://服务器地址/共享名 挂载点 cifs _netdev 0 0
_netdev:网络设备(请启动完成网络服务,再进行挂载此设备)
cifs: samba使用的文件系统是cifs
Multiuser机制

Samba的multiuser挂载技术
Ø 管理员只需作一次挂载
Ø 客户端在访问挂载点时,若需不同权限,可以临时切换为新的共享用户(无需重新挂载)。
挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
/etc/fstab挂载参数:
//服务器地址/共享名 /挂载点 cifs username=用户名,password=密码,multiuser,sec=ntlmssp,_netdev 0 0

实现方式:
Ø 挂载smb共享时启用multiuser支持;
Ø 使用cifscreds临时切换身份
mount.cifs挂载参数调整
Ø multiuser,提供对客户端多个用户身份的区分支持
Ø sec=ntlmssp,提供NT局域网管理安全支持
多用户挂载参数:multiuser,sec=ntlmssp,_netdev
客户机多用户测试,切换共享用户身份
Ø 在客户端以普通用户登入 :#su - 普通用户
Ø 使用cifscreds提交新的用户凭据并测试:
cifscreds add|update -u 共享用户名 服务器地址

CIFS(Common Internet File System) 协议 CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。 服务器信息块(SMB协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上。   SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。   在 TCP/IP 环境下,客户机通过 NetBIOS over TCP/IP(或 NetBEUI/TCP 或 SPX/IPX)连接服务器。一旦连接成功,客户机可发送 SMB 命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。   从 Windows 95 开始,Microsoft Windows 操作系统(operating system)都包括了客户机和服务SMB 协议支持。Microsoft 为 Internet 提供了 SMB 的开源版本,即通用 Internet 文件系统 (CIFS)。与现有 Internet 应用程序如文件传输协议(FTP)相比, CIFS 灵活性更大。对于 UNIX 系统,可使用一种称为 Samba 的共享软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值