当前位置: 代码网 > 服务器>服务器>Linux > 在Linux中配置SMB共享的完整指南

在Linux中配置SMB共享的完整指南

2025年11月13日 Linux 我要评论
引言smb(server message block)是一种网络文件共享协议,广泛用于 windows、linux 等系统间的文件共享。在渗透测试(pentest)场景中,配置 smb 共享可以方便地

引言

smb(server message block)是一种网络文件共享协议,广泛用于 windows、linux 等系统间的文件共享。在渗透测试(pentest)场景中,配置 smb 共享可以方便地在测试环境中传输工具、payload 或测试数据。本文将详细介绍如何在 linux 系统中配置 smb 共享。

一、环境准备

1. 操作系统要求

本文以 ubuntu 22.04 lts 为例,其他基于 debian 的系统(如 kali linux)操作类似;rhel/centos 系统步骤略有差异(包管理工具为 yumdnf)。

2. 安装 smb 服务

linux 中常用的 smb 服务端是 samba,需先安装相关包:

# ubuntu/debian/kali 系统
sudo apt update && sudo apt install samba samba-common-bin -y

# rhel/centos 系统
sudo yum install samba samba-common -y

安装完成后,启动服务并设置开机自启:

# 启动服务
sudo systemctl start smbd nmbd

# 设置开机自启
sudo systemctl enable smbd nmbd

# 检查服务状态(确保为 active (running))
sudo systemctl status smbd

二、配置 smb 共享(核心步骤)

smb 的核心配置文件为 /etc/samba/smb.conf,我们需要在该文件中添加共享目录的配置。

1. 备份配置文件(重要)

修改配置前先备份默认配置,避免误操作导致服务异常:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

2. 创建共享目录

根据需求创建共享目录并设置合适的权限(smb 服务需要访问权限):

注意:若目录所有者为 root,需确保 samba 服务用户(通常是 nobody)有访问权限。

3. 编辑 smb 配置文件

使用文本编辑器(如 nanovim)打开配置文件,在文件末尾添加以下配置(对应需求:可浏览、可写、允许匿名访问):

[pentest]
    comment = pentest tools share  # 共享描述(可选)
    path = /root/pentest           # 共享目录路径
    browseable = yes               # 允许浏览(在网络邻居中可见)
    writable = yes                 # 允许写入(修改/删除文件)
    guest ok = yes                 # 允许匿名访问(无需密码)
    force user = root              # 解决权限不足问题
    # 禁止跟随符号链接(安全加固,避免访问共享外文件)
    follow symlinks = no
    wide links = no

配置说明:

  • [pentest]:共享名称(客户端访问时显示的名称);
  • guest ok = yes:允许匿名用户访问(无需登录,适合测试环境,但生产环境不建议);
  • writable = yes:允许写入操作,需确保目录权限足够(如 777 或所有者为 samba 服务用户);
  • force user = root:所有访问该共享的操作(包括匿名用户)都将以 root 身份执行,解决 /root 目录的权限限制(可能有安全隐患)。

4. 验证配置文件语法

修改后需验证配置是否有误,避免服务启动失败:

testparm

若输出类似 loaded services file ok. 则表示配置有效。

5. 重启 smb 服务

使配置生效:

sudo systemctl restart smbd nmbd

三、防火墙配置(可选)

若系统启用了防火墙(如 ufwfirewalld),需开放 smb 服务的端口(默认端口:139、445)。

1. ufw 防火墙(ubuntu/debian 常用)

# 允许 smb 端口
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp

# 重启防火墙
sudo ufw reload

# 查看开放的端口
sudo ufw status

2. firewalld 防火墙(rhel/centos 常用)

# 允许 smb 服务
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload

四、客户端访问测试

配置完成后,可通过 windows、linux 或 macos 客户端访问共享目录。

1. windows 客户端访问

  • 打开资源管理器,在地址栏输入 \\linux服务器ip\pentest(例如 \\192.168.1.100\pentest);
  • 由于配置了 guest ok = yes,无需输入用户名密码,直接访问即可;
  • 尝试创建、复制或删除文件,验证读写权限是否生效。

2. linux 客户端访问

需安装 cifs-utils 工具:

# 安装工具
sudo apt install cifs-utils -y  # ubuntu/debian
# 或 sudo yum install cifs-utils -y  # rhel/centos

# 创建挂载点
mkdir -p ~/pentest_share

# 挂载 smb 共享(匿名访问)
sudo mount -t cifs //192.168.1.100/pentest ~/pentest_share -o guest

# 访问共享目录
cd ~/pentest_share

3. macos 客户端访问

  • 打开「访达」,按下 cmd + k
  • 输入 smb://192.168.1.100/pentest,点击「连接」;
  • 选择「客人」身份,点击「连接」即可访问。

五、渗透测试场景注意事项

  1. 匿名访问风险guest ok = yes 允许任何人访问,仅适合内网测试环境,禁止在公网暴露;
  2. 权限控制:若需限制访问,可关闭匿名访问(guest ok = no),并添加 samba 用户:
# 创建 samba 用户(需先存在系统用户)
sudo smbpasswd -a 用户名
# 例如:sudo smbpasswd -a pentester(设置密码后,客户端需用该用户登录)
  1. 日志审计:smb 日志默认位于 /var/log/samba/,可通过日志跟踪访问记录;
  2. 端口隐藏:若需隐藏共享(browseable = no),客户端需知道共享名称才能访问(适合敏感测试数据)。

六、常见问题排查

访问被拒绝

  • 检查目录权限(是否为 777 或 samba 用户可访问);
  • 确认 writable = yesread only = no
  • 防火墙是否开放 139/445 端口。

服务启动失败

  • testparm 检查配置文件语法错误;
  • 查看日志:sudo tail -f /var/log/samba/log.smbd

客户端无法发现共享

  • 确保 browseable = yes
  • 直接通过 ip+共享名访问(而非依赖网络邻居自动发现)。

通过以上步骤,即可在 linux 系统中快速配置一个针对 /root/pentest 目录的 smb 共享,满足渗透测试中文件传输的需求。根据实际场景,可进一步调整权限和访问控制策略。

以上就是在linux中配置smb共享的完整指南的详细内容,更多关于linux配置smb共享的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com