4

INAV:一款专用的日志审查导航工具

 4 years ago
source link: https://www.freebuf.com/sectool/225113.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

LNAV,即Log File Navigator,INAV是一款增强型日志文件查看工具,安全审计人员可以利用INAV来分析并检查日志文件,并从中收集到相关的语义信息,例如时间戳和日志级别。使用这些额外的语义信息,INAV可以做很多事情,比如比对来自不同文件的信息,生成信息的直方图,以及帮助审计人员在日志文件中实现快速定位即导航,并帮助研究人员快速有效地发现问题。

工具依赖

在构建和使用INAV之前,研究人员需安装下列工具依赖组件:

 gcc/clang – 兼容C++14的编译器
 libpcre – Perl兼容正则表达式(PCRE)库
 sqlite – SQLite数据库引擎,需要3.9.0或更高版本
 ncurses – 文本UI库
 readline – readline文本编辑库
 zlib – zlib压缩库
 bz2 – bzip2压缩库
 libcurl – 根据URL下载文件的cURL库,需要7.23.0或更高版本

工具安装

LNAV的安装和配置符合GNU风格,广大安全审计人员可以使用下列命令完成LNAV的安装:

$ ./configure
$ make
$ sudo make install

如果广大用户是直接使用下列命令将项目代码克隆至本地的话:

git clone https://github.com/tstack/lnav.git

那么我们就需要运行下列编译脚本来完成源码编译,在命令行中切换到源码目录,然后运行下列命令:

$ ./autogen.sh

Cygwin用户

当然了,大家也可以在Cygwin中完成源码编译。或者说,你也可以直接从AppVeyor中获取已生成好的源码。请记住,此时你仍然需要使用Cygwin来配置INAV的依赖组件,直接运行下列命令即可完成依赖配置:

setup-x86_64.exe -q -P libpcre1 -P libpcrecpp0 -P libsqlite3_0 -P libstdc++6

根据我们对目前版本的测试,INAV的x64版本会比x86版本更加稳定。

工具使用

安装完成后,广大用户可以直接在无参数的情况下来使用INAV,并查看日志文件:

$ lnav

你也可以使用下列命令来查看所有的syslog信息:

$ lnav /var/log/messages*

配合systemd-journald使用

如果系统中运行了systemd-journald,你也可以使用INAV配合systemd-journald一起使用:

$ journalctl | lnav

或者:

$ journalctl -f | lnav

由于journalctl的默认输出格式忽略了年份数据,因此如果你查看的日志跨越了多个年份的话,则需要更改输出格式以包含年份,否则lNAV可能会出现错误情况:

$ journalctl -o short-iso | lnav

journalctl也可以支持JSON输出格式,INAV还会使用到很多额外的数据域,例如PRIORITY和_SYSTEMD_UNIT:

工具截图

下列截图中显示的是一个系统日志文件(syslog),其中的关键内容已高亮显示,错误信息为红色标记,警告信息为黄色标记。

mi6jIzJ.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK