溪仔的Linux笔记-----samba原理、配置以及案例。

这里写图片描述

samba的介绍

samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件

SMB(Server Message block)协议是window下所使用的文件共享协议,我们在linux系统或者其类unix系统当中可以通过samba服务来实现SMB功能。
SMB协议又称为CIFS(Common Internet File System)协议
Samba服务是SMB的一个开源实现,而smb的一些主要功能如下:
1. 在网络上共享目录,决定访问权限。
2. 在网络上共享打印机,决定访问权限。
3. 加入一个windowsXP/2008/win7/win8/win10域环境
4. 通过windows域环境进行认证操作。这个相比于NFS是安全的。NFS缺乏认证机制,在局域网当中没有得到更安全的保障,这也是samba被更为广泛使用的原因之一。

samba的安装

samba拥有两个主服务(相关服务),对于一般使用的服务他只有一个主服务:

1、smbd (提供samba核心功能也是使用最多的一种功能) 提供文件及打印共享服务功能,使用 139、445端口
2、nmbd 提供Netbios(解析协议慢慢的被淘汰)支持,使用137、138端口,而对于这种协议使用较少,现在都是dns进行解析
一般作为文件共享使用samba,则只需要smbd服务
标注:samab服务开启之前需要关闭两个服务,iptables防火墙,selinux服务。
这是为了放行smb的端口。(samba服务需要占用TCP端口139,445 UDP端口 137,138)

samba软件结构

/etc/samba/smb.conf   #samba服务的主要配置文件
/etc/samba/lmhosts  #samba服务的域名设定,主要设置IP地址对应的域名,类似linux系统的/etc/hosts
/var/log/samba    #samab服务存放日志文件
/var/lib/samba/private/{passdb.tdb,secrets.tdb}  #存放samba的用户账号和密码数据库文档

samba工作过程

1、首先客户端发送一个SMB请求数据报,并列出它所支持的所有SMB协议版本。服务器收到请求信息后响应请求,并列出希望使用的协议版本。如果没有可以使用的协议则返回0XFFFFH,结束通信。
2、协议确定后,客户端进程向服务器发起一个用户或共享的认证 ,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX应答数据报来允许或拒绝本次连接。
3、当客户和服务器完成了协商和认证后,它会发送一个Tcon或TconX SMB数据报并列出它想访问网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否被接受或拒绝。
step4、连接到相应资源后,SMB客户端就能够通过open SMB打开一个文件,read SMB读取一个文件,write SMB写入文件,close SMB关闭文件。

SAMBA配置文件

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

猜你喜欢

转载自blog.csdn.net/weixin_42611900/article/details/81610025