云计算百科
云计算领域专业知识百科平台

【Linux系列】CentOS 9 之Samba服务器简单配置

文章目录

  • 前言
  • 一、实验环境
  • 二、实验内容
    • (一)安装Samba服务器
    • (二)Samba服务器的配置文件
      • 1. Samba服务管理
      • 2. 访问本用户主目录
      • 3. 访问指定目录
    • (三)Linux下Samba客户端的使用
      • 1.在Win7中,共享一个目录,将其共享给Everyone组用户,该目录下任意创建一个文本文件。
      • 2.关掉Win7自带的网络防火墙以及其他网络类的防火墙,并且把“简单文件共享选项关掉”(WinXP),还可以点击“权限”按钮进行权限设置。
      • 3.在控制面板的用户帐户选项处启用来宾(Guest)帐户
      • 4.配置策略
      • 5.使用smbclient访问
      • 6. 利用mount命令将共享资源加载到本机
  • 总结

前言

本次实验主要是配置和使用 Samba 服务器,学习如何共享 Linux 系统上的文件,并通过 Windows 客户端以及 Linux 客户端访问这些共享文件。同时,实验还涵盖了如何使用 smbclient 和 mount 命令来访问和挂载 Samba 共享的目录,进一步掌握网络文件共享的基本操作。

本篇文章简单记录Samba服务器的入门配置,不做安全方面的防御,仅供学习参考,请勿直接使用在生产力环境。


一、实验环境

本实验在VMWare虚拟机软件上进行,安装的Linux系统为CentOS 9,宿主机为Windows 11。

CentOS 网络采用NAT模式

二、实验内容

(一)安装Samba服务器

通过yum install samba来安装。 在这里插入图片描述

(二)Samba服务器的配置文件

修改配置文件进行samba服务器的配置。过程如下:

1. Samba服务管理

使用以下命令来查看 Samba 守护进程的状态: systemctl status smb 在这里插入图片描述

使用以下命令来停止守护进程,即停止Samba服务: systemctl stop smb 使用以下命令来启动守护进程: systemctl start smb 使用以下命令来重启守护进程: systemctl restart smb

2. 访问本用户主目录

(1)指定用户配置Samba共享,创建一个专门用于SMB连接的账户guest(如果已存在则跳过此步):

sudo useradd guest //添加用户guest
sudo passwd guest //设定用户密码为qetuowryip

接下来创建guest的Samba账号,设置密码为asdfghjkl

smbpasswd a guest

在这里插入图片描述 修改/etc/samba/smb.conf配置文件

vim /etc/samba/smb.conf

在[global]标签下配置workgroup、netbios、server string、interfaces、hosts allow、max protocol、min protocol、ntlm auth等属性,并且把[homes]标签下的browseable属性的值改成Yes。

先进行步骤描述,后对设置的参数进行解析:

首先查询宿主机的工作组,右击【计算机】->【属性】,在系统信息中点击【域或工作组】, 在这里插入图片描述 弹出【系统属性】对话框,可以查询到工作组,将Samba配置文件的workgroup设置为WORKGROUP 在这里插入图片描述 其实在CentOS中查询IP地址,使用ifconfig,记下关键参数ens160为网卡名称,IP地址192.168.5.130和子网掩码255.255.255.0对应的是24位。 在这里插入图片描述 如图设置完成这样的,接下来对各参数进行解析: 在这里插入图片描述

参数说明举例
netbios name 设置Samba的NetBIOS名称 netbios name = mysmb
workgroup 设置Samba要加入的工作组 workgroup = WORKGROUP
server string 指令浏览表里的机器描述 server string = Sambe Server
security 定义Samba的安全级别 security = User
hosts allow 指定可以访问Samba的主机,同理还有hosts deny,举例中允许192.168.1.X的主机访问Samba hosts allow = 192.168.1.
interfaces 设置Samba服务器所使用的网卡 interfaces = lo ens33 192.168.1.2/24
client code page 使得客户可以支持简体中文的共享名,在新版的Samba中无需手动设置 client code page = 936
max protocol 服务端最高协议 max protocol = SMB3
min protocol 服务端最低协议 min protocol = NT1
client max protocol 客户端最高协议 client max protocol = SMB3
client min protocol 客户端最低协议 client min protocol = CORE
ntlm auth 修改登陆验证方式,支持WinXP ntlm auth = Yes

