如何使用ELK栈工具来管理系统日志

日期:2015-12-24作者:Dejan Lukan

【TechTarget中国原创】

我们曾经介绍过如何跨越多种设备搭建一个开源的监控设备日志的环境。接下来,下一步是要搭建云服务器来发送系统日志到中央的ELK服务器,在那里日志会被收集起来并用来分析与系统相关的新信息。

应用和守护进程过去常常会将日志信息写到在.log文件来通知系统管理员有某些问题或行为发生。这里最主要的问题是日志格式的不规范,从而导致了效率低下,难以管理的日志解析与分析。当系统日志出现后,这其中的很多问题都得到了解决,但安全的问题依旧被忽略了,系统日志仍然没有被集中管理。

现在,有一些云服务可以集中管理所有的单独系统里的系统日志。一名对云系统有访问权限的攻击者可以篡改系统日志来隐藏他的存在。为了防止这种可能性,我们可以使用一个集中管理的云日志服务器,在那里所有其他云服务器的日志都可以用来分析可能的恶意行为。

在这篇的例子里,我们将使用一个ELK栈来提供一个用于集中管理和系统日志分析的环境。ELK栈是由三部分组成:即,Elasticsearch用于存储和索引日志,Logstash用于解析日志,以及Kibana做为搜索和分析系统日志的界面。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Dejan Lukan
Dejan Lukan

Protean Security

云计算之管理>更多

  • 剑走偏锋:Azure新许可亮新招

    即用即付定价一直是公有云自成立以来的中心原则,但是未来的Microsoft Azure客户想要走这条路线需要找到一些值得注意的字符串。

  • 多云工作负载迁移:自动化是何作用?

    云计算正在发展进入一个崭新的、更成熟的阶段。云规划和部署的关注点已经从低效应用的远程托管转至对云的支持,并将其作为开发人员所使用的虚拟应用平台。

  • 逐条讲解:谷歌云存储服务

    企业选择采用云模型有很多理由,但是,存储仍是一个关键的驱动力。主要的云提供商,如AWS、Azure和谷歌,他们都提供了不同的存储类型和工具,来组织和管理存储的数据。

  • Azure Premium Storage账单如何工作?

    对于那些必须管理和维护昂贵硬件的企业来说,在云中存储数据是一个很有吸引力的替代方案。优势包括备份和恢复方案的平滑自动化、增强的可访问性和可扩展性。

相关推荐

  • 如何加强云端的SSH安全性

    SSH的安全性可能遭受各种各样攻击的威胁,但企业也同样可以采取几个步骤来防止这一切。专家Dejan Lukan对此给出了详解。

  • 哪种云用例能削减总体拥有成本?

    随着云计算甚嚣尘上,很多组织机构开始为了将应用迁移到云端而进行云用例评估。很多组织机构正在分析哪一种用例最有意义。

  • 四大厂商云性能基准测试正面交锋 鹿死谁手?

    公共云最具吸引力的方面之一就是简化了在几天后或几周后“关闭”虚拟服务器的功能。一般情况下,当一台云服务器没有运行时,你只需象征性地为服务器镜像所占据的那部分磁盘存储资源支付一点费用。

  • 需求在即 云服务器怎么选?

    有谁不喜欢云服务器的吗?部署云服务器意味着再也不用购买硬件了,可以根据自身的需求选择最佳的服务器规模,按照所使用的服务器付费。那么,还会有哪些问题呢?

技术手册>更多

  • 云平台选择与部署指南

    云计算应用落地是一个很漫长的过程。在部署云计算之前,用户必须认识各个平台供应商及其云平台,然后根据自身架构选择合适的云平台投入运营。

  • 避免云厂商锁定秘技

    厂商锁定问题不仅给企业产生的巨大的额外成本,对于企业来说还业务管理的灵活性,扩展性也大大降低。基于种种问题,IT管理人员频繁地使用云服务,以此作为摆脱厂商锁定的一种方式。但如何真正避免厂商锁定,一直都是用户在思考的问题。

  • 智能云网络分析技术手册

    随着云计算、虚拟网络的普及,接入网络的设备不断增加,新型应用需求的也在不断增长,网络监控的复杂性已经成为企业面临的重要IT挑战,网络性能监控工具也面临更大的挑战。云计算和大数据这样的新技术理念的出现,导致网络中的流量不断增长,而且流量的类型也在不断改变,如涵盖了更多的视频和语音数据等,不断增强的保护网络的意识也促使企业采用监控和分析工具。本技术手册将会着重介绍云计算时代,作为瓶颈的网络如何保障自身安全,以及网络分析技术对于云计算的影响。

  • IaaS参考完全手册

    基础架构即服务是云计算服务模型三支柱之一。但是你是否对于IaaS有足够的了解?你可能知道IaaS是交付设备,比如通过网络交付服务器和虚拟机,但是不同的云提供商之间有什么不同?企业对于IaaS到底是什么态度,这本IaaS参考完全手册将协助你整理一下IaaS提供商的背景和一些有帮助的技巧。

TechTarget

最新资源
  • 安全
  • CIO
  • SOA
  • 虚拟化
  • 网络
  • 数据中心
【TechTarget中国原创】

我们曾经介绍过如何跨越多种设备搭建一个开源的监控设备日志的环境。接下来,下一步是要搭建云服务器来发送系统日志到中央的ELK服务器,在那里日志会被收集起来并用来分析与系统相关的新信息。

应用和守护进程过去常常会将日志信息写到在.log文件来通知系统管理员有某些问题或行为发生。这里最主要的问题是日志格式的不规范,从而导致了效率低下,难以管理的日志解析与分析。当系统日志出现后,这其中的很多问题都得到了解决,但安全的问题依旧被忽略了,系统日志仍然没有被集中管理。

现在,有一些云服务可以集中管理所有的单独系统里的系统日志。一名对云系统有访问权限的攻击者可以篡改系统日志来隐藏他的存在。为了防止这种可能性,我们可以使用一个集中管理的云日志服务器,在那里所有其他云服务器的日志都可以用来分析可能的恶意行为。

在这篇的例子里,我们将使用一个ELK栈来提供一个用于集中管理和系统日志分析的环境。ELK栈是由三部分组成:即,Elasticsearch用于存储和索引日志,Logstash用于解析日志,以及Kibana做为搜索和分析系统日志的界面。

环境介绍

该环境可以使用Docker容器来搭建,在这个例子中是使用由Protean Security所提供的Docker容器。使用Docker run命令来下载proteansec/elk镜像并forward几个端口。Logstash监听在TCP/UDP的5514端口上,负责接受和分析系统日志消息。Elasticsearch则监听9200/9300端口,但这些端口不需要对外曝露,因为只有Logstash和Kibana会直接使用Elasticsearch。Kibana的Web界面跑在TCP的5601端口上,可用于搜索和分析日志。

在建立环境之后,通过Docker镜像的主机IP地址加端口5601连接到Kibana的Web界面,以搜索和分析所有收集到的日志。

要在一个集中管理的Docker容器中收集日志,配置每台云服务器发送日志到暴露的5514端口上。这可以通过在云服务器上安装rsyslog并在rsyslog.d目录中添加另一个配置文件,指明从每个系统日志子系统发送的每条消息都应该被发送到一个Docker容器的5514端口上。你需要创建另一个文件/etc/rsyslog.d/10-logstash.conf,具体内容为:“*.* @@docker:5514”,其中Docker是一个DNS可解析的容器主机名。

如果有好几个云系统都可以经由SSH访问,那么我们可以通过引入一个简单的Python库来自动化该过程。我们可以通过SSH发送命令来自动化部署和管理任务,进而能够在远程系统上运行指令。

重要事件的检测

OpenVPN应用会在用户认证成功后生成日志。在渗透测试和安全评估中,我们偶然的发现了有各种用于VPN服务器验证的证书和凭证。借由获得所有的必要文件,攻击者可以建立连到公司网络的VPN连接,并访问内部资源,这是特别危险的。为了检测这种行为,搭建一个ELK栈监控连接到服务器的VPN连接来识别用户,以及用户连接来源的IP地址。当一个用户从某个遥远的国家的未知IP连接过来,这类的事件可以被检测到并通报给一个安全专业人士,其可以验证该连接是否是恶意的。

当用户在服务器上认证成功时,OpenVPN服务器会产生以下事件:

[plain]<29>Aug 21 15:01:32 openvpn[9739]: 1.2.3.4:39236 [name.surname] Peer Connection Initiated with [AF_INET]1.2.3.4:39236[/plain]

该日志消息已经被推送到ELK栈,在那里Logstash会解析它,但目前还没有相应的规则来从中提取出用户名和IP地址。要编写适当的规则,使用Grok Debugger服务,该服务接受系统日志和规则,并根据规则来解析消息。

下面显示的是一条适当的规则将如何解析消息,其中用户名被存储在“vpnuser”变量中,主机名存在“vpnhost”变量中:

1

在Kibana界面中,经过解析的消息包含了字段vpnhost(远程用户的IP地址),vpnport,或远程用户端口,以及vpnuser(授权用户的ID),如下图所示:

2

要在消息中增加地理信息,可以在Logstash中启用GeoIP。这会自动在每一条包含vpnhost IP地址的消息中添加经纬度。一些额外的地理信息字段将被加到适当的消息中,用以识别VPN会话建立的国家。

我们还可以很容易地新建一个地图来显示所有连接的VPN用户的IP地址,并在Kibana中呈现出来。下图显示了一个来自斯洛文尼亚的IP,在该图中任何新增加的VPN会话的IP会很容易分辨出来:

3

集中控制的日志管理系统:企业安全必备

在任何时候,每个系统都会生成一些事件来反应当前正在进行的操作的一些信息。系统日志用于将某些相关操作的信息传达给系统管理员。

妥善处理用户认证时生成的OpenVPN系统日志信息很重要。需要写入适当的Logstash规则来解析消息以提取敏感信息-例如用户名,以及用户连接来源的IP地址。IP地址可进一步用于检测VPN连接建立的来源国。

如果事件发生时员工是在另一个国家,安全警报会被触发通知安全专业人士这是一次可能的攻击。这样的事件可能发生在两种情况下。第一种用例是,用户从一次会议或在度假时连接到VPN,这不应该被视为安全问题。第二种情况涉及到黑客获得该用户的私钥和密码凭证连接到企业VPN服务器,这对公司来说可能是毁灭性的,因为它难以检测,但用上述的工具和技术则有可能做到。

为了将所有的系统日志都存放到一个地方,拥有一个集中控制的日志管理系统对于每一个现代企业来说是必须的。这对于发现可能的异常和威胁是必要的,否则这些异常和威胁可能几周甚至几个月都不会有人注意到。