安全运营之Zeek配合Graylog进行流量分析
  a7o66GQVrfp7 2023年11月20日 31 0

一、简介

        在前一篇博客中安装了zeek流量分析工具,并且使用zeek工作捕获了流量以日志的方式进行了展示,在本篇博客中我们将安装Graylog,将zeek流量分析结果以图形的方式展示,并结合Elasticsearch提供的搜索引擎完成日志的存储及检索。

        Graylog的官方网站见https://graylog.org/,这里可以找到详细的说明,Graylog的服务由Graylog-server提供,需要用到比较高的CPU计算资源;使用Elasticsearch或者OpenSearch作为搜索引擎,需要使用多的内存资源;使用Mongodb存储元数据及配置数据,日志文件不存储在Mongodb中,因此Mongodb对资源要求不高。Graylog可以采用单节点部署,也可以采用多节点集群部署,单节点部署架构如下:

安全运营之Zeek配合Graylog进行流量分析_zeek

        集群部署见官方网站,本文以单节点部署为例。

        除了整体的架构信息以外,在整体架构中还会用到GraylogSidecar以及filebeats两个组件,几者关系如下:

安全运营之Zeek配合Graylog进行流量分析_graylog_02

        Graylog sidecar是一个轻量级的配置管理器,用于对不同采集器进行管理;beats则是作为具体的采集器,因此在本架构中,sidecar用于对beat进行统一管理,在采集信息的服务器上同时部署graylog sidecar以及filebeat。

二、Graylog安装部署

(一)Graylog部署环境说明

使用graylog5.1进行安装,链接见:https://go2docs.graylog.org/5-1/downloading_and_installing_graylog/red_hat_installation.htmGraylog5.1安装的前置条件:

1、 OpenJDK17(已经集成在Graylog,不用单独安装)

2、 OpenSearch1.x,2.x或者Elasticsearch 7.10.2

3、 MongoDB 5.x或者6.x。

另外本文将使用到sidecar对beats进行统一的管理,两者版本信息如下:

1、 sidecar 1.5.0

2、 filebeat-7.10.2

(二)安装mongodb

1、配置mongodb的YUM源

/etc/yum.repos.d/mongodb-org.repo

安全运营之Zeek配合Graylog进行流量分析_graylog_03

2、使用yum命令进行安装

[root@localhost yum.repos.d]# yum install -y mongodb-org

3、设置服务自启动,然后启动服务:

[root@localhost yum.repos.d]# systemctl daemon-reload

[root@localhost yum.repos.d]# systemctl enable mongod

[root@localhost yum.repos.d]# systemctl start mongod

4、查看mongodb状态信息以及服务启动后的端口监控信息

安全运营之Zeek配合Graylog进行流量分析_zeek_04

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_05

Mongodb安装后默认监听在本地127.0.0.1的27017端口,如果Elasticsearch与graylog-server分别部署,则需要修改其配置文件/etc/mongod.conf中的bindIP到合适的IP地址:

安全运营之Zeek配合Graylog进行流量分析_zeek_06

 

(三)安装ElasticSearch:

1、安装Elasticsearch GPG KEY:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2、添加Elasticsearch的YUM源

编辑elasticsearch.repo文件:

[elasticsearch-7.10.2]
name=Elasticsearch repository for 7.10.2 packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

3、使用yum进行安装:

[root@localhost yum.repos.d]# yum install elasticsearch-oss -y

4、修改elasticsearch的配置文件,这里修改了集群的名称,起名为graylog,并且去掉了action.auto_create_index的注释:

[root@localhost yum.repos.d]# vi /etc/elasticsearch/elasticsearch.yml

安全运营之Zeek配合Graylog进行流量分析_graylog_07

5、启动Elasticsearch服务,并设置自启动

[root@localhost yum.repos.d]# systemctl daemon-reload

[root@localhost yum.repos.d]# systemctl enable elasticsearch

[root@localhost yum.repos.d]# systemctl start elasticsearch

(四)安装Graylog-server

1、由于下载Yum安装比较慢,我先下载Graylog-server到本地后,再进行安装,下载地址:

https://packages.graylog2.org/el/stable/5.1/x86_64

2、安装graylog-server:

[root@localhost graylog]# rpm -ivh graylog-server-5.1.8-1.x86_64.rpm

安装后根据提示启动服务。

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_08

3、开始配置graylog-server,这里需要先生成两个密钥,第一个是password_secret用于保护存储的用户密码,至少需要使用64个字符,安装再修改该密钥将使用所有用户会话及数据库中的加密信息无效。可以使用pwgen生成密钥,命令:pwgen -N 1 -s 96,也可以根据手册中的命令生成password_secret:

[root@localhost graylog]# < /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

c60KVdhDr4SEsBJWAWlVaYgv0vAA1L9IBALdXi7CJYjv7FIfacQ0tzh-Wu79ioGCk6qOdcjIdh1yp2AgQvcjfu4CufATI2iS

第二个是root_password_sha2,该密钥为WEB登录时,超级管理员的密码,用户名默认为admin:

[root@localhost graylog]# echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

Enter Password: admin

8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_09

说明:如果没有设置这两个密码,graylog服务将无法启动。

4、修改graylog服务监听的地址及端口,默认是9000,如下:

安全运营之Zeek配合Graylog进行流量分析_安全运营_10

修改完后,注意重启服务。

5、登录graylog-server服务:

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_11

安全运营之Zeek配合Graylog进行流量分析_zeek_12

三、测试Graylog收集syslog日志

1、 在graylog-server上配置一个UDP Input,路径:System/inputs

安全运营之Zeek配合Graylog进行流量分析_graylog_13

Syslog端口设置为1514:

安全运营之Zeek配合Graylog进行流量分析_graylog_14

注意这里端口使用默认的514会报错,可以看到日志提示端口绑定失败:

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_15

 

查看一下UDP监听的端口,显示系统监听了UDP1514端口:

安全运营之Zeek配合Graylog进行流量分析_流量分析_16

2、修改/etc/rsyslog.conf配置文件,将日志发送到graylog的1514端口,在配置文件后面添加一行:

*.* @192.168.2.102:1514

安全运营之Zeek配合Graylog进行流量分析_graylog_17

3、在graylog上面观察结果,显示收到了日志信息,说明graylog工作正常了。

安全运营之Zeek配合Graylog进行流量分析_安全运营_18

四、使用Graylog收集zeek流量信息

(一)安装及配置服务器采集信息所需要的sidecar以及filebeat:

1、安装graylog-sidecar:

       [root@localhost graylog]# rpm -ivh graylog-sidecar-1.5.0-1.x86_64.rpm

安装filebeat:

[root@localhost graylog]# rpm -ivh filebeat-7.10.2-x86_64.rpm

2、创建graylog-sidecar token:

安全运营之Zeek配合Graylog进行流量分析_安全运营_19

安全运营之Zeek配合Graylog进行流量分析_zeek_20

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_21

3、修改sidecar配置文件/etc/graylog/sidecar/sidecar.yml:

配置graylog-server的API接口地址:

server_url: http://192.168.2.102:9000/api/

配置graylog-server的API token:

server_api_token: "104bmpb1cagvd41lbrg2btu43ojo8bg063kj3co7f792lp9tr2em"

配置节点的名称,配置后可以在system/sidecars显示:

node_name: "192.168.2.102"

如下截图:

[root@localhost graylog]# vi /etc/graylog/sidecar/sidecar.yml

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_22

完成sidecar配置后,启动sidecar:

[root@localhost graylog]# graylog-sidecar -service install

[root@localhost graylog]# graylog-sidecar -service start

启动后,可以在graylogserver上看到该节点,如下:

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_23

(二)在graylogserver上配置collector采集器:System/Sidecars-Configuration-create Configuration:

安全运营之Zeek配合Graylog进行流量分析_zeek_24

        设置采集器名字,选择collector类型,然后在configuration中修改采集日志的路径(input)及输出日志的路径(output)。Input这里的路径设置为zeek流量分析日志保存路径:

安全运营之Zeek配合Graylog进行流量分析_zeek_25

 

(三)管理collectors采集器,为节点分配采集器:

安全运营之Zeek配合Graylog进行流量分析_流量分析_26

启动采集器:

安全运营之Zeek配合Graylog进行流量分析_zeek_27

启动采集器后,可以看到filebeat已经启动,可以看到其使用的配置文件路径:

/var/lib/graylog-sidecar/generated/6546c722a3a84e5a1c8d54eb/filebeat.conf

安全运营之Zeek配合Graylog进行流量分析_安全运营_28

查看一下该文件的内容:

安全运营之Zeek配合Graylog进行流量分析_流量分析_29

如上所示,为前面一步配置的内容,已经通过graylog-sidecar下发到了服务器上。

(四)设置graylog-server的Input收集信息:

安全运营之Zeek配合Graylog进行流量分析_zeek_30

   这里设置的端口为5044与前一步的端口保持一致,设置后可以看到系统监听了5044端口:

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_31

(五)测试

下面在服务器上面curl http://www.baidu.com,然后查看一下日志信息进行测试:

1、 curl 一个网站www.baidu.com

[root@localhost graylog]# curl http://www.baidu.com

安全运营之Zeek配合Graylog进行流量分析_安全运营_32

2、在graylog上搜索www.baidu.com看到如下信息:

安全运营之Zeek配合Graylog进行流量分析_安全运营_33

可以看到这里进行了DNS的解析,DNS响应的IP地址为14.119.104.189,14.119.104.254。

3、下面再使用14.119.104.189进一步搜索,可以看到更多的信息,包括HTTP连接信息。

安全运营之Zeek配合Graylog进行流量分析_elasticsearch_34

至此,我们完成了graylog的安装部署,并可以接收到zeek的流量分析。

五、后记

        目前已经结合了zeek、graylog完成了开源流量分析工具的部署,接下来就是根据自身的实际情况开展流量的分析工作了,可以结合zeek以及graylog官网上的介绍进行日志的搜索与分析,提高安全运营工作的质量。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月20日 0

暂无评论