附上Samba协议版本设置

协议简称描述
CORE 最早的协议,不支持用户名
COREPLUS 比CORE有少量优化
LANMAN1 最早支持长文件名的协议
LANMAN2 LANMAN1的升级版
NT1 SMB的第一代版本,支持Windows 98/XP
SMB2 支持Windows Vista/Windows 7
SMB3 支持Windows 8以后版本

检测Samba配置文件的正确性: # testparm,最后重启smb服务。 在这里插入图片描述 在这里插入图片描述 (2)在用户主目录下创建测试文件: 切换工作目录至用户目录: cd /home/guest 在这里插入图片描述 使用cat命令创建并写入文件test.txt:cat > test.txt ,输入结束后输入Ctrl+D结束,或者用vi工具、gedit工具等编辑好并任意输入内容也可以。 输入完成后查看文件内容: cat test.txt 在这里插入图片描述 (3)在宿主机中访问该Samba服务器,用户为guest,密码为刚才创建的samba密码(注意:不是用户登陆密码)。访问成功后打开test.txt文件。

首先要配置防火墙允许Samba服务通过防火墙,设置完后重启防火墙

使用以下命令:

firewallcmd addservice=samba permanent
firewallcmd reload

在这里插入图片描述 或者可以临时关闭防火墙:systemctl stop firewalld

接下来在宿主机中输入Win+R打开运行框,输入Samba服务器的地址(CentOS 9的IP地址): 在这里插入图片描述 输入对应的账号密码

注意是Samba密码,不是账户本身的密码

在这里插入图片描述 此时访问可能会出现无法访问的情况,如果没有出现直接跳过即可。 在这里插入图片描述

引入SELinux的概念       SELinux(Security-Enhanced Linux)是由美国国家安全局(NSA)开发的 Linux 安全模块,旨在通过强制访问控制(MAC)来增强系统的安全性。它通过使用一套策略来限制和控制程序和用户能够访问的资源(如文件、端口、网络等)。SELinux 通过限制进程和文件之间的交互,防止潜在的漏洞或不当行为扩大化,从而提高系统的安全性。       当 SELinux 启用时,默认会有很多严格的访问控制规则,确保只有具有适当权限的进程可以访问特定资源。如果 Samba 没有适当的 SELinux 上下文,它可能会被禁止访问共享文件夹,即使系统本身允许访问该目录。

我们只需要临时禁用 SELinux 可以帮助我们确认是否是 SELinux 导致的问题。使用以下命令将 SELinux 设置为宽松模式(permissive),它不会阻止操作,只会记录警告:sudo setenforce 0 在这里插入图片描述 此时重新建立连接,尝试访问即可成功 在这里插入图片描述

3. 访问指定目录

修改/etc/samba/smb.conf文件,在末尾添加以下内容: 在这里插入图片描述

参数注释
[xyz] 用户个人的主目录设置内容
comment = var dir 主目录注释
browseable = no 是否容许其他用户浏览个人主目录
writable = yes 是否容许写入个人目录
valid users = %S 容许登陆的用户,%S表示当前登陆的用户
create mode = 0664 新建文件的默认权限(文件的所有者和同组用户可以编辑文件,而其他用户只能读取文件,但不能修改或执行)
directory mode = 0775 新建目录的默认权限(适用于文件夹共享,在允许组内成员对文件夹有完全控制权的同时,限制外部用户只能读取或执行其中的文件。)

检测Samba配置文件的正确性: testparm,然后重启smb服务。

重新建立连接可以发现在目录下多了一个文件夹xyz,并且将鼠标悬浮会显示文字var dir,双击打开xyz 在这里插入图片描述 打开log目录下的任意一个日志文件(后缀为.log) 在这里插入图片描述

