要完整记录与查看共享文件访问日志,核心是启用系统级审计策略 + 配置文件 / 共享的审计规则 + 查看对应日志 ,下面按Windows(SMB 共享) 、**Linux(Samba 共享)** 分别给出可直接落地的配置与查看方法。
一、Windows 服务器(SMB 共享)
- 启用文件访问审计(必做)
方法 1:本地组策略(单机 / 工作组)
- 按
Win+R→ 输入gpedit.msc打开组策略编辑器 - 进入:计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 对象访问 → 文件系统
- 双击配置文件系统审核 → 勾选成功 、失败 → 确定
- 命令行执行:
gpupdate /force强制刷新策略
方法 2:域环境(GPO)
-
在域控制器打开组策略管理(GPMC)
-
新建 / 编辑链接到文件服务器 OU 的 GPO
-
路径同上,启用文件系统审核(成功 + 失败)
-
等待策略同步或执行
gpupdate /force -
为共享文件夹配置 SACL(审计规则)
-
右键目标共享文件夹 → 属性 → 安全 → 高级 → 审核 → 继续
-
点击添加 → 选择主体 → 输入要审计的用户 / 组(如
Everyone、Domain Users)→ 确定 -
勾选需要审计的操作(按需选择):
- 读取数据、列出文件夹内容、读取属性
- 写入数据、创建文件、创建文件夹
- 删除、更改权限、取得所有权
-
勾选替换所有子对象的可审核项 → 确定保存
-
查看访问日志(事件查看器)
-
按
Win+R→ 输入eventvwr.msc打开事件查看器 -
进入:Windows 日志 → 安全
-
筛选关键事件 ID(右侧 "筛选当前日志"):
- 4663:文件 / 文件夹被访问(读 / 写 / 删 / 改)
- 5145:网络共享对象被访问(含共享名、客户端 IP)
-
双击事件查看详情:账户名、客户端 IP、对象路径、访问类型
-
实时查看当前连接与打开文件
-
图形化:计算机管理 → 系统工具 → 共享文件夹 → 会话 / 打开的文件
-
命令行:powershell
查看当前SMB会话 Get-SmbSession # 查看当前打开的文件 Get-SmbOpenFile
二、Linux 服务器(Samba 共享)
-
基础日志配置(连接 / 访问记录)
-
编辑 Samba 主配置:
vi /etc/samba/smb.conf -
在
[global]段添加 / 修改:ini日志路径(%m=客户端IP/主机名,自动分文件) log file = /var/log/samba/log.%m # 日志级别(3=详细,5=调试) log level = 3 # 最大日志大小(MB) max log size = 50
-
重启 Samba:
systemctl restart smb nmb -
启用 full_audit 插件(记录文件操作:增删改查)
-
安装 Samba 审计模块(CentOS/RHEL):bash
运行
yum install samba-vfs-modules -y
-
在
smb.conf的[global]或具体共享段添加:ini启用审计插件 vfs objects = full_audit # 审计日志路径 full_audit:log = /var/log/samba-audit.log # 记录成功/失败操作 full_audit:success = connect open read write rename unlink mkdir rmdir full_audit:failure = connect open read write rename unlink mkdir rmdir # 日志前缀(含用户、IP、共享名) full_audit:prefix = %u|%I|%S
-
重启 Samba:
systemctl restart smb -
查看日志
基础连接日志
bash
运行
查看所有客户端日志 ls -l /var/log/samba/ # 实时查看指定客户端IP(如192.168.1.100)的日志 tail -f /var/log/samba/log.192.168.1.100 # 查看SMB服务总日志 tail -f /var/log/samba/log.smbd
详细文件操作审计日志
bash
运行
实时查看审计日志 tail -f /var/log/samba-audit.log # 日志格式示例:用户名|客户端IP|共享名|操作|文件路径 alice|192.168.1.100|share|open|/share/doc.txt bob|192.168.1.101|share|unlink|/share/old.doc
查看当前连接
bash
运行
查看当前Samba会话 smbstatus # 过滤445端口连接(SMB默认端口) netstat -tulnp | grep smbd
三、日志管理与最佳实践
- 日志轮转 :配置
logrotate避免日志占满磁盘 - 集中日志:将日志发送到 ELK、Splunk 或 SIEM 系统,便于检索与告警
- 权限控制:仅管理员可访问审计日志,防止篡改
- 定期审查:定期检查异常访问(如大量删除、越权访问)
四、常见问题
- Windows 无 4663/5145 事件:检查审核策略是否启用、SACL 是否配置、是否执行
gpupdate - Linux Samba 无审计日志:检查
vfs objects = full_audit是否正确、日志路径权限是否为smbuser可写
需要我给你一份可直接复制的Windows PowerShell 筛选脚本 和Linux Samba 完整配置模板 ,你直接粘贴就能用吗?
如何禁止保存服务器共享文件、文件服务器共享文件禁止另存为本地磁盘
要实现 "只允许用户打开 / 查看共享文件,但禁止保存到服务器、禁止另存为到本地磁盘、禁止复制下载 ",不能只靠单一权限,必须组合 NTFS / 文件系统权限 + 组策略 / 配置 + 文档权限 / 专业软件 三层控制。下面分 Windows(最常用)、Linux Samba、企业级防泄密 三套完整方案。
一、Windows 服务器:禁止保存 & 禁止另存为(SMB 共享)
- 基础:只读权限(禁止修改 / 保存到服务器)
先把共享设为纯只读 ,用户无法在服务器上修改、新建、删除、覆盖保存。
(1)共享权限(网络访问)
- 右键文件夹 → 属性 → 共享 → 高级共享 → 权限
- 加入目标用户 / 组(如
Domain Users) - 只勾选:读取 → 取消 "完全控制 / 更改"
(2)NTFS 安全权限(关键,防绕过)
-
安全 → 编辑
-
删除无关用户(Everyone/Users)
-
目标用户只勾选 3 项 :
- 读取和执行
- 列出文件夹内容
- 读取
-
取消所有:写入、修改、删除、完全控制
-
高级 → 禁用继承 → 转换为显式权限(防止子文件继承高权限)
效果 :
- ✅ 可打开、查看
- ✅ 无法在服务器上保存修改、新建、删除
- ❌ 但用户仍可:复制文件→本地、打开后另存为到本地
- 进阶:组策略(禁止复制 / 拖拽 / 另存为到本地)
Windows 有专门策略彻底禁止从网络共享另存 / 复制到本地 。
单机 / 工作组
-
Win+R→gpedit.msc -
路径:
计算机配置 → 管理模板 → Windows 组件 → 文件资源管理器 -
启用以下两项:
- 防止从网络共享文件夹中复制文件
(禁止拖拽 / 复制共享文件到本地) - 禁止将文件另存为到本地驱动器
(彻底禁止 "另存为" 到 C/D 盘)
- 防止从网络共享文件夹中复制文件
-
命令行刷新:cmd
gpupdate /force
域环境(批量控所有电脑)
- 域控打开 组策略管理 GPMC
- 新建 GPO→链接到用户 / 文件服务器 OU
- 配置同上策略 → 等待同步或强制刷新
效果 :
- ✅ 无法复制 / 拖拽共享文件到本地
- ✅ 无法另存为到本地磁盘
- ✅ 无法 "另存为→U 盘 / 移动硬盘"
- ❌ 弱点:Office/PDF 内复制文字、截屏仍可绕过
- 进阶:Office/PDF 禁止内部复制 & 另存为(免费)
(1)微软 Office:IRM 权限限制(Word/Excel/PPT)
-
打开文档 → 文件 → 信息 → 保护文档 → 限制访问
-
勾选:
- 禁止复制
- 禁止打印
- 禁止另存为
- 禁止更改
-
保存。
效果 :
- 打开需认证
- 复制出去是乱码 / 无法粘贴
- 无法另存、无法打印
(2)PDF:用 Adobe 权限密码
- PDF → 属性 → 安全性
- 设置权限密码
- 禁止:复制内容、修改、打印、另存为
二、Linux Samba:禁止保存 & 只读不下载
- 基础:Samba 只读(禁止修改 / 保存服务器)
/etc/samba/smb.conf
ini
share\] path = /data/share valid users = alice bob read only = yes # 只读,禁止写入/保存 writable = no # 禁止任何写入 browseable = yes guest ok = no delete readonly = no # 禁止删除只读文件 重启: bash 运行 systemctl restart smb nmb 2. 进阶:禁止客户端复制 / 下载(Samba 审计 + 限制) Samba 本身**无法彻底阻止另存为** (客户端行为),但可: (1)禁止创建 / 修改 / 删除(纯只读) ini read only = yes writable = no create mask = 0444 # 新建文件只读 directory mask = 0555 (2)禁止特殊文件 / 拦截客户端行为 ini # 禁止客户端产生临时文件(防止变相下载) veto files = /Thumbs.db/.DS_Store/.\*.tmp/ **Linux 结论** : * Samba 只能做到**服务器端只读** * 要**禁止另存为到本地** ,必须配合: * Windows 客户端组策略 * 或**专业文档管理系统** **三、企业级真正防泄密:禁止另存 / 复制 / 截屏(无绕过)** 方案 A:专业共享防泄密软件(推荐) 国内常用:**大势至、域智盾、IP-guard。** 如"大势至局域网共享文件管理系统",只需要部署在局域网一台电脑,就可以实现只让读取共享文件而禁止复制共享文件、只让打开共享文件而禁止另存为本地磁盘、只让修改共享文件而禁止删除共享文件,并且可以详细记录共享文件访问日志。如下图:  **功能(一键设置)**: * ✅ 仅**在线打开**共享文件 * ✅ **禁止另存为到本地 / U 盘** * ✅ **禁止复制文件 / 复制内容** * ✅ **禁止拖拽** * ✅ **禁止打印 / 截屏 / 录屏** * ✅ 打开时强制**水印** * ✅ 记录:谁、何时、打开 / 试图另存 / 试图复制 **部署** : 1. 服务器装**管理端** 2. 客户端装**轻量代理**(域可批量推送) 3. 对共享文件夹→用户:勾选**禁止另存为、禁止复制** 方案 B:文档管理系统(SharePoint/Nextcloud/ 企业云盘) 直接用**在线预览模式** : * 仅**网页预览**,不提供真实文件路径 * 后台设置:**禁止下载、禁止另存、禁止打印、水印** 四、各方案效果对比(最关键) 表格 | 方案 | 禁止服务器保存 / 修改 | 禁止另存为本地 | 禁止复制文件 | 禁止复制文字 | 禁止截屏 | 防绕过 | |------------|--------------|---------|--------|--------|------|-----| | NTFS 只读 | ✅ | ❌ | ❌ | ❌ | ❌ | 弱 | | 组策略 | ✅ | ✅ | ✅ | ❌ | ❌ | 中 | | Office IRM | ✅ | ✅ | ✅ | ✅ | ❌ | 中 | | 专业防泄密 | ✅ | ✅ | ✅ | ✅ | ✅ | 强 | 五、你最可能遇到的 "绕过" 与对策 1. **用户打开后→另存为→本地** → 必须开**组策略:禁止将文件另存为到本地驱动器** 2. **用户复制文件→粘贴到本地** → 组策略:**防止从网络共享复制文件** 3. **用户复制文档内文字** → Office IRM / PDF 权限 / 专业软件 4. **用户截屏 / 拍照** → 专业软件**防截屏 + 屏幕水印** 六、推荐实施路线(按安全等级) 1. 低成本(免费) **NTFS 只读 + 组策略(禁止复制 + 禁止另存为)** 适合:内部普通文档、信任度高环境 2. 中安全(免费) **上述 + Office IRM + PDF 权限** 适合:Office 为主、少量机密 3. 高安全(企业级) **专业防泄密软件 / 文档管理系统** 适合:图纸、合同、财务、研发数据、**完全禁止泄密** **七、一键可复制配置** Windows 组策略(必开) plaintext 计算机配置 → 管理模板 → Windows 组件 → 文件资源管理器 ✅ 防止从网络共享文件夹中复制文件 ✅ 禁止将文件另存为到本地驱动器 gpupdate /force Samba 只读配置 ini \[secure_share\] path = /data/secure valid users = @finance read only = yes writable = no delete readonly = no veto files = /Thumbs.db/.DS_Store/