环境:centos系统
目的:记录samba账号的操作行为
full_audit 是一个用于审计文件操作的功能或插件,通常与 Samba 文件共享服务结合使用,增强 Samba 的审计能力。它允许管理员记录共享上的所有操作,如创建文件、删除文件、更改路径等,从而提供事后溯源的重要工具。
full_audit 功能介绍:
- 记录共享上的所有操作,包括文件创建、删除、修改等。
- 提供用户、客户端IP地址、客户端名称和共享名称等详细信息的日志前缀。
具体步骤
1. 修改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:failure = all:记录所有失败的操作。
full_audit:failure = <具体的操作类型>:只记录特定类型的失败操作。
注意:具体的替代值取决于你的系统或日志框架所支持的设置。 -
full_audit:facility = LOCAL7
意义:这个配置指定了日志消息的“设施”(facility)。在Unix-like系统中,设施是系统日志机制的一部分,用于分类日志消息。LOCAL7是一个用户定义的本地设施,通常用于非标准的、自定义的应用程序日志。
可能的替代值:
full_audit:facility = auth:安全/授权消息。
full_audit:facility = cron:cron守护进程的日志。
full_audit:facility = daemon:系统守护进程的日志。
…以及其他标准设施,如kern, lpr, mail, news, syslog, user, uucp等。
你也可以使用其他本地设施,如LOCAL0到LOCAL6。 -
full_audit:priority = NOTICE
意义:这个配置指定了日志消息的优先级。NOTICE是一个中等级别的日志优先级,通常用于正常的但值得注意的事件。
可能的替代值:
full_audit:priority = debug:调试信息,通常只在调试时启用。
full_audit:priority = info:信息性消息,通常表示系统正常运行。
full_audit:priority = warn:警告,表示可能出现问题,但系统仍能正常运行。
full_audit:priority = err 或 full_audit:priority = error:错误,表示已经发生了问题,可能会影响系统的正常运行。
full_audit:priority = crit:临界错误,表示系统或应用程序已经不能正常工作。
full_audit:priority = alert:需要立即采取行动的情况。
full_audit:priority = emerg 或 full_audit:priority = panic:系统处于无法使用的状态。
② 额外配置项
[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.配置 /etc/rsyslog.d/samba.conf,定义日志路径
编辑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 /var/log/samba/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
由于编辑器的不同,记录行为会有所差异
比如修改333.xlsx表格内容:会记录为rename
以下使用full_audit、inotify两种监控对比!
full_audit 监控
Aug 19 15:27:29 metas smbd_audit: yy|192.168.2.125|sy-x01|mmmt|rename|ok|/home/yy/all/data/mmmt/新建文件夹/333.xlsx|/home/yy/all/data/mmmt/新建文件夹/333~F79557.tmp
Aug 19 15:27:29 metas smbd_audit: yy|192.168.2.125|sy-x01|mmmt|rename|ok|/home/yy/all/data/mmmt/新建文件夹/~tmp17240524493521
840794.TMP|/home/yy/all/data/mmmt/新建文件夹/333.xlsx
Aug 19 15:27:29 metas smbd_audit: yy|192.168.2.125|sy-x01|mmmt|unlink|ok|/home/yy/all/data/mmmt/新建文件夹/333~F79557.tmp
inotify 监控
/home/yy/all/data/mmmt/新建文件夹/ CREATE ~$333.xlsx
/home/yy/all/data/mmmt/新建文件夹/ MODIFY ~$333.xlsx
/home/yy/all/data/mmmt/新建文件夹/ CREATE ~tmp17240524493521840794.TMP
/home/yy/all/data/mmmt/新建文件夹/ MODIFY ~tmp17240524493521840794.TMP
/home/yy/all/data/mmmt/新建文件夹/ MODIFY ~tmp17240524493521840794.TMP
/home/yy/all/data/mmmt/新建文件夹/ MOVED_FROM 333.xlsx
/home/yy/all/data/mmmt/新建文件夹/ MOVED_TO 333~F79557.tmp
/home/yy/all/data/mmmt/新建文件夹/ MOVED_FROM ~tmp17240524493521840794.TMP
/home/yy/all/data/mmmt/新建文件夹/ MOVED_TO 333.xlsx
/home/yy/all/data/mmmt/新建文件夹/ DELETE 333~F79557.tmp
修改333.xls表格内容:① 创建临时会①rename333.xls为临时文件tmp、②
日志说明:
servername : 服务器名称
user: 表示samba账户名,
192.168.1.100 :表示客户端IP地址,
shared :表示共享盘的名称,
desktop : 表示samba账号登录的客户端名
connect 、open 、unlink :表示文件操作。
path/to/file :表示操作的文件路径
有用的话,点赞再走咩~
不需要安装audit,两个不是一回事~

994

被折叠的 条评论
为什么被折叠?



