私有云安全管理案例

案例描述

ELK是一个用于处理和分析日志数据的开源技术栈,由三个主要组件组成,E即Elasticsearch,L即Logstash,K即Kibana。

Elasticsearch:是个开源分布式搜索引擎,用于存储、搜索和分析大量数据,提供实时搜索功能。

Logstash:一个数据收集和处理管道,能够从各种来源获取日志数据,进行过滤、转换,并将数据传输到 Elasticsearch。

Kibana:一个数据可视化工具,提供图形化界面,Kibana可以为LogstashElasticSearch提供友好的日志分析Web界面,可以帮助汇总、分析和搜索重要数据日志。

案例一 入侵检测案例

案例准备

规划节点

表5-14-1 规划节点

IP地址

主机名

节点

192.168.16.200

chkrootkit

部署节点

案例实施

1.chkrootkit工具部署

因为chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装。首先安装编译环境,使用提供的makechk.tar.gz软件包上传至chkrootkit节点,解压并配置成本地Yum源,然后使用Yum命令安装gcc编译环境,命令如下:

[root@chrootkit ~]# yum install gcc gcc-c++ make glibc-static -y
... ...
忽略输出
... ...
Updated:
make.x86_64 1:3.82-24.el7

Dependency Updated:
glibc.x86_64 0:2.17-324.el7_9
glibc-common.x86_64 0:2.17-324.el7_9
libgcc.x86_64 0:4.8.5-44.el7
libgomp.x86_64 0:4.8.5-44.el7
libstdc++.x86_64 0:4.8.5-44.el7

Complete!

安装完编译环境后,使用提供的chkrootkit.tar.gz软件包上传至chkrootkit节点的/root目录下。进行解压,编译安装chkrootkit服务,命令如下:

[root@chrootkit ~]# tar -zxvf chkrootkit.tar.gz 

[root@localhost ~]# cd chkrootkit-0.55/

[root@localhost chkrootkit-0.55]# make sense
cc -DHAVE_LASTLOG_H -o chklastlog chklastlog.c
cc -DHAVE_LASTLOG_H -o chkwtmp chkwtmp.c
cc -DHAVE_LASTLOG_H   -D_FILE_OFFSET_BITS=64 -o ifpromisc ifpromisc.c
cc  -o chkproc chkproc.c
cc  -o chkdirs chkdirs.c
cc  -o check_wtmpx check_wtmpx.c
cc -static  -o strings-static strings.c
cc  -o chkutmp chkutmp.c

没有报错的话即为安装成功。

2.chkrootkit使用

执行chkrootkit文件扫描系统,命令如下:

[root@localhost chkrootkit-0.55]# ./chkrootkit 
ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
... ...
忽略输出
... ...
Checking `slapper'... not infected
Checking `z2'... chklastlog: nothing deleted
Checking `chkutmp'... chkutmp: nothing deleted
Checking `OSX_RSPLUG'... not tested

chkrootkit默认检索整个系统,我们可以通过管道去搜索INFECTED(被感染)关键字,方便查看。可以将查询的内容重定向到log文件,然后再查看扫描结果是否有INFECTED(被感染)、Warning(告警)、Possible(可能被感染)关键字,命令如下:

[root@chkrootkit chkrootkit-0.55]# mkdir /var/log/chkrootkit

[root@chkrootkit chkrootkit-0.55]# ./chkrootkit >> /var/log/chkrootkit/chkrootkit.log 2>&1

[root@chkrootkit chkrootkit-0.55]# grep -e "INFECTED|Warning|Possible"  /var/log/chkrootkit/chkrootkit.log

因为使用的虚拟机是一台刚安装完系统的主机,所以使用chkrootkit工具没有扫描到漏洞。针对被感染rootkit的系统,最安全而有效的方法就是备份数据重新安装系统。

案例二 日志分析案例

案例准备

规划节点

表5-14-1 规划节点

IP地址

主机名

节点

192.168.16.200

elk

部署节点

案例实施

1.基础环境准备

1)设置主机名

将该虚拟机的主机名设置为elk,命令如下:

[root@localhost ~]# hostnamectl set-hostname elk

2)确认时区

确认虚拟机的时区为东八区时区,如果不是,使用如下命令修改:

[root@elk ~]# TZ='Asia/Shanghai'; export TZ

[root@elk ~]# date
2024年 10月 12日 星期六 15:49:24 CST

3)关闭防火墙和SELinux

确认防火墙处于关闭状态,关闭防火墙,确认SELinux服务处于关闭状态,临时关闭SELinux命令命令如下:

[root@elk ~]# systemctl stop firewalld

[root@elk ~]# setenforce 0

2.安装Docker环境

1)配置Yum

使用提供的docker-repo.tar.gz上传至elk节点的/opt目录下,解压自行配置Yum源,配置完之后,检查Yum源是否可用,命令如下:

[root@elk ~]# yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
docker                    | 3.0 kB  00:00:00     
docker/primary_db         | 161 kB  00:00:00     
repo id        repo name                      status
Docker         Docker                         168
centos         centos                         4070
repolist: 4238

2)安装Docker服务

