Samba服务

Samba服务

文章目录

    • 1、Samba简介
    • 2、Samba服务组成
    • 3、Samba监听端口
    • 4、Samba服务配置文件
      • 4.1 smb.conf常用配置参数
      • 4.2 Samba共享用户
    • 5、Samba服务配置(用户认证共享)
      • 5.1 服务端配置
      • 5.2 客户端访问
      • 5.3 测试
    • 6、Samba服务配置(匿名共享)
      • 6.1 服务端配置
      • 6.2 客户端访问
      • 6.3 测试
    • 7、Windows访问Samba服务端

1、Samba简介

Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,从而使得跨平台的文件共享变得更加容易。在部署Windows、Linux/UNIX混合平台的企业环境时,选用Samba可以很好地解决不同系统之间的文件互访问题。

SMB协议(Server Message Block 服务消息块协议),它能被用于Web连接和客户端与服务器之间的信息沟通。SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。

CIFS协议(Common Internet File System 通用互联网文件系统协议),CIFS是SMB的另一种实现;CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机提供服务。CIFS 使用客户/服务器模式。

在Samba项目出现之前,Windows并不能直接与Linux/UNIX系统进行文件系统共享;Linux中Samba服务使用NetBIOS(网络的基本输入输出系统),来提供浏览服务显示网络上的共享资源列表的功能。

2、Samba服务组成

Samba服务器提供smbd、nmbd两个服务程序,分别完成不同的功能。

smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输。
nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。

进程 对应协议
smbd 对应smb/cifs协议
nmbd 对应netbios协议
winbindd+ldap 对应Windows AD活动目录

3、Samba监听端口

TCP UDP
139 137
445 138

smbd服务程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议);
nmbd服务程序负责监听UDP协议的137、138端口(NetBIOS协议)。

4、Samba服务配置文件

Samba服务的配置文件位于/etc/samba/目录,其中smb.conf是主配置文件。

samba三大组成 作用
[global] 全局配置,此处的设置项对整个samba服务器都有效
[homes] 宿主目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。
当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
[printers] 打印机共享设置

若需要在smb.conf文件中设置新的共享目录,只需要增加一段如“[myshare]”添加共享设置即可,其中“myshare”为用户自定义的共享名。新的共享文件夹设置可以参考“[homes]”和“[printers]”部分的内容。

4.1 smb.conf常用配置参数

参数 作用
workgroup 表示设置工作组名称
server string 表示描述samba服务器
comment 表示设置对应共享目录的注释,说明信息,即文件共享名
path 表示共享目录的路径
security 表示设置安全级别,其值可为share、user、server、domain
passdb backend 表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(用户名密码,兼容旧版本samba密码文件)
browseable 表示是否允许用户看到此共享
public 表示设置是否允许匿名用户访问
guest ok 表示设置是否所有人均可访问共享目录
valid users 设置可以访问的用户和组,例如 valid users = root,@root
hosts deny 设置拒绝哪台主机访问,例如 hosts deny = 192.168.72.1
hosts allow 设置允许哪台主机访问,例如 hosts allow = 192.168.72.2
read only 表示设置目录只读
writable 表示设置目录是否可写
write list 表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root
printable 表示设置是否为打印机

4.2 Samba共享用户

samba服务在使用时需要配置用户名和密码来进行认证,认证的用户可使用系统中的用户也就是/etc/passwd中的用户,为了安全起见并不会使用系统中用户的密码作为认证密码;Samba服务自有密码文件通过smbpasswd -a USERNAME命令设置.

//smbpasswd命令:
    -a Sys_User     //添加系统中的用户为samba用户并为其设置密码
    -d              //禁用samba用户
    -e              //启用samba用户
    -x              //删除samba用户

[root@server ~]# yum -y install samba    //安装samba之后才会有smbpasswd命令
[root@server ~]# useradd yf
[root@servert ~]# smbpasswd -a yf
New SMB password:
Retype new SMB password:
Added user yf.

5、Samba服务配置(用户认证共享)

环境说明:

服务器IP & 操作系统 客户机IP & 操作系统
192.168.92.130
Centos8
192.168.92.135
Centos8

5.1 服务端配置

//关闭防火墙,关闭selinux,永久关闭selinux则修改/etc/selinux/config配置文件
[root@samba-server ~]# systemctl stop firewalld
[root@samba-server ~]# systemctl disable firewalld
[root@samba-server ~]# setenforce 0

