Debian系统中,文件系统日志记录主要通过**审计工具(auditd)和系统日志服务(rsyslog/syslog-ng)**实现,覆盖目录/文件访问、系统事件等场景。以下是具体配置步骤:
auditd是Linux内核级审计工具,可详细记录文件/目录的访问、修改、删除等操作,适合安全审计场景。
sudo apt-get update && sudo apt-get install auditd audispd-plugins
/etc/audit/rules.d/audit.rules
文件,添加针对目标目录的监控规则。例如,记录/data
目录的所有读取(r)和执行(x)操作:-a exit,always -F path=/data -F perm=rx -k dir_access # 监控/data目录的读/执行权限访问
-a exit,always -F path=/etc -F perm=w -k etc_modify # 监控/etc目录的写操作
参数说明:
-a exit,always
:在系统调用退出时触发规则;-F path
:指定监控的目录路径;-F perm
:指定权限类型(r=读、w=写、x=执行);-k
:为日志条目添加关键字(便于后续查询)。sudo systemctl restart auditd
ausearch
工具查询关键字为dir_access
的日志:sudo ausearch -k dir_access
sudo ausearch -k dir_access -ts today -te now
sudo ausearch -k dir_access -ts today -te now > dir_access.log
/var/log/audit/audit.log
中。rsyslog是Debian默认的系统日志服务,可收集内核、守护进程及应用程序的日志;syslog-ng是其替代工具,支持更灵活的过滤和转发。
/etc/rsyslog.conf
,取消注释或添加规则。例如,将auth
(认证)相关的日志记录到/var/log/auth.log
:auth.* /var/log/auth.log
nginx
)的日志记录到单独文件,可在/etc/rsyslog.d/
目录下创建新配置文件(如nginx.conf
):if $programname == 'nginx' then /var/log/nginx.log & stop
sudo systemctl restart rsyslog
/etc/syslog-ng/syslog-ng.conf
,添加目标(destination)、过滤(filter)和日志规则(log)。例如,记录mysql
程序的日志:destination d_mysql { file("/var/log/mysql.log"); };
filter f_mysql { program("mysql"); };
log { source(s_src); filter(f_mysql); destination(d_mysql); };
sudo systemctl restart syslog-ng
logrotate
工具自动管理日志文件。编辑/etc/logrotate.d/rsyslog
(或对应服务的配置文件),添加规则:/var/log/auth.log {
daily # 每天轮转
rotate 7 # 保留7天日志
compress # 压缩旧日志
missingok # 文件缺失时不报错
notifempty # 日志为空时不轮转
create 0640 root adm # 新日志文件权限
}
日志默认存储在/var/log/
目录下(如syslog
、auth.log
、kern.log
等)。tail -f /var/log/syslog
或journalctl -f
(systemd日志);grep "error" /var/log/syslog
(查找错误日志);gnome-systemlog
(GNOME桌面)或ksystemlog
(KDE桌面),通过界面查看日志。通过上述方法,可实现对Debian文件系统的全面日志记录,满足安全审计、故障排查等需求。