当服务器发生错误或被攻击的情况下,可以通过查看日志,迅速定位、及时解决故障。
日志类型
日志类型大致可以分为三类,内核和系统日志、用户日志、应用日志。
内核和系统日志:这种日志主要由syslog管理、根据其配置文件/etc/syslog.conf中的设置决定内核消息和各种系统程序信息记录到哪个位置。
用户日志:用户日志主要记录系统用户登录或者退出的信息,包括用户名账号、登录时间、源IP等。
应用日志:记录应用程序运行过程中的各种事件信息。
常见的日志文件
日志文件 |
说明 |
/var/log/messages |
记录系统重要信息日志 |
/var/log/secure |
记录验证和授权方面的信息,例如ssh登录、su切换用户、添加用户等 |
/var/log/maillog |
记录系统运行电子邮件服务器的日志信息。 |
/var/log/cron |
记录系统定时任务相关日志 |
/var/log/boot.log |
记录系统启动时候的日志,包括自启动的服务 |
/var/log/dmesg |
记录内核缓冲信息 |
/var/log/bmtp |
记录所有登录失败的日志 |
/var/log/wtmp |
用户每次登录进入和退出时间的永久记录 |
/var/log/lastlog |
记录所有用户的最近信息。 |
通常日志文件都会存放在/var/log/ 文件夹下
对linux日志有所熟悉,才能在需要的时候快速地找出问题所在,及时解决问题。
日志分析
在日志分析的过程中,大部分日志文件都可以通过使用cat、tail、more等文本处理工具就可以查看日志内容。举例栗子:
针对secure日志,可以使用grep、awk、sort等命令工具对secure日志进行分析,
例如
1. 定位有多少个IP对root帐号进行爆破
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
2. 对爆破的IP进行定位
grep "Failed password" /var/log/secure | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" | uniq -c
3. 登录成功的日期、用户名、IP
grep "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
4.增加和删除用户
grep “useradd”or “userdel”/var/log/secure
针对应用程序的日志,也可以使用以上命令组合使用。如果日志容量过大的话,可以使用split命令工具对其进行分割,对应的命令为 split -b ***MB/BB/KB filename -d -a 数字后缀长度文件名前缀,例如:
split -b 5MB /var/log/message -d -a 2 message
如果服务器是通过网站被入侵的情况下,可以把应用程序的access.log日志中状态码为200的记录,grep定向到文本中,再进行整理分析,这样能快速地入侵定位IP、上传的文件等。
grep " 200 " *.log > *.log
针对用户日志的话,只能使用last,w,who等命令工具进行分析。例如我们对wtmp日志进行查看,使用last -f wtmp
last 可以添加-t参数,查看特定日期之前登录的IP等信息。
Nfuzz:
修复报错,目录扫描模块修改(现 在 目 录 扫 描 也 需 要 "FUZZ" 占位符)
项目地址:http://www.khan.org.cn/index.php/2020/03/12/nfuzz/
https://github.com/n00B-ToT/nfuzz