如何使用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 API管理服务?

    在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。

  • 何时是使用大型云实例的最佳时机?

    选择云实例不是一件容易的事情,实例规模如何挑战错误,企业受到损害将是长期的。那么当我需要一个大型实例时,有会有哪些信号显示?

  • 逐条讲解:云计算中的容器技术

    在如今,在讨论云时是很难不提及容器技术的。无论你是刚刚入门的技术新人或者经验丰富的专业人士,一定都应当知道这些与云中容器技术相关的重要术语。

  • 发挥你数据存储专家的价值

    看上去所有人都在试图消灭存储管理员。如果通用的虚拟管理员能够管理存储,或者云可以负责这一切,为什么不这么做?

相关推荐

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

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

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

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

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

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

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

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

技术手册>更多

  • 云计算灾难恢复(DR)计划书

    早期应用云计算的企业已经证明了云计算部署的可行性和管理以及降低成本的优势,事实上,在使用软件即服务应用程序如CRM和ERP成功地驾驭云计算后,现在很多企业都希望通过基于云的灾难恢复(DR)解决方案替代传统的现场备份。Gartner公司指出,直到2014年,超过30%的中型企业将会采用云计算的灾难恢复或作为一种恢复服务。本技术手册将介绍如何实现完整的云计算灾难恢复计划。

  • 私有云实施前准备

    越来多的企业倾向于私有云的选择,因为他们既想要利用云计算的优势,但又不想因为采用公有云,而被迫放弃他们手中的控制权,因此私有云变得越来越受欢迎。

  • SaaS和SOA

    SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。

  • 混合云迁移与管理指导

    很多供应商都称可以提供私有云或公共云产品。但却少有供应商表示能够提供混合云计算。尽管现在很多人呼吁使用混合云,但是一些IT管理者关心的还是把所有的生产应用移交给第三方是否会损失本地基础架构的实质投入。在这样的案例中,混合环境可以利用公有云和私有云的好处。

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服务器,这对公司来说可能是毁灭性的,因为它难以检测,但用上述的工具和技术则有可能做到。

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