说明:windows用户映射samba文件共享服务,记录samba账号的操作日志
只要三步!
- 安装必要软件包 audit
- 配置samba共享
- 配置Syslog
具体步骤
1. 安装必要的软件包
audit 是linux系统的高级审计框架
主要功能:系统调用监控、文件和目录监控、用户活动审计、内核事件监控
sudo yum -y install audit
sudo systemctl start auditd
sudo systemctl enable auditd
2. 配置samba共享
看需求,是想记录某个共享目录,还是整个共享盘
- 所有共享盘:global下添加如下配置项,适用于全局
- 某个网盘:某共享目录下添加
...
vfs objects = full_audit
full_audit:prefix = %u|%I|%m|%S
full_audit:success = connect disconnect mkdir rmdir open pread pwrite write rename unlink chmod chown
full_audit:failure = none
full_audit:facility = LOCAL7
full_audit:priority = NOTICE
...
① 配置项说明:
- vfs objects = full_audit:启用full_audit虚拟文件系统对象,以便记录文件操作。
- full_audit:prefix = %u|%I|%m|%S 这行确保日志前缀中包含:
- Samba账户名 (%u)
- 客户端IP地址 (%I)
- 客户端名称(%m)
- 共享名 (%S) - full_audit:success 列出需要记录的成功操作。
- 连接(connect)、
- 断开连接(disconnect)、
- 创建目录(mkdir)、
- 删除目录(rmdir)、
- 打开文件(open)、
- 读取文件(pread)、
- 写入文件(pwrite和write)、
- 重命名文件(rename)、
- 删除文件(unlink)、
- 修改文件权限(chmod)
- 修改文件所有者(chown)
可以多试试权限,
- full_audit:failure = none:不记录失败操作。
- full_audit:facility = LOCAL7:日志设施,指定为LOCAL7。
- full_audit:priority = NOTICE:日志优先级,指定为NOTIC
② 额外配置项
[global]
log file = /var/log/samba/log.%u.%I.%m.%S
log level = 1
max log size = 1000
- log file :指定Samba日志文件的位置,按客户端区分:日志文件名中包含用户、客户端 IP 地址、NetBIOS 名称和共享服务名称的组合
- log level:设置日志记录级别
- 0:只记录错误信息。
- 1:记录错误和警告信息。
- 2及以上:记录更详细的调试信息。
- max log size :最大日志文件大小,当日志文件达到此大小时,将会创建一个新的日志文件。
3. 重启Samba服务
配置完成后,重启Samba服务以应用新配置:
sudo systemctl restart smb
sudo systemctl restart nmb
smbd 负责记录用户对共享文件和目录的具体操作日志。
nmbd 负责记录 NetBIOS 名称解析和网络浏览相关的日志。
4.配置Syslog
编辑syslog配置文件 /etc/rsyslog.conf 或 /etc/rsyslog.d/ 中的相关配置文件,
添加以下行以记录Samba审计日志:
vim /etc/rsyslog.d/samba.conf
添加
local7.notice /var/log/samba-audit.log
说明:/var/log/samba-audit.log 为日志路径,可自定义
重启rsyslog服务:
sudo systemctl restart rsyslog
5. 验证配置
尝试连接Samba共享并执行一些文件操作(如创建、修改、删除文件等),然后检查 /var/log/samba-audit.log 文件,确保日志记录正常。
tail -f /mnt/smb_backup/samba-log/audit.log
效果嘎嘎好!
Jun 18 12:34:56 servername smbd_audit[pid]: user|192.168.1.100|shared|desktop|connect|ok
Jun 18 12:35:01 servername smbd_audit[pid]: user|192.168.1.100|shared|desktop|open|ok|path/to/file
Jun 18 12:35:05 servername smbd_audit[pid]: user|192.168.1.100|shared|desktop|unlink|ok|path/to/deleted_file
Jun 18 12:35:10 servername smbd_audit[pid]: user|192.168.1.100|shared|desktop|disconnect|ok
日志说明:
servername : 服务器名称
user: 表示samba账户名,
192.168.1.100 :表示客户端IP地址,
shared :表示共享盘的名称,
desktop : 表示samba账号登录的客户端名
connect 、open 、unlink :表示文件操作。
path/to/file :表示操作的文件路径
有用的话,点赞再走咩~