Ubuntu 22.04 Samba 安装和配置

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
文件存储 NAS,50GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: SMB(Server Message Block)是一种跨平台的文件共享协议,它允许不同操作系统之间的文件和打印机共享。在本文中,我们将详细介绍如何在 Ubuntu 服务器上部署和配置一个 SMB 服务器,并涵盖多通道配置、性能测试、安全最佳实践以及一些常见问题。【8月更文挑战第1天】

安装

sudo apt install samba
检查服务状态

systemctl status smbd --no-pager -l
检查是否启用(开机自启动)

systemctl is-enabled smbd
# enable it if inactive
systemctl enable smbd

配置

(可选)添加用户
sudo usermod -aG sambashare [username]
设置密码
sudo smbpasswd -a [username]
创建公开共享(可匿名访问)

sudo vi /etc/samba/smb.conf
按以下格式创建内容

[public]
  comment = public anonymous access
  path = /data/
  browsable =yes
  create mask = 0660
  directory mask = 0771
  writable = yes
  guest ok = yes
说明:

[public]方括号内为share后显示的目录名
path = /data/ 为用于share的本地路径
browsable =yes 是否可以浏览
create mask = 0660
directory mask = 0771
writable = yes是否可写
guest ok = yes是否允许匿名访问

开启 SMB1

对于很多电视盒子, 运行安卓或CoreElEC, 只支持 SMB1, 连接默认配置的 Samba 服务会直接报 Timeout, 需要开启 smbd 服务对 SMB1 的支持

编辑 /etc/samba/smb.conf, 在[global]下添加

## Enable SMB1 ##
   server min protocol = NT1
重启 smbd 后, 电视盒就可以连接了.

配置项

Samba可以配置的属性可以参考 https://www.samba.org/samba/docs/using_samba/ch08.html

create mask
八进制数, 每个数 3-bit 代表一组权限[rwx], 整个mask 代表 smb 客户端在创建文件时可以设置哪些bit.
默认是 0744, 对应[--- rwx r-- r--] 这代表着 unix 下的文件所有者可以 rwx [读,写,执行], 同组用户和其它可以 r [读]

对于下面的例子, create mask 限制从 smb 创建文件/目录时, 不管来自于什么客户端, 文件和目录的最大权限为 744

[data]
    path = /home/samba/data
    browseable = yes
    guest ok = yes
    writeable = yes
    create mask = 744

directory mask
与create mask 相同, 八进制数, 每个数 3-bit 代表一组权限[rwx], 整个mask 代表 smb 客户端在创建目录时可以设置哪些bit.
默认是0744, 对应 [--- rwx r-- r--], 允许所有用户读, 但是只允许所有者自己浏览和修改. 建议改为 0750, [--- rwx r-x ---], 避免所有人可以访问

下面的例子中, 从客户端创建的目录, 最大权限为 755

[data]
    path = /home/samba/data
    browseable = yes
    guest ok = yes
    writeable = yes
    directory mask = 755

force create mode 这个配置项用于 当文件权限发生变化时强制设置的权限位. 常用于设置文件默认的组权限. 这个配置也可以用于设置 DOS 属性: archive (0100), system (0010), or hidden (0001).

TIP

有些windows应用保存文件时, 会创建一个带.bak后缀的文件, 当这些文件在samba共享目录下时, 所有者不一定是当前用户, 为了让当前用户还可以编辑修改, 可以设置 force create mode = 0660 , 这样可以保证新文件也可以被同组用户编辑.

force directory mode
这个配置项用于 当目录权限发生变化时强制设置的权限位. 常用于设置组权限, 默认为 0000.

force group
这个配置用于给所有连接上的客户端, 只要客户端成功通过验证, 都会被指定一个固定的分组. 这个分组会体现在新创建的文件和目录上.

force user
同样的, 这个配置会给连接上的验证通过的客户端, 指定一个用户, 体现在新创建的文件和目录上.

多通道配置

为了提高性能并减少延迟,可以启用 SMB 3.0 的多通道支持。在 smb.conf 文件中添加以下内容:

multichannel = yes

重启 Samba 服务使更改生效:

sudo systemctl restart smbd

性能测试

可以使用 smbtorture 或者其他的工具来测试 SMB 服务器的性能。例如:

smbtorture -Uusername -Wworkgroup //servername/myshare

此外,还可以使用 netperf 进行更详细的性能测试:

sudo apt install netperf
netperf -H <server_ip> -t SMB2-RRD

安全最佳实践

1. 加密 SMB 通信

确保在 smb.conf 中启用了 SMB 3.0,并且启用了加密选项:

client min protocol = SMB3
server min protocol = SMB3
encrypt passwords = Yes
require client encryption = Yes

2. 使用强密码策略

确保用户账户使用强密码,并定期更改密码。

3. 限制访问权限

只允许特定的用户和组访问共享资源,并使用防火墙规则限制外部访问。
**

  1. 审计和监控**

启用 Samba 的日志记录功能,并定期审查日志以检测潜在的安全威胁。

常见问题

无法连接到 SMB 服务器

  • 检查防火墙设置,确保 SMB 通信所需的端口(TCP 139 和 445)没有被阻止。
  • 确保 SMB 服务正在运行。

用户无法访问共享文件夹

  • 确认用户具有正确的权限。
  • 检查 smb.conf 文件中的设置是否正确。

性能不佳

  • 检查服务器硬件规格是否满足需求。
  • 考虑优化网络设置或增加带宽。
目录
相关文章
|
3月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
695 1
|
2月前
|
Ubuntu 安全 iOS开发
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Ubuntu 24.04 - Nessus 自动化安装程序
140 5
|
2月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
259 18
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
268 18
|
3月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
235 18
|
3月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
334 17
|
3月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
261 15
|
3月前
|
存储 Ubuntu iOS开发
在Ubuntu 22.04系统上安装libimobiledevice的步骤
为了获取更多功能或者解决可能出现问题,请参考官方文档或者社区提供支持。
174 14
|
3月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
410 7
|
Ubuntu PHP Apache
ubuntu(14.04) 下配置重写
1.开启rewrite模块,使用命令:a2enmod  rewrite 2.在apache2.conf,配置你网站的目录(是目录而定) 3.在你的网站目录下添加去掉index.php的.htaccess(分布式配置文件) RewriteEngine on RewriteCond...
876 0

热门文章

最新文章