日志分析与安全-内核及系统日志、用户日志、程序日志
日志为什么重要?
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
是审计的基础
日志文件的分类
内核及系统日志
由系统服务rsyslogd统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
在Linux系统中,有三个主要的日志子系统
连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。
进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计。
错误日志:由rsyslogd守护程序执行,各种系统守护进程、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的事件。另外有许多Linux程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
日志保存位置
默认位于:/var/log目录下
主要日志文件介绍:
内核及公共消息日志:/var/log/messages
计划任务日志:/var/log/cron
系统引导日志:/var/log/dmesg
邮件系统日志:/var/log/maillog
用户登录日志:/var/log/lastlog(最近的用户登录事件)
/var/log/secure(用户验证相关的安全性事件)
/var/log/wtmp(当前登录用户详细信息)
/var/run/utmp/(用户登录、注销及系统开关机等事件)
其他日志
用户日志
有关当前登录用户的信息记录在文件utmp中,utmp文件被各种命令文件使用,包括who、w、users和finger。
登录和退出记录在文件wtmp中;数据交换、关机以及重启的信息也都记录在wtmp文件中;wtmp文件被命令last和ac使用。
所有的记录都包括时间戳。时间戳对日志来说非常重要,因为很多攻击行为分析都是与时间有极大关系的。
这两个文件是二进制文件,不能用诸如tail、cat之类的命令来进行访问、操作。
用户日志的基本命令:
内核及系统日志
由系统服务rsyslogd统一管理
软件包:rsyslog-7.4.7-7.el7_0.x86_64
主要程序:/sbin/rsyslofd
配置文件:/etc/rsyslog.conf
日志消息的级别
0EMERG(紧急):导致主机系统不可用的情况
1ALERT:(警告):必须马上采取措施解决的问题
2CRIT(严重):比较严重的情况
3ERR(错误):运行出现错误
4WARNING(提醒):可能会影响系统功能的事件
5NOTICE(注意):不会影响系统但值得注意
6INFO(信息):一般信息
7DEBUG(调试):程序或系统调试信息等
日志记录的一般格式:
时间戳 主机名 子系统 消息级别 消息字段内容
程序日志:
由相应的应用程序独立进行管理,如:
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、squid.out、store.log
FTP服务:/var/log/xferlog
分析工具;
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
日志系统审计、运维注意事项
系统管理人员应该提高警惕,随时注意各种可以情况,并且按时和随机地检查各种系统日志文件,包括一般日志信息、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:
用户在非常规时间登录;
不正常的日志记录,比如日志的残缺不全或者诸如wtmp这样的日志文件无故地缺少了中间的记录文件;
用户登录系统的IP地址和以往的不一样;
用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;
非法使用或不正当使用超级用户权限su指令
无故或非法重新启动各项网络服务的记录
另外,日志并非完全可靠。高明的黑客在入侵系统后,会打扫战场。
日志管理策略
及时作好备份和归档
延长日志保存期限
控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志
将服务器的日志文件发到统一i的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除