Samba服务+Samba实验

Samba服务

 

1.概述:

  • Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择
  • Samba是一组软件包,使Linxu支持SMB/CIFS协议
  • Samba可以在几乎所有的类UNIX平台上运行
  • Samba最初于1991年由澳大利亚Andrew Tridgell研发
  • Samba基于GPL发行,如今由Samba小组维护
  • Samba更新速度很快
 

2.SMB/CIFS协议:

(1)SMB协议:

  • SMB(服务信息模块)协议是一个高层协议、它提供了在网络上的不同计算机之间共享文件,打印机和不同通信资料的手段
  • SMB使用NetBIOS API实现面向连接的协议,该协议为Window是客户程序和服务提供了一个通过虚链路按照请求——响应方式进行通信的机制
  • SMB的工作原理就是让NetBIOS与SMB协议运行在TCP/IP上,并且使用NetBIOS的名字解释器让Linux机器可以在Windows的网络邻居中被看到,从而和Windows的网络邻居中被看到,从而和Windows9x/NT/200X进行相互沟通,共享文件和打印机

(2)CIFS协议:

  • 通用网际文件系统是微软服务器消息块协议(SMB)的增强版
  • 提供计算机用户在企业内部网和因特网上共享文件的标准方法
  • CIFS在TCP/IP运行,利用英特网上的全球域名服务系统(DNS)增强其可扩展性,同时为因特网上普遍存在的慢速拨号连接优化

(3)CIFS特点:

  • 文件访问的完整性为慢速连接优化
  • 为文件或目录的访问提供安全性
  • 使用同一编码(Unicode)文件名
  • 使用全局文件名
 

3.Samba服务相关:

(1)Samba相关配置文件:

  • /etc/samba/smb.conf:主配置文件
  • /etc/samba/smbusers:用于映射Linux用户和Window用户
  • /etc/samba/lmhosts:用作与设置NetBIOS名字与IP地址的对应关系
  • /etc/sysconfig/samba:用于设置守护进程的启动参数
  • /etc/pam.d/samba:用于Samba服务的PAM相关配置

(2)Samba的守护进程:

  • /usr/sbin/smbd:实现共享和验证授权服务
  • /usr/sbin/nmbd:实现名字解析和浏览服务

(3)监听端口:

  • NetBIOS:UDP 137、138和TCP 139
  • SMB:TCP 445

(4)RPM包:

  • samba-common:包括Samba服务器和客户均需要的文件
  • samba-server:Samba服务端软件
  • samba-client:Samba客户端软件
  • samba-winbind:可选的winbind服务
  • samba-swat:Samba的Web配置工具
  • cifs-utils:Samba客户端支持文件共享服务的软件包

(5)服务端工具:

  • /usr/bin/smbpasswd:用于设置Samba用户账号及口令
  • /usr/bin/testparm:用于检测配置文件的正确性
  • /usr/bin/smbstatus:用于查找网络中的Samba服务器

(6)客户端工具:

  • /usr/bin/findsmb:用于查找网络中的Samba服务器
  • /usr/bin/smbclient:Linux下的Samba客户端
  • /usr/bin/smbget:基于SMB/CIFS的类似于wget的下载工具
  • /usr/bin/smbtar:类似于tar的归档工具,用于将SMB/CIFS的共享打包备份到Linux主机
 

4.Samba服务实验部署:

(1)安装samba服务:

[root@localhost ~]# yum install -y samba
……安装过程省略……

(2)查看/etc/samba/smb.conf主配置文件:

1)4种安全验证方式:

  • share:来访主机无需验证口令;比较方便,但安全性很差
  • user:需验证来访主机提供的口令后才可以访问;提升了安全性     #默认安全等级
  • server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
  • domain:使用域控制器进行身份验证

2)3种用户后台类型:

  • smbpasswd:使用smbpasswd命令为系统用户设置Samba服务程序的密码
  • tdbsam:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
  • ldapsam:基于LDAP服务进行账户验证
[root@localhost ~]# cat /etc/samba/smb.conf | grep -Ev "^$|^#"
[global]     #全局参数
    workgroup = SAMBA     #工作组名称
    security = user     #安全验证的方式
    passdb backend = tdbsam     #定义用户后台的类型
    printing = cups
    printcap name = cups
    load printers = yes     #设置在Samba服务启动时是否共享打印机设备
    cups options = raw     #打印机的选项
[homes]     #共享参数
    comment = Home Directories     #描述信息
    valid users = %S, %D%w%S
    browseable = No     #指定共享信息是否在“网上邻居”中可见
    read only = No
    inherit acls = Yes
