linux下packetbeat安装和配置,packetbeat流量监听http,真·避免踩坑,包教包会。(packetbeat7.15.1,centos-stream-9)

发布于:2023-01-14 ⋅ 阅读:(1154) ⋅ 点赞:(0)

推荐的参考网站

目录

前言

packetbeat下载安装

packetbeat 配置 和 启动

流量监控演示

1. 创建需要被攻击的服务

2. 启动监听

3. 进入kibana看记录

 想说的话


前言

        相比之featbeat,packetbeat安装配置的坑,巨多无比!无比的居多!网上资料少之又少,能参考的只有packetbeat快速搭建的elastic官网和外网的一些论坛。

真心希望本教程能帮助各位少走弯路呀!

packetbeat下载安装

        如果ELKB还没有安装的朋友可以去看我之前的教程ELKB集群搭建(ES7.15.1,CentOS-Stream-9),虽然之前的教程是集群的安装,不过单点的安装更为简单,会集群的安装自然就会单点的安装

        packetbeat直接从官网下载即可,我是下载至/usr/local/

curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-7.15.1-linux-x86_64.tar.gz

        解压并且重命名 

tar xzvf packetbeat-7.15.1-linux-x86_64.tar.gz && mv packetbeat-7.15.1-linux-x86_64 packetbeat

         

packetbeat 配置 和 启动

        进入packetbeat安装目录

cd /usr/local/packetbeat

         修改配置文件

vim packetbeat.yml

        warning!warning!巨坑来了,请各位看官老爷注意! 

        修改以下配置,麻烦认真的看下面的注释,都是我血与泪的结晶~呜呜呜

# warning!warning!warning!warning!warning!warning!最大的坑来了,需要添加如下配置,否则你的packetbeat会掉线,会闪退,猜测原因是因为linux的安全考虑。
# 但是这样禁止有一个问题,如果你想要停止packetbeat服务的话,必须通过kill -9命令来强制杀死进程,无法正常通过ctrl+c系统命令退出
seccomp.enabled: false

# =============================== Network device ===============================

#这里默认是any,不修改也可以,不过得到的流量数据会乱一些。可以修改成自己的网卡
packetbeat.interfaces.device: ens160

# =================================== Flows ====================================

#巨坑之一!强烈强烈推荐禁止,enabled: false,要不然你监听到的超过98%都是flow而不是http!!
packetbeat.flows:
  enabled: false

# =========================== Transaction protocols ============================

#除了http之外全部enabled: false,只监听http请求,不禁止也无所谓
- type: http
#只监听8082端口
  ports: [8082]
# 对 GET 方法的请求参数,POST 方法的顶层参数里的指定关键信息脱敏。注意:如果你又开启了send_request,request 字段里的并不会脱敏"
  hide_keywords: ["password","passwd"]
  send_response: true
# 对 header 中的 Authorization 和 Proxy-Authorization 内容做模糊处理。
  redact_authorization: true
# 只在 headers 对象里记录指定的 header 字段内容
  send_headers: ["User-Agent", "Cookie"]
# 在开启 send_response 的前提下,只记录某些类别的响应体内容
  include_body_for: ["text/html"]
# 将 headers 对象里的 Cookie 或 Set-Cookie 字段内容再继续做 KV 切割
  split_cookie: true
# 将 headers 对象里的指定字段内容设为 client_location 和 real_ip 字段
  real_ip_header: "X-Forwarded-For"

# =================================== Kibana ===================================

#设置kibana
setup.kibana:
  host: "192.168.10.120:5601"

# ------------------------------ Logstash Output -------------------------------

#配置输出到logstash,这样配置需要将上面的elasticsearch Output注释掉。当然你也可以直接输出到elasticsearch。
output.logstash:
  hosts: ["192.168.10.120:5044"]

        修改完配置后,可以通过 sudo ./packetbeat test config -e 看看配置语法上有没有问题。

        最后会出现 Config OK ,说明你的语法正确。

        

        下一步官方叫做 Set up assets,我认为就是套用自带的模板,创建index索引

./packetbeat setup -e

        

        修改权限,如果是跟我一样偷懒直接root用户操作,就不用授权了

sudo chown root packetbeat.yml

         

        启动(因为最前的配置原因,这样启动无法通过ctrl+c退出),这样可以看实时日志,之后只要进程没有中断,packetbeat的配置就没有问题

sudo ./packetbeat -e

# 想要退出,需要另外开一个终端,ps查看进程,再kill掉
ps -ef | grep packetbeat
kill -9 xxxx

        确认没有问题,以后可以通过下面这样的方式后台启动,输出日志到指定的地方 

nohup /usr/local/packetbeat/packetbeat -e -c /usr/local/packetbeat/packetbeat.yml > /usr/local/packetbeat/packetbeat.log &

流量监控演示

1. 创建需要被攻击的服务

        简单创建一个controller

/**
 * @author Bobby
 * @since 2022/08/17
 */
@RestController
@RequestMapping("/test")
public class TestController {
    @ResponseBody
    @RequestMapping(value = "")
    public String goTest(){
        System.out.println("this is test");
        return "This is test";
    }
}

        在application.properties里配置端口,就是刚刚在packetbeat监听的那个端口

server.port=8082

        通过maven里Lifecycle里的install将项目打包成jar包,上传至linux(可以通过WinScp上传)

        进入jar包的目录下,启动项目

java -jar testIp-0.0.1-SNAPSHOT.jar

         出现下面结果代表启动成功

         在浏览器上测试一下

2. 启动监听

        启动elasticsearch,kibana,logstash和packetbeat

su - elkb -c "/usr/local/kibana/bin/kibana &"
su - elkb -c "/usr/local/elasticsearch/bin/elasticsearch -d"
nohup /usr/local/packetbeat/packetbeat -e -c /usr/local/packetbeat/packetbeat.yml > /usr/local/packetbeat/packetbeat.log &
nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash-log.conf >> /usr/local/logstash/output.log 2>&1 & 

3. 进入kibana看记录

        启动完成后先访问一下你的服务http://elkb:8082/test,之后就能在kibana上的index management索引管理上看到一个叫做 pb-7.15.1-2022.08.17 的索引,这个名字在logstash中是可以配置的。

        可以看到Docs count为1,因为在启动完成后我们访问了一次8082,packetbeat就会监控到我们的访问记录

        之后可以去Index patterns中创建pattern,这样可以查看详细的访问情况

        创建完后,去discover中查看,可以看到有一条访问记录

        这样就成功了~

 想说的话

        俗话说的好呀!走万里路不如高人指路。我配置packetbeat前后弄了2天,中途遇到各种问题,踩了巨多坑,这些要是没有人告诉你真的只能慢慢去调试慢慢去看官方文档和外国的一些论坛。

        难点就在于配置,配置好了,后面的就简单了。

        要是能给我一个小赞我能开心一整天!

        拥抱开源~

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到