# Splunk实战（一）——索引器配置以及转发器安装配置说明

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-05-30T02:36:00Z
Canonical: https://wepostx.com/topics/280

> 乌云历史资料归档
>
> **原始作者：** RipZ
> **原始编号：** superkieran-wooyundrops:1224
> **原始发布时间：** 2016-05-30 10:36
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 前言

本文将以连载的形式分享splunk在实战中的运用：从索引器&转发器的安装部署开始，到普通搜索&字段提取，再到报表&仪表盘定制以及告警等，详细的写出作者在实战中的经验（其实是遇到的坑），让大家看完之后可以少走些弯路。

# 0x01 Splunk简述

## 什么是Splunk？
Splunk是机器数据的引擎。使用 Splunk 可收集、索引和利用所有应用程序、服务器和设备（物理、虚拟和云中）生成的快速移动型计算机数据，随时从一个位置搜索并分析所有实时和历史数据。使用 Splunk可以在几分钟内（而不是几个小时或几天）解决问题和调查安全事件，关联并分析跨越多个系统的复杂事件，从而获取新层次的安全运营以及业务运营可见性。

![原文图片](/media/2016/06/082ea29ec32f671652cd6c437a5f9d24)

## Splunk的强大之处
Splunk 可以从任何源实时索引任何类型的计算机数据，由下图可见，通过端口监听来收集各类服务器或者网络设备的日志，还可以通过脚本来获取系统指标等。

![原文图片](/media/2016/06/b41fb0efd3e77d47b412e974dc2e87d1)

同时，可以通过在各个操作系统安装部署转发器（forwarder），来实现将各个agent端日志目录文件发送到splunk索引器（indexer）中。下图最底层为forwarder，中间层为indexer。

![原文图片](/media/2016/06/459436978e4f6d7d9596968911b79162)

简要介绍了一下整体架构，下面我们进入实战环节。

# 0x02 环境准备

## Splunk索引器
6.3.3版本，IP为10.2.1.157

## Splunk转发器
Linux&windows的6.3.3版本

# 0x03 索引器配置
索引器端需要配置监听端口，以便接收从转发器端发来的日志文件等。在“设置——转发和接收——接收数据”中配置监听9997端口

![原文图片](/media/2016/06/1904d57a43524f7bf0fc33829b918db1)

![原文图片](/media/2016/06/2f42d15e5b67fa19fdaf2e0cf1581a40)

另外索引器默认的管理端口是8089，无需配置。

![原文图片](/media/2016/06/b7d8be923ae2c2867878299c59228f09)

# 0x04 Windows转发器配置

## 准备工作

- splunk转发器下载地址
https://www.splunk.com/page/previous_releases/universalforwarder

- 需要在windows server上将”本地安全策略——本地策略——审核策略”中的所有审核策略均配置为”成功“和失败”

![原文图片](/media/2016/06/26993edb416524382e0c685c42242eb1)

## 安装过程
首先复制转发器到相应的服务器上

![原文图片](/media/2016/06/ba877bc33738388fa471771f9fe22db1)

双击执行该文件，如下图所示，勾选接受协议，之后选择“Customize Options”即自定义安装

![原文图片](/media/2016/06/ca96cb5686ac4f7768ea692966ccf9df)

路径默认即可

![原文图片](/media/2016/06/80d4859e4b1089efa14040730f60aea9)

勾选上“windows Event Logs”以及“Performance Monitor”的全部选项，但不用勾选”AD monitoring”（否则如果在域环境下，索引器会收到大量域内无用消息，极为占用资源），如下图。

![原文图片](/media/2016/06/f71581c0a66b3bb149ba18d295c7af14)

这个步骤默认即可。

![原文图片](/media/2016/06/c6a22098501aa0f0c1dd08cca67e4821)

（重要！）配置调度服务器（这一步是为了让indexer可以识别到forwarder，并且可以从管理端下发日志采集指令）。 这一步中的IP填写为10.2.1.157，端口填写为8089，如下图。

![原文图片](/media/2016/06/b6fb31a186734a872622dae8231f4880)

（重要！）这一步中配置接收索引器（这一步是为了让indexer可以接收到forwarder发来的日志），IP填写为10.2.1.157，端口填写为9997。

![原文图片](/media/2016/06/31f7376222abd9ea8c3fd01e6a332ccb)

执行安装过程完毕后，点击Finish结束。

![原文图片](/media/2016/06/de5ccf1d2206f36d46b27814c12c96f0)

最后在索引器中可以看到该转发器已连接上

![原文图片](/media/2016/06/b39fec99d6a0a55e29eb9ffc8db4a795)

# 0x05 Linux转发器配置

## 安装过程
首先查看当前IP。

![原文图片](/media/2016/06/c9f70d3bc8b421965ad6783dd719943f)

从内网服务器下载压缩包：

```text
#!shell wget http://10.2.24.66/splunkforwarder-Linux.tgz
```

![原文图片](/media/2016/06/7a2dae330e852a8522a71dd4667750f7)

解压。

![原文图片](/media/2016/06/2f018d7443ab3bb617bae306de4d300f)

进入%splunkforwarder%/bin

![原文图片](/media/2016/06/eda7175b98042dcfb07fed6015fd96ce)

输入./splunk start进行安装

![原文图片](/media/2016/06/70496a86019bc3f93053b3ef33faec82)

输入y，等待安装完成。

![原文图片](/media/2016/06/45c8f32663787c3cac8ea700063a1589)

输入./splunk enable boot-start，配置为开机启动

![原文图片](/media/2016/06/58b0d823cc789c35dcfee58cdbbe27ac)

（重要！）配置调度服务器（这一步是为了让indexer可以识别到forwarder，并且可以从管理端下发日志采集指令）。
遇到的坑：6.3.3的转发器安装貌似没法通过输入命令来指定对端索引器，如果不搞配置文件的话，索引器是无法感知到这个转发器的。
随后在%splunkforwarder%/etc/system/local/配置deploymentclient.conf
其文件内容格式为：

```text
[target-broker:deploymentServer] targetUri = 10.2.1.157:8089
```
如下配置即为成功

![原文图片](/media/2016/06/b97e9b5ca23cc8bbf0cfe2e29b338275)

（重要！）这一步中配置接收索引器（这一步是为了让indexer可以接收到forwarder发来的日志）
另外需要在%splunkforwarder%/etc/system/local/配置outputs.conf

```text
[tcpout] defaultGroup = defau；lt-autolb-group [tcpout:default-autolb-group] server = 10.2.1.157:9997 [tcpout-server://10.2.1.157:9997]
```
如下配置即为成功

![原文图片](/media/2016/06/c89992bb7e667f2d46c9cb4dae227e97)

配置完conf文件后需要重启splunk服务

![原文图片](/media/2016/06/036a7a9a5723f3799d14a67d39d4ff2c)

另外，还需要配置/etc/rsyslog.conf，设置接收syslog条目为：（为了实现索引分类，这里我将linux的syslog指定发到索引器的516端口）
* @10.2.1.157:516

![原文图片](/media/2016/06/8a57b259413cd64ed1808324aa18955a)

![原文图片](/media/2016/06/120962a193e51bfd82977a6f2d92f5ce)

配置完毕后保存退出，并且重启rsyslog服务。

![原文图片](/media/2016/06/638bc0f3a81a0c2616e1917877f51a5e)

至此，linux端转发器配置完毕。
随后可看到在server端服务器列表中，该转发器已连接上。

![原文图片](/media/2016/06/0d83d49d721904db164ddd798ea69f5e)

# 0x06 添加转发器中的数据

首先选择“设置——数据导入“

![原文图片](/media/2016/06/28e3f19f8fb154ca7a93f3ac846e2510)

选择添加来自于转发器的数据——windows事件日志

![原文图片](/media/2016/06/84dc4df72f202ff300e2ab69f9dab58c)

新建一个服务器组

![原文图片](/media/2016/06/d47edcb5e68f001ce5fc3181b35dd035)

由于目前只关心安全日志，只选security即可，如下图。

![原文图片](/media/2016/06/b11857a496f9be3264e1137c970b0cfd)

将这些转发器的上述配置好的日志均发送到自己新建的windows索引中，以免在超大的main索引里查询导致效率下降。

![原文图片](/media/2016/06/7ad9aae1c5f94da1a31dfba9ecd6efb4)

同理，在”添加数据——文件和目录”功能中，可以直接导入转发器的IIS或tomcat等日志目录所在的路径，配置完毕后由转发器自动将日志发到索引器上来（好像远控有木有）

![原文图片](/media/2016/06/ced3642a085f6c252869cb9e003e8f71)

再将不同类别的日志存放到相应的索引中即可。

![原文图片](/media/2016/06/6e86807697c2228aff7233e58f6c00bf)

最后在搜索时输入index=windows或者index=iis，即可搜到所有转发器发来的日志了。

![原文图片](/media/2016/06/12fd2d497f87f118385610c44c27a01b)

另外，在上一章节中所配置的linux syslog已经发送到了516端口，所以在这里我们新建一个监听UDP:516的规则

![原文图片](/media/2016/06/3fbf1dcffcf3632786db1d8db8c59aad)

并建立一个单独的linux索引来存储发到516端口的UDP数据（即syslog），届时直接搜索index=linux即可。

# 0x07 简单的报表示例

## 统计暴力破解SSH的源IP
先通过linux登录失败的特征字段“failed password”来查询，同时，linux的日志均在名为linux的索引表中，故应该搜索：index=linux failed password。如下图

![原文图片](/media/2016/06/52a37b05982f2ddfea58fdd697e32f96)

之后想要统计来源的IP都有哪些，此时点击左侧的“Src_ip”，选择”上限值”，即为发生次数最多的前20个。

![原文图片](/media/2016/06/9446deda2e06a4cf6ed4c1bb2244a789)

可以自动生成统计图，直观展示哪些源IP的次数最多。

![原文图片](/media/2016/06/6ac7f48d46309a9a713c34b414c75507)

之后将Src_ip改为Dst_ip，可以观察哪些linux服务器正遭受暴力破解的威胁。

![原文图片](/media/2016/06/0a4c83e22c1a5e222bef65cabef7c0de)

至于上面说的Src_ip和Dst_ip是怎么分割出来的，且听下回分解《搜索技巧&字段提取》。

## Replies
