Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux配置SMB共享

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

作者:vortex5

SMB是一种网络文件共享协议,广泛用于 Windows、Linux 等系统间的文件共享,在渗透测试(pentest)场景中,配置 SMB 共享可以方便地在测试环境中传输工具、Payload 或测试数据,本文将详细介绍如何在 Linux 系统中配置 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

配置说明:

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 客户端访问

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 客户端访问

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

  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),客户端需知道共享名称才能访问(适合敏感测试数据)。

六、常见问题排查

访问被拒绝

服务启动失败

客户端无法发现共享

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

以上就是在Linux中配置SMB共享的完整指南的详细内容,更多关于Linux配置SMB共享的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文