(三)Linux下Samba客户端的使用

1.在Win7中,共享一个目录,将其共享给Everyone组用户,该目录下任意创建一个文本文件。

在这里插入图片描述 在这里插入图片描述

2.关掉Win7自带的网络防火墙以及其他网络类的防火墙,并且把“简单文件共享选项关掉”(WinXP),还可以点击“权限”按钮进行权限设置。

在这里插入图片描述

3.在控制面板的用户帐户选项处启用来宾(Guest)帐户

在这里插入图片描述

4.配置策略

打开组策略编辑器(在启动框输入“gpedit.msc”),依次展开【计算机配置】–【Windows设置】–【安全设置】–【本地策略】–【用户权限分配】,找到【拒绝从网络访问这台计算机】,双击打开后删除里面的Guest,表示允许来宾帐户远程访问。 在这里插入图片描述 在组策略的“本地策略”的“安全选项”处,将“网络访问:本地帐户的共享和安全模式”设置为“仅来宾-本地帐户以来宾身份验证”,并且把“账户:使用空白密码的本地帐户只允许远程控制台登录”设为“已禁用”。

在这里插入图片描述 在这里插入图片描述 打开注册表编辑器(在启动框输入“regedit”),依次展开“HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa”,找到里面的两个以“restrictanony”打头的键,把它们都设置为0,表示允许匿名访问。 在这里插入图片描述

5.使用smbclient访问

先安装smbcilent:yum install samba-client 在这里插入图片描述 在smb.conf的[global]标签下面配置client min protocol和client max protocol

如果已经设置,则跳过此步

在这里插入图片描述 使用以下命令进行连接共享文件夹:smbclient //192.168.5.131/ShareDir 在这里插入图片描述

当出现smb: \\>表示已经建立连接,此时可以使用ls命令可以列出共享的文件,mget下载,mput上传,exit退出,help获取帮助。类似于FTP的命令

6. 利用mount命令将共享资源加载到本机

将共享资源挂载到/mnt/smb目录下,如果目录不存在则先创建该目录:mkdir /mnt/smb

注意:挂载的目录必须存在

在这里插入图片描述 接下来使用挂载命令: mount //192.168.5.131/ShareDir /mnt/smb -t cifs -o username=Guest,vers=1.0

//192.168.5.131/ShareDir 是要挂载的远程 SMB/CIFS 共享资源 /mnt/smb 是本地的挂载点 -t cifs 指定了文件系统类型为 CIFS(Common Internet File System),这是一个广泛使用的网络文件系统协议,尤其用于 Samba 文件共享。 -o 后面是挂载选项,它指定了挂载时的特定配置。这里有两个选项: 1.username=Guest:指定用于访问共享资源的用户名。在此例中使用的是 Guest 用户,如果服务器要求其他凭证,可能需要提供密码(例如:password=YourPassword)。 2.vers=1.0:指定 CIFS 协议的版本。在这里,vers=1.0 表示使用 SMB 1.0 协议版本。SMB 1.0 协议比较旧,通常不推荐使用,但在某些老旧设备或服务器上仍然可能需要此版本。注意,许多现代系统和服务已逐步弃用 SMB 1.0,因此可以尝试使用更高版本,如 vers=2.1 或 vers=3.0,这些版本更安全且更高效。

在这里插入图片描述 之后则可以打开查看 在这里插入图片描述 到此,实验内容结束


总结

Samba 提供了一个简单而有效的解决方案,能够让 Linux 系统与 Windows 系统共享文件,并且支持不同级别的权限管理和访问控制。在实验中,重点学习了如何配置 smb.conf 文件,确保共享资源的正确配置以及客户端的正常访问。使用 smbclient 和 mount 命令对 Samba 共享资源进行了实际操作,进一步加深了对 Samba 服务的理解。

总的来说,本次实验不仅提高了对 Samba 配置和使用的掌握,也为在多操作系统环境中进行文件共享与管理提供了宝贵的实践经验。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【Linux系列】CentOS 9 之Samba服务器简单配置
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!