//安装Samba服务
[root@samba-server ~]# dnf -y install samba

//开启Samba服务并设置开机自启
[root@samba-server ~]# systemctl start smb.service nmb.service
[root@samba-server ~]# systemctl enable smb.service nmb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.

//创建名为yf的目录
[root@samba-server ~]# mkdir /yf

//编辑smb.conf配置文件实现/yf目录共享
[root@samba-server ~]# vim /etc/samba/smb.conf
[yf]
        comment = yf
        path = /yf
        security = user
        passdb backend = smbpasswd
        browseable = yes
        guest ok = no
        valid users = yf
        writable = no
        write list = yf

//配置结束后用testparm命令测试配置文件是否有语法错误
[root@samba-server ~]# testparm
Load smb config files from /etc/samba/smb.conf
Global parameter security found in service section!
Global parameter passdb backend found in service section!
Loaded services file OK.
Weak crypto is allowed
.......................
.......................

//创建yf用户,添加至samba共享用户
[root@samba-server ~]# useradd yf
[root@samba-server ~]# smbpasswd -a yf
New SMB password:
Retype new SMB password:
Added user yf.

//给共享目录设置权限。设置文件访问控制列表或修改属主属组,二选一。
[root@samba-server ~]# setfacl -m u:yf:rwx /yf/

//重启Samba服务
[root@samba-server ~]# systemctl restart smb.service nmb.service

5.2 客户端访问

//交互式数据访问
smbclient -L HOST -U USERNAME					 //查看samba服务端的共享资源
smbclient //SERVER/shared_name -U USERNAME		 //交互式访问共享资源

//安装Samba客户端
[root@samba-client ~]# dnf -y install samba-client

查看samba服务端有哪些共享资源
[root@samba-client ~]# smbclient -L 192.168.92.130 -U yf
Enter SAMBA\yf's password:

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        yf              Disk      yf
        IPC$            IPC       IPC Service (Samba 4.14.5)
SMB1 disabled -- no workgroup available

//交互式访问共享资源
[root@samba-client ~]# smbclient //192.168.92.130/yf -U yf
Enter SAMBA\yf's password:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Aug 26 11:43:00 2022
  ..                                  D        0  Fri Aug 26 11:43:00 2022

                73364480 blocks of size 1024. 70620856 blocks available
smb: \> quit			//退出交互界面

//基于挂载的方式访问
语法:
mount -t cifs //SERVER/shared_name /挂载到本地的什么目录 -o username=USERNAME,password=PASSWORD

//安装cifs
[root@samba-client ~]# dnf -y install cifs-utils

//创建挂载点,临时挂载到本地
[root@samba-client ~]# mkdir /mnt/yf
[root@samba-client ~]# mount -t cifs //192.168.92.130/yf /mnt/yf/ -o username=yf,password=123456

