linux基础第5节 ----配置与管理Samba服务器

      最后更新:2022-02-19 08:59:42 手机定位技术交流文章

      目录

      一.认识Samba服务器

      1.了解Samba应用环境

      2.了解SMB协议

      3.掌握Samba的工作原理

      二.配置Samba服务

      1.安装并启动Samba服务

      2.了解Samba服务器配置的工作流程

      基本的Samba服务器的搭建流程主要有五个步骤

      Smaba的工作流程如图

      3.主要配置文件smb.conf

      Ⅰ.Samba服务程序中的参数及其作用

      Ⅱ.Share Definitions 共享服务的定义

      4.Samba服务的日志文件和密码文件

      1.Samba服务日志文件

      2.Samba服务密码文件

      三.user服务器示例解析

      四.配置Samba客户端

      1.Windows客户端访问samba共享

      2.linux客户端访问Samba共享

      Ⅰ.Ⅱ在Linux客户端上安装samba-client和cifs-untils

      Ⅱ.Linux客户端使用smbclient命令访问服务器

      Samba服务器搭建起了Linux与Windows沟通的桥梁,并且提供不同系统的共享服务,还能拥有强大的打印服务功能。

      一.认识Samba服务器

      Samba服务器最先在Linux和Windows两个平台之间架起了一座桥梁。我们可以在linux系统和Windows系统之间相互通信,比如复制文件,实现不通操作系统之间的资源共享等。我们可以将其架设称一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印。

      1.了解Samba应用环境

      • 文件和打印机共享:文件和打印机共享是Samba的主要功能,通过SMB进程实现资源共享,将文件和打印机发布到网络之中,以供用户访问
      • 身份验证和权限设置:smbd服务支持user mode和domain mode等身份验证和权限设置模式,通过加密方式可以保护共享的文件和打印机
      • 名称解析:Samba通过nmbd服务可以搭建NBNS服务器,提供名称解析,将计算机的NetBIOS名解析称IP地址。
      • 浏览服务:局域网中,Samba服务器可以成为本地主浏览器(LMB)。保存可用资源列表,当使用客户端访问Windows网上另据时,会根据浏览列表,显示共享目录,打印机等资源。

      2.了解SMB协议

      SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和 表示层 (presentation layer)以及小部分应用层(application layer)的协议。

      SMB使用了NetBIOS的 应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,

      3.掌握Samba的工作原理

      Samba服务功能强大,这与通信是基于SMB协议有大的关系。SMB协议不仅能够提供目录和打印机共享,还支持认证和权限设置等功能。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,但随着后期开发,它可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

      二.配置Samba服务

      1.安装并启动Samba服务

      [root@localhost ~]# yum -y install samba      //安装Samba服务                                                         [root@localhost ~]# rpm -qa | grep samba    //检测系统中是否安装了Samba服务

      [root@localhost ~]# systemctl restart smb
      [root@localhost ~]# systemctl enable smb.service //启动Samba服务和设为开机自启

      2.了解Samba服务器配置的工作流程

      基本的Samba服务器的搭建流程主要有五个步骤

      1. 编辑主配置文件smb.conf,指定需要共享的目录,并为共享目录设置共享权限
      2. 在smb.conf文件中指定日志文件名称和存放路径
      3. 设置共享目录的本地系统权限
      4. 重新加载配置文件或重新启动SMB服务,使配置生效
      5. 关闭防火墙或者放行Smb服务,同时设置SElinux为允许

      Smaba的工作流程如图

      1. 客户端请求访问Samba服务器上的共享目录(requst)
      2. Samba服务器接收到请求后,会查询主配置文件smb.conf,看是否共享了目录,如果共享了目录则查看客户端是否有权限访问
      3. Samba服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都需要我们设置。
      4. 如果客户端满足访问权限设置,则允许客户端进行访问

      3.主要配置文件smb.conf

      Samba的配置文件一般放在/etc/samba目录中,主配置文件名为smb.conf

      Ⅰ.Samba服务程序中的参数及其作用

      Samba服务程序中的参数及其作用
      作用范围 参数 作用

      [global]

      #全局配置

      workgroup = SAMBA #工作组名称
      security = user #安全验证的方式。需验证来访问主机提供的口令才可以访问
      security = share #来访主机无需验证口令;比较方便,但不安全
      security = server #使用独立的远程主机验证来访主机提供的口令
      security =domain #使用域控制器进行身份验证
      passdb backend =tdbsam #定义后台的类型,共有三种。第一中:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
      passdb backend =smbpasswd #使用smbpasswd命令为系统用户Samba服务程序的密码
      passdb backend = ldapsam #ldapsam:基于LDAP服务进行账户验证
      load printers = yes #设置在Samba服务启动时是否共享打印机设备
      cups options = raw

      #打印机的选项

      [homes]

      #共享参数

      comment = Home Directories #描述信息
      browseable = No #指定共享目录是否在“网上邻居”中可见
      read only = No #指定共享目录是否仅读
      browseable = No #在配置文件中的共享文件下敲这个命令,只有的通过samba服务共享当前文件是否允许可见。其他的非当前共享文件不影响本身效果
      printers #打印机共享参数

      Ⅱ.Share Definitions 共享服务的定义

      1.设置共享名

      格式:

      【共享名】

      2.共享资源描述

      格式:

      comment= 备注信息

      3.共享路径

      格式:

      path=绝对地址路径

      4.设置匿名访问

      格式:

      public =yes //允许匿名当访问

      public =no  //不允许匿名当访问

      例题1:

      Samba服务器中有个共享目录为/share,需要发布该目录成为共享目录,定义共享目录名为public。要求:允许浏览,允许只读,允许匿名访问。设置如下所示

      5.设置访问用户

      格式:

      valid users = 用户名

      valid users = @组名

      例题2:

      Samba服务器/share/tech目录中存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为/tech,经理账号为manager

      6.设置目录只读

      格式:

      read only = yes  //只读

      read only = no    //读写

      7.设置过滤主机

      格式:

      hosts allow = 192.168.10.   server.abc.com
      //允许来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源

      hosts deny = 192.168.10.   server.abc.com
      //拒绝来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源

      例题3:

      Samba服务器公共目录/public存放大量共享数据,为保证目录安全,仅允许192.168.80.0的网络的主机访问,并且只允许读取,禁止写入。

      8.设置目录可写

      格式:

      writable = yes  //读写

      writable = no    //只读

      9.设置目录只允许部分用户或组读写

      格式:

      writable  list =  用户名 //允许该用户读写

      writable  list =  @组    //允许该组读写

      10.[home]为特殊共享目录,表示用户主目录。[printers]表示共享打印机

      4.Samba服务的日志文件和密码文件

      1.Samba服务日志文件

      日志文件对于Samba非常重要,他储存着客户端访问Samba服务器的信息,以及Samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题

      Samba服务的日志文件默认在/var/log/samba/中

      2.Samba服务密码文件

      Samba服务器发布共享资源后,客户端访问Samba服务器,需要提交用户名和密码进行身份验证,验证合格才可以进行登录。

      Samba服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd中。

      建立一个Samba账户。

      格式:smbpasswd  -a  用户名

      你会发现,刚开始会报错,这是因为linux本地用户里没有reading这个用户,在linux系统里面添加一个reading用户,再次创建reading用户,就成功了。

      所以:在建立Samba账号之前,一定要先建立一个与Samba账号同名的系统账号

      三.user服务器示例解析

      示例1:如果公司有多个部门,因工作需要,就必须分门别类地建立相应部门地目录。要求将销售部的资料存放在Samba服务器的/companydate/sales/目录下集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。

      需求分析:在/companydata/sales/ 目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security 设置为user安全级别。这样就启用了Samba服务器的身份验证机制。然后在共享目录/companydata/sales下设置valid users 字段,配置只允许销售部员工访问这个共享目录

      (1).建立共享目录,并在其下建立测试文件

      [root@localhost ~]# mkdir -p /companydate/sales/
      [root@localhost ~]# touch /companydate/sales/test_share.tar

      (2).添加销售部用户和组并添加相对应的Samba账户、

      [root@localhost ~]# groupadd sales                                                  //创建销售组sales
      [root@localhost ~]# useradd -g sales -p centos sales1                     //创建销售组组成员sales1
      [root@localhost ~]# useradd -g sales -p centos sales2                     //创建销售组组成员sales2
      [root@localhost ~]# useradd test_user1                                            //创建测试用户
      [root@localhost ~]# echo centos | passwd --stdin test_user1           //设置密码
      [root@localhost ~]# smbpasswd -a sales1                                        //创建Samba账户
      [root@localhost ~]# smbpasswd -a sales2

      (3).修改Samba主配置文件

      [root@localhost ~]# vim /etc/samba/smb.conf

      在全局配置里设置user安全级别模式,默认值

      [sales]                                      -----设置共享目录的共享名为sales
      comment = sales
      path = /companydate/sales  --设置共享目录的绝对路径
      writable = yes                        ----设置可以读写
      browseable =yes
      valid users = @sales             --设置可以访问的用户组为sales组

      (4).设置共享目录的本地系统权限

      [root@localhost ~]# chmod -R  777 /companydate/sales/
      [root@localhost ~]# chown -R sales1:sales /companydate/sales/
      [root@localhost ~]# chown -R sales2:sales /companydate/sales/

      (5).关闭SElinux和关闭防火墙或者让防火墙放行

      [root@localhost ~]# vim /etc/selinux/config
      把enforcing改为disabled

      [root@localhost ~]# firewall-cmd --list-all                       //列出所有的放行名单

      [root@localhost ~]# firewall-cmd --permanent --add-service=samba   //添加放行服务samba

      [root@localhost ~]# firewall-cmd --reload     //重新加载防火墙

      [root@localhost ~]# firewall-cmd --list-all     //列出所有的放行名单

      (7).重新加载Samba服务

      [root@localhost ~]# systemctl restart smb


      四.配置Samba客户端

      1.Windows客户端访问samba共享

      现在我们的系统大多都是win10,win10的samba服务都是默认关闭的,所以

      第一:Windows10开启Samba

      打开控制面板:win+r打开运行框,输入control

      进入程序和功能,点击启用或关闭Windows功能

      找到SMB 1.0/CIFS文件共享支持,一般打开之后会重启电脑

      重启之后,打开资源管理器

      输入Samba服务端的ip地址

      输入用户名和密码,就是刚才创建的

      2.linux客户端访问Samba共享

      开启centos8虚拟机作为Linux的客户端

      Ⅰ.Ⅱ在Linux客户端上安装samba-client和cifs-untils

      [root@localhost ~]# yum -y install samba-client
      [root@localhost ~]# yum -y install cifs-utils.x86_64

      Ⅱ.Linux客户端使用smbclient命令访问服务器

      格式为:smbclient -L 目标主机ip地址/主机名 -U 登录用户%密码

      不输入用户名和密码,这样表示匿名用户登录,然后显示匿名用户可以看到的共享目录列表

      只有输入用户名和密码,才有权限浏览和访问sales共享目录

      Ⅲ.使用smbclient命令行共享访问模式浏览共享的资料

      格式:smbclient   //目标IP地址或主机名/共享目录 -U 用户名%密码

      进入交互式界面,输入“?”将列出具体命令

      ls 列出文件

      不能创建文件,可以创建目录-

      Ⅳ.linux客户端使用mount命令挂载共享目录

      格式:mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名

      [root@localhost ~]# mkdir -p /testdir/samdata         //递归创建目录,挂载点
      [root@localhost ~]# mount -t cifs //192.168.80.128/sales /testdir/samdata/ -o username=sales1
      Password for sales1@//192.168.80.128/sales:  ******  //输入sales1密码
      [root@localhost ~]# cd /testdir/samdata/
      [root@localhost samdata]# ls

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/18651.html

          热门文章

          文章分类