[printers]     #打印机共享参数
    comment = All Printers     #描述信息
    path = /var/tmp     #共享文件的实际路径
    printable = Yes
    create mask = 0600
    browseable = No     #指定目录是否在“网络邻居”中可见
[print$]     #扩展参数
    comment = Printer Drivers
    path = /var/lib/samba/drivers
    write list = @printadmin root
    force group = @printadmin
    create mask = 0664
    directory mask = 0775

(3)创建用于访问共享资源的账户信息:

pdbedit命令: 将普通用户转换为Samba用户
格式: pdbedit [参数] username
常用参数:
  • -a:建立Samba用户
  • -x 用户名:删除Samba用户
  • -L:列出用户列表
  • -Lv:列出用户详细信息的列表
  • -u:指定用户
[root@localhost ~]# useradd yemao
[root@localhost ~]# pdbedit -a -u yemao     #将普通用户转换为Samba用户
new password:     #此处输入该账户在Samba服务数据库中的密码
retype new password:     #再次输入密码进行确认
Unix username:        yemao
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2232580088-3431904521-500000222-1000
Primary Group SID:    S-1-5-21-2232580088-3431904521-500000222-513
Full Name:            
Home Directory:       \\localhost\yemao
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\yemao\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          三, 06 2月 2036 23:06:39 CST
Kickoff time:         三, 06 2月 2036 23:06:39 CST
Password last set:    三, 29 4月 2020 21:58:43 CST
Password can change:  三, 29 4月 2020 21:58:43 CST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

(4)创建用于共享资源的文件目录:

[root@localhost ~]# mkdir /home/database
[root@localhost ~]# chown -Rf yemao:yemao /home/database

(5)修改主配置文件:

[root@localhost ~]# vim /etc/samba/smb.conf
#在文件最后添加如下代码:
[database]     #共享名称为database
        comment = This is a test     #共享文件内容
        path =/home/database     #共享目录为/home/database
        public = no     #关闭“所有人可见”
        writable = yes     #允许写入操作
[root@localhost ~]# testparm  --show-all-paraments     #检测文件是否有错
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

(6)重启smb服务,并加入开机自启:

[root@localhost ~]# systemctl restart smb
[root@localhost ~]# systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
[root@localhost ~]# netstat -lunt | egrep '137|138|139|445'     #检测端口状态
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN     
tcp6       0      0 :::139                  :::*                    LISTEN     
tcp6       0      0 :::445                  :::*                    LISTEN   

(7)Windows挂载共享测试:

① 在地址栏输入“\\192.168.32.143”
 
② 验证身份信息
 
③ 查看共享文件夹
 
④ 查看共享文件夹下的文件
 

(8)Linux挂载共享测试:

smbclient: Linux下的Samba客户端
用法:smbclient //NetBIOS名或IP地址/共享名 -U 用户名
1.安装Samba客户端:
[root@localhost ~]# yum install -y samba-client
……安装过程省略……

2.检查Samba资源:
[root@localhost ~]# smbclient -L //192.168.32.143/database -U yemao
Enter SAMBA\yemao's password:
    Sharename       Type      Comment
    ---------       ----      -------
    print$          Disk      Printer Drivers
    database        Disk      This is a test
    IPC$            IPC       IPC Service (Samba 4.10.4)
    yemao           Disk      Home Directories
Reconnecting with SMB1 for workgroup listing.
    Server               Comment
    ---------            -------
    Workgroup            Master
    ---------            -------

3.列出Samba的资源使用情况:
[root@localhost ~]# smbstatus
Samba version 4.10.4
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
----------------------------------------------------------------------------------------------------------------------------------------
13808   yemao        yemao        192.168.32.1 (ipv4:192.168.32.1:54193)    SMB3_11           -                    partial(AES-128-CMAC)
Service      pid     Machine       Connected at                     Encryption   Signing     
---------------------------------------------------------------------------------------------
IPC$         13808   192.168.32.1  三 4月 29 22时35分22秒 2020 CST -            -           
No locked files

4.在客户端安装支持文件共享服务的软件包:
[root@localhost ~]# yum install -y cifs-utils
……安装过程省略……

5.创建并编辑用户认证文件:
[root@localhost ~]# touch auth.smb
[root@localhost ~]# vim auth.smb
username=yemao
password=971224
domain=MYGROUP

6.创建一个用于挂载Samba服务共享资源的目录,并把挂载信息写入到/etc/fstab文件中,确保系统重启后自动挂载:
[root@localhost ~]# mkdir /database
[root@localhost ~]# vim /etc/fstab
//192.168.32.143/database /database cifs credentials=/root/auth.smb 0 0
[root@localhost ~]# mount -a

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值