安装Docker-ce服务,命令如下:

[root@elk ~]# yum install docker-ce -y

3)启动Docker服务

启动Docker服务,并设置开机自启,命令如下:

[root@elk ~]# systemctl start docker

[root@elk ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3.启动ELK服务

1)上传镜像

将提供的sepb_elk_latest.tar容器镜像上传至elk节点的/root目录下,然后load至本地,命令如下:

[root@elk ~]# docker load -i sepb_elk_latest.tar
... ...
忽略输出
... ...
Loaded image: sebp/elk:latest

[root@elk ~]# docker images       #查看镜像是否被上传
REPOSITORY   TAG       IMAGE ID        CREATED             SIZE
sebp/elk     latest    d5e175b50ad8    2 months ago        2.6GB

2)修改参数

修改sysctl.conf配置文件参数,修改如下:

[root@elk ~]# vi /etc/sysctl.conf
#在sysctl.conf配置文件中,添加一行代码如下所示
vm.max_map_count=262144

添加完之后保存退出文件,并生效配置,命令如下:

[root@elk ~]# sysctl -p
vm.max_map_count = 262144

若不修改此参数,在启动ELK镜像时,会报如下错误:

3)启动ELK镜像

在配置完上述环境后,启动ELK镜像,命令如下:

[root@elk ~]# docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -itd --name elk sebp/elk
589ddc06d13590e95ce6248bde4c5545e07641ced1eb9779c1f76663c6963671

在等待一段时间后,在浏览器输入elk节点的IP:5601访问,如下图所示:

看到该页面,说明ELK镜像成功启动,接下来可以配置目标节点,也就是想审查日志的节点。

4.ELK系统使用

1)添加数据

ELK系统的首页,单击左下角的“Add data”选项,进入添加数据界面,如下图所示:

在该界面,找到“Elasticsearch logs”,单击,进入如下界面:

在该界面,选择“RPM”方式,如下图所示:

该界面是如何配置目标节点的步骤,包括安装filebeat软件、配置文件、启动服务等。在该实操案例中,提供了离线的安装包,不需要按照界面上的步骤操作,具体安装操作步骤,详见下面的内容。

2)配置目标节点

①节点准备

使用OpenStack平台的Controller节点作为目标节点,也可以使用OpenStackall-in-one节点,笔者此处为了方便演示,使用的是一台已经安装完OpenStack云平台的all-in-one节点.(IP

为192.168.16.100)

②上传filebeat软件

将提供的filebeat-7.13.2-x86_64.rpm软件包上传至目标节点,并安装,命令如下:

[root@controller ~]# rpm -ivh filebeat-7.13.2-x86_64.rpm 
warning: filebeat-7.13.2-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY
Preparing...           ################################# [100%]
Updating / installing...
1:filebeat-7.13.2-1    ################################# [100%]

③修改配置文件

修改all-in-one节点上的filebeat.yml配置文件,修改内容如下:

[root@controller ~]# vi /etc/filebeat/filebeat.yml
# ================ Filebeat inputs =====================
... ...
  # Change to true to enable this input configuration.
  enabled: true          #将false改为true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:                #修改path段落,添加要收集的日志路径
- /var/log/messages #指定系统日志的文件路径
    - /var/log/mariadb/mariadb.log  #这是数据库日志
    - /var/log/keystone/keystone.log  #这是数据库日志
    #- c:\programdata\elasticsearch\logs\*
...忽略输出...
# ================= Kibana ========================
... ...
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "192.168.16.200:5601"          #去掉注释,填写kibana的监听端口及地址
...忽略输出...
# ------------- Elasticsearch Output -------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.16.200:9200"]     #修改为Elasticsearc的监听地址及端口
... ...

④启用模块及初始化

在修改完filebeat配置文件后,需要启用elasticsearch模块,并初始化filebeat,命令如下:

[root@controller ~]# filebeat modules enable elasticsearch
Enabled elasticsearch

[root@openstack ~]# filebeat setup
...忽略输出...
Loaded machine learning job configurations
Loaded Ingest pipelines

出现上述信息,初始化成功。

⑤启动filebeat服务

在完成初始化操作后,启动filebeat服务,命令如下:

[root@openstack ~]# systemctl start filebeat

至此配置目标节点完成,接下来需要到ELK系统的界面进行操作。

3ELK系统使用

①完成节点添加

回到ELK系统界面,在页面的最下方,有一个“Discover”按钮,如下图所示:

单击“Discover”按钮,完成节点的添加,如下图所示:

如果看不见数据,由于时间不同步导致,可以查询日志时间改为15天内数据。

②数据展示

当前ELK系统监控的是all-in-one节点的messages系统日志、数据库日志、keystone的日志,读者可以自行添加想被监控的日志文件。

keystone.log日志文件下写入一段文字,命令如下:

[root@openstack ~]# echo testelk >> /var/log/keystone/keystone.log

回到ELK系统界面,在输入框搜索testelk,并查看,如下图所示:

能够看到相应的日志信息,则说明ELK日志分析系统运行正常。关于更多的ELK系统的使用,读者可以自行学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值