Linux 日志文件
-
在Linux系统中,系统日志通常由
rsyslog或syslog-ng等日志服务管理。这些服务负责收集、记录和管理系统和应用程序产生的日志信息。日志文件通常存储在/var/log目录下,但具体位置和文件名可能会根据Linux发行版和配置的不同而有所差异 -
以下是一些常见的系统日志文件及其大致用途:
-
/var/log/messages - 系统消息和通知,包括启动信息、服务状态变化等。
-
/var/log/syslog - 类似于
/var/log/messages,但可能包含更详细的系统日志信息。 -
/var/log/auth.log 或 /var/log/secure - 认证日志,记录用户登录、认证失败等安全相关事件。
-
/var/log/kern.log - 内核日志,记录内核消息和警告。
-
/var/log/boot.log - 系统启动时的日志信息。
-
/var/log/dmesg - 内核环缓冲区的内容,记录了系统启动时的硬件检测信息。
-
/var/log/cron - 计划任务(cron)的日志。
-
/var/log/maillog 或 /var/log/mail.log - 邮件服务器的日志。
-
/var/log/daemon.log - 系统守护进程的日志。
-
/var/log/httpd/ 或 /var/log/apache2/ - Apache Web服务器的日志。
-
/var/log/nginx/ - Nginx Web服务器的日志。
-
/var/log/ufw.log - 如果使用了
ufw(Uncomplicated Firewall)防火墙,记录防火墙规则应用情况。
要查看这些日志文件的内容,可以使用文本编辑器(如nano、vim或less)或使用命令行工具如cat、tail、head和grep等。例如,查看/var/log/syslog文件的最后10行可以使用以下命令:
tail -n 10 /var/log/syslog
# 或者实时跟踪日志文件的更新
tail -f /var/log/syslog
以上适用于大多数场景,下面是常用的Linux发行版的日志存放位置
Ubuntu & Debian的日志常用存放位置
在Ubuntu系统中,日志文件通常由rsyslog服务管理,它们被存储在/var/log目录下。以下是一些常见的日志文件及其用途:
-
/var/log/syslog - 包含系统消息和通知,如启动信息、服务状态变化等。
-
/var/log/auth.log - 记录用户认证活动,包括登录尝试、认证失败等。
-
/var/log/kern.log - 内核日志,记录内核消息和警告。
-
/var/log/boot.log - 系统启动时的日志信息。
-
/var/log/dmesg - 内核环缓冲区的内容,记录了系统启动时的硬件检测信息。
-
/var/log/ufw.log - 如果使用了
ufw(Uncomplicated Firewall)防火墙,记录防火墙规则应用情况。 -
/var/log/apache2/ 或 /var/log/nginx/ - 分别对应Apache和Nginx Web服务器的日志。
-
/var/log/mail.log - 邮件服务器的日志。
-
/var/log/cron - 计划任务(cron)的日志。
-
/var/log/alternatives.log - 更新系统替代项的日志。
-
/var/log/apt/history.log 和 /var/log/apt/term.log - 包含了
apt包管理器的操作历史和终端输出
CentOS & RHEL 的日志常用存放位置
-
/var/log/messages - 系统消息和通知,包括启动信息、服务状态变化等。
-
/var/log/secure - 认证日志,记录用户登录、认证失败等安全相关事件。
-
/var/log/boot.log - 系统启动时的日志信息。
-
/var/log/dmesg - 内核环缓冲区的内容,记录了系统启动时的硬件检测信息。
-
/var/log/cron - 计划任务(cron)的日志。
-
/var/log/maillog - 邮件服务器的日志。
-
/var/log/httpd/ - 如果安装了Apache Web服务器,这里会存放Apache的日志。
-
/var/log/audit/audit.log - 如果启用了SELinux的审计功能,这里会存放审计日志。
-
/var/log/yum.log - 如果使用了
yum包管理器,这里会记录包管理器的操作日志。
- 日志管理策略
有些应用程序会选择由自己独立管理一份日志文件,而不是交给 rsyslog 服务管理,用 于记录本程序运行过程中的各种事件信息。
-
及时作好备份和归档
-
延长日志保存期限
-
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令、IP等
- 集中管理日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意纂改或删除
对日志文件的保护
chattr 命令
chattr命令是Linux系统中用于改变文件或目录的扩展属性的工具。这些扩展属性可以用来增强文件的安全性和保护文件不被意外修改。chattr命令的使用权限通常限于超级用户(root),因为它可以设置一些非常重要的属性,这些属性可以影响文件系统的操作。
chattr 参数:
chattr [选项] [模式] 文件或目录
-R:递归地改变指定目录及其子目录下的所有文件的属性。
-V:详细模式,显示命令执行的详细过程。
模式部分是由+-=和ASacDdIijsTtu这些字符组合的,用来控制文件的属性。这些属性包括:
+:在原有参数设定基础上,追加参数。
-:在原有参数设定基础上,移除参数。
=:更新为指定参数设定。
具体属性包括:
A:文件或目录的atime(访问时间)不可被修改。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compress,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数data=ordered或data=writeback挂载的文件系统,文件在写入时会先被记录(在journal中)。如果文件系统被设定参数为data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
chattr 示例:
# 锁定 bash.sh 文件不被删除不被修改
chattr +i bash.sh
lsattr bash.sh # 可以用lsattr命令查看刚刚修改的文件权限
# 解锁 bash.sh 文件,让它变得可以修改删除
chattr -i bash.sh