//挂载之后,查看效果
[root@samba-client ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             877M     0  877M   0% /dev
tmpfs                896M     0  896M   0% /dev/shm
tmpfs                896M  8.7M  887M   1% /run
tmpfs                896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root   70G  2.5G   68G   4% /
/dev/mapper/cl-home  127G  939M  126G   1% /home
/dev/sr0              11G   11G     0 100% /mnt/cdrom
/dev/sda1           1014M  214M  801M  22% /boot
tmpfs                179M     0  179M   0% /run/user/0
//192.168.92.130/yf   70G  2.7G   68G   4% /mnt/yf

//永久挂载
[root@samba-client ~]# vim /etc/fstab
//192.168.92.130/yf /mnt/yf cifs multiuser,username=yf,password=123456,sec=ntlmssp,_netdev 0 0
[root@samba-client ~]# mount -a

//挂载之后查看
[root@samba-client ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             877M     0  877M   0% /dev
tmpfs                896M     0  896M   0% /dev/shm
tmpfs                896M  8.7M  887M   1% /run
tmpfs                896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root   70G  2.5G   68G   4% /
/dev/mapper/cl-home  127G  939M  126G   1% /home
/dev/sr0              11G   11G     0 100% /mnt/cdrom
/dev/sda1           1014M  214M  801M  22% /boot
tmpfs                179M     0  179M   0% /run/user/0
//192.168.92.130/yf   70G  2.7G   68G   4% /mnt/yf

5.3 测试

//客户端
[root@samba-client ~]# cd /mnt/yf/
[root@samba-client yf]# touch test.txt
[root@samba-client yf]# mkdir abc
[root@samba-client yf]# ls
abc  test.txt

//服务端
[root@samba-server ~]# ls /yf
abc  test.txt

6、Samba服务配置(匿名共享)

6.1 服务端配置

//安装samba服务
[root@samba-server ~]# dnf -y install samba

//创建一个共享目录名为yefeng
[root@samba-server ~]# mkdir /opt/yefeng
[root@samba-server ~]# chmod 777 /opt/yefeng
[root@samba-server ~]# ll -d /opt/yefeng
drwxrwxrwx 2 root root 6 Aug 26 14:54 /opt/yefeng

//修改Samba的主配置文件
[root@samba-server ~]# vim /etc/samba/smb.conf
[global]
        workgroup = SAMBA
        security = user
        map to guest = Bad User      //添加此行内容
//添加以下的内容
[yefeng]
        comment = yefeng
        path = /opt/yefeng
        browseable = yes
        guest ok = yes
        writable = yes
        public = yes

//重启服务,生效配置
[root@samba-server ~]# systemctl restart smb.service

6.2 客户端访问

//在客户端查看samba服务器有哪些共享资源
[root@samba-client ~]# smbclient -L 192.168.92.130 -U 'Bad User'
Enter SAMBA\Bad User's password:		//这里直接敲回车键即可,匿名共享不需要密码

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      yf
        yefeng          Disk      yefeng
        IPC$            IPC       IPC Service (Samba 4.14.5)
SMB1 disabled -- no workgroup available

//交互式访问共享资源。注意!服务端IP地址后面直接跟上共享的目录名即可,不要写上绝对路径。
[root@samba-client ~]# smbclient //192.168.92.130/yefeng -U 'Bad User'
Enter SAMBA\Bad User's password:		//这里直接敲回车键即可,匿名共享不需要密码
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Aug 26 14:54:40 2022
  ..                                  D        0  Fri Aug 26 14:54:40 2022

                73364480 blocks of size 1024. 70619956 blocks available
smb: \> quit

//创建挂载点,临时挂载到本地
[root@samba-client ~]# mkdir /opt/samba
[root@samba-client ~]# mount -t cifs //192.168.92.130/yefeng /opt/samba -o username='Bad User'
Password for Bad User@//192.168.92.130/yefeng:


//挂载之后,查看效果
[root@samba-client ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 877M     0  877M   0% /dev
tmpfs                    896M     0  896M   0% /dev/shm
tmpfs                    896M  8.7M  887M   1% /run
tmpfs                    896M     0  896M   0% /sys/fs/cgroup
/dev/mapper/cl-root       70G  2.5G   68G   4% /
/dev/mapper/cl-home      127G  939M  126G   1% /home
/dev/sr0                  11G   11G     0 100% /mnt/cdrom
/dev/sda1               1014M  214M  801M  22% /boot
tmpfs                    179M     0  179M   0% /run/user/0
//192.168.92.130/yefeng   70G  2.7G   68G   4% /opt/samba

6.3 测试

//客户端
[root@samba-client ~]# cd /opt/samba/
[root@samba-client samba]# touch abc.txt
[root@samba-client samba]# mkdir 123
[root@samba-client samba]# ll
total 0
drwxr-xr-x 2 root root 0 Aug 26 15:26 123
-rwxr-xr-x 1 root root 0 Aug 26 15:26 abc.txt

//服务端
[root@samba-server ~]# ll /opt/yefeng/
total 0
drwxr-xr-x 2 nobody nobody 6 Aug 26 15:26 123
-rwxr--r-- 1 nobody nobody 0 Aug 26 15:26 abc.txt

7、Windows访问Samba服务端

服务端的配置看5.1或6.1的步骤即可。下面演示Windows访问Linux服务端

1.首先打开【启动或关闭Windows功能】,选择安装【SMB1.0/CIFS文件共享支持】,安装后重启系统生效。

Samba服务_第1张图片

2.在安装完成并重启过后。

win+r打开运行界面,输入//192.168.92.130(服务端IP地址)

Samba服务_第2张图片

Samba服务_第3张图片

第一次登录需要输入用户名与密码。输入服务端的共享用户和密码即可。如果是匿名共享就无需密码了。

3.点击进入该目录,可以看到里面的内容,也可以进行创建文件目录或删除文件目录等操作。(前提是服务端授权了)

Samba服务_第4张图片

你可能感兴趣的:(Linux,服务器,